Commit Graph

1931 Commits

Author SHA1 Message Date
John Gardiner Myers 20b5241b84 Get AWS zones list from AWS SDK 2022-12-13 22:50:11 -08:00
Kubernetes Prow Robot 41fa042b89
Merge pull request #14768 from hakman/guess_cloud
Guess cloud provider from state store path
2022-12-13 22:29:40 -08:00
Kubernetes Prow Robot c9e6a915cc
Merge pull request #14736 from Mia-Cross/scaleway_nodeidentity
scaleway : nodeidentity
2022-12-13 22:29:34 -08:00
John Gardiner Myers 55b46073b7 Don't drain on rebalance recommendations in SQS mode unless configured 2022-12-11 18:21:43 -08:00
Ciprian Hacman bc2aa3072d Guess cloud provider from state store path 2022-12-11 12:30:10 +02:00
Ole Markus With 7375bbb487 kops-controller: increase verbosity level on logs in gossip controller 2022-12-08 20:18:31 +01:00
Ole Markus With 160941e1b5 Add openstack octavia integration test 2022-12-07 21:47:42 +01:00
Leïla MARABESE 3b9a57efb7 scaleway nodeidentity 2022-12-07 11:49:53 +01:00
Kubernetes Prow Robot f827ec7f54
Merge pull request #14721 from johngmyers/nth-default-queue
Change default for NTH Queue Processor mode to enabled
2022-12-06 03:18:36 -08:00
Kubernetes Prow Robot e5a835d287
Merge pull request #14706 from johngmyers/v1alpha3-networking
v1alpha3: move networking fields under networking
2022-12-05 21:34:38 -08:00
Ciprian Hacman 141f6065f9 Don't pass region to ListResources 2022-12-05 09:40:38 +02:00
John Gardiner Myers 04d00927da Adjust integration tests for NTH default change 2022-12-04 15:56:20 -08:00
Kubernetes Prow Robot cc2bdfa2ab
Merge pull request #14719 from olemarkus/vs-cleanups
A couple of static checks cleanups
2022-12-04 08:20:01 -08:00
Ole Markus With 4e9e1aaabb Make it a bit more clear that toolbox commands may be experimental 2022-12-04 15:47:12 +01:00
Ole Markus With 27e206a264 Expose channels through kops toolbox cli
Make the channels apply commmand a bit more clear

Update cmd/kops/toolbox_addons.go

Co-authored-by: Ciprian Hacman <ciprian@hakman.dev>

Update cmd/kops/toolbox_addons.go

Co-authored-by: Ciprian Hacman <ciprian@hakman.dev>

fix docs
2022-12-04 15:47:09 +01:00
Ole Markus With cd24f58c3f Remove unused function 2022-12-04 14:43:08 +01:00
Ole Markus With 7c64d9ba0d Fix double imports 2022-12-04 14:43:08 +01:00
Ole Markus With dc80fc2c63 Fix casing in error strings 2022-12-04 14:43:08 +01:00
Ciprian Hacman bbf638334a Add metrics-server addon to integration tests with many addons 2022-12-03 09:51:39 +02:00
Ciprian Hacman 170df2fa5b gce: Add integration test for updating a cluster with many addons 2022-12-03 09:00:49 +02:00
Ciprian Hacman cad72f9c38 gce: Add integration test for creating a minimal cluster 2022-12-03 08:46:50 +02:00
John Gardiner Myers 235aa61594 v1alpha3: move networking fields under networking 2022-12-02 19:19:59 -08:00
Kubernetes Prow Robot 8b268b1439
Merge pull request #14696 from johngmyers/fix-extrafields
Fix edit.HasExtraFields()
2022-11-30 23:26:26 -08:00
John Gardiner Myers 47b6f4f383 Fix edit.HasExtraFields() 2022-11-30 21:05:37 -08:00
Ciprian Hacman dbef6209c2 Remove support for using Vault as state store
Co-authored-by: John Gardiner Myers <jgmyers@proofpoint.com>
2022-11-30 18:38:21 +02:00
Leïla MARABESE 26895294ae added id_ed25519 to autoloaded ssh keys 2022-11-28 11:49:11 +01:00
Kubernetes Prow Robot 03c3c4131f
Merge pull request #14621 from johngmyers/terraform-subnet
Implement subnet "/64#N" notation in Terraform
2022-11-24 09:02:04 -08:00
John Gardiner Myers dd5340775c Update cmd/kops/create_instancegroup.go
Co-authored-by: Ciprian Hacman <ciprian@hakman.dev>
2022-11-23 22:12:27 -08:00
John Gardiner Myers de9055b588 Update control-plane terminology in CLI output strings 2022-11-23 21:32:10 -08:00
John Gardiner Myers 0358d4fdbd Add shared_vpc_ipv6 integration test 2022-11-23 15:55:01 -08:00
John Gardiner Myers 14e2864f4a Implement subnet "/64#N" notation in Terraform 2022-11-23 15:55:01 -08:00
John Gardiner Myers 18ab0b9965 Use new terminology in rolling-update flags 2022-11-23 14:11:20 -08:00
Ole Markus With 01590c03b0 Add a create cluster integration test for openstack
Fix various openstack nprs. Also add create cluster integration test
2022-11-23 10:25:29 +01:00
Ole Markus With 7a1f0f4bda Add bare networking flag option for cilium in eni mode 2022-11-23 09:10:16 +01:00
John Gardiner Myers 6c0603991b Create new clusters with updated control plane IG names 2022-11-22 22:09:08 -08:00
John Gardiner Myers 87925bf0ca Remove CloudFormation support 2022-11-22 21:02:50 -08:00
John Gardiner Myers d39ba74bd7 Change the control-plane IG role to "ControlPlane" in v1alpha3 API 2022-11-22 17:05:29 -08:00
John Gardiner Myers cd88c293e1 Switch IPv6 integration tests to private topology 2022-11-21 21:35:44 -08:00
Kubernetes Prow Robot a9c6c4e5fa
Merge pull request #14504 from johngmyers/v1alpha3-aws
v1alpha3: Move API-related settings under API
2022-11-20 06:34:31 -08:00
Ciprian Hacman 0207d94201 Add integration test 2022-11-20 07:09:45 +02:00
Ciprian Hacman f60df9b955 Add option for setting Kubernetes feature gates 2022-11-20 07:09:42 +02:00
John Gardiner Myers 5fca16aa30 v1alpha3: Move API-related settings under API 2022-11-19 10:27:12 -08:00
John Gardiner Myers e0ee3eda2a Remove CloudFormation tests 2022-11-19 10:25:20 -08:00
Kubernetes Prow Robot 6132c8d9e2
Merge pull request #14592 from hakman/generics
Use generics to refactor fi.Bool/Float*/Int*/String*()
2022-11-19 10:08:31 -08:00
John Gardiner Myers 26cec727ab New IPv6 clusters now default to private topology 2022-11-18 22:47:28 -08:00
Ciprian Hacman 8f79c9bd68 Replace fi.Bool/Float*/Int*/String() with fi.PtrTo() 2022-11-19 03:45:22 +02:00
Kubernetes Prow Robot 306dd51565
Merge pull request #14572 from olemarkus/cp-max-hop-1
Set IMDS max hop limit to 1 for control plane nodes if IRSA is enabled
2022-11-17 18:02:30 -08:00
Ole Markus With 2f59911458 Add create cluster test with irsa 2022-11-17 19:25:19 +01:00
Ciprian Hacman 211c82d8ad aws: Fix SIGSEGV when using instance selector 2022-11-17 12:22:22 +02:00
Kubernetes Prow Robot c592a02bb4
Merge pull request #14532 from johngmyers/kops-get
Add "kops get all" command
2022-11-16 18:40:39 -08:00
Ciprian Hacman 61eaeddb9b Serve secrets from kops-controller for nodes without state store access 2022-11-15 14:51:54 +02:00
John Gardiner Myers 1380f1d2dd Add --bastion-image flag to "kops create cluster" 2022-11-12 11:59:32 -08:00
John Gardiner Myers 7e83f8e385 Add "kops get all" command 2022-11-11 20:58:11 -08:00
John Gardiner Myers 71017f0307 Use bastion to dump private instances 2022-11-09 21:34:04 -08:00
Kubernetes Prow Robot 96acfc4ceb
Merge pull request #14452 from hakman/aws_none-dns_nlb
aws: Create cluster without DNS or Gossip
2022-11-05 22:30:15 -07:00
Kubernetes Prow Robot de45957b70
Merge pull request #14454 from johngmyers/revert-deprecation
Revert deprecation of positional clustername args
2022-11-04 21:22:17 -07:00
Ciprian Hacman 72d3669b07 aws: Switch integration test from Public DNS to None DNS 2022-11-02 12:54:27 +02:00
Ciprian Hacman c8f32621b7 Run hack/update-expected.sh 2022-11-02 12:47:03 +02:00
Ciprian Hacman c9d1eb9761 hetzner: Use kops-controller for node bootstrap 2022-11-02 12:43:25 +02:00
Ciprian Hacman 231ce799bd aws: Add integration test placeholder for None DNS 2022-11-02 11:25:05 +02:00
Kubernetes Prow Robot 2c4808c5bd
Merge pull request #14440 from hakman/hetzner_no-dns_master
hetzner: Create cluster without DNS or Gossip
2022-11-02 02:02:47 -07:00
John Gardiner Myers 81ce39006f hack/update-expected.sh 2022-11-01 17:04:43 -07:00
John Gardiner Myers 6d467ba8ff Inform user about progress of cluster deletion 2022-10-27 11:07:17 -07:00
Ciprian Hacman 4e5ded6dc3 hetzner: Create cluster without DNS or Gossip 2022-10-27 11:29:37 +03:00
John Gardiner Myers ac2bbf8712 Revert deprecation of positional clustername args 2022-10-25 21:43:27 -07:00
Steven E. Harris 95f98896c7
promote-keypair: Block items without certificates
Forbid the "kops promote keypair" command from promoting a key pair
item that lacks an associated X.509 certificate.

Along with that prohibition, refuse to store a key set in a VFS whose
primary key pair lacks a certificate. This allows us to continue
storing such key pairs, but we will never allow them to serve as the
primary key pair within the containing key set.
2022-10-17 12:13:45 -04:00
Steven E. Harris a6ee86d1f7
get-keypairs: Tolerate items without certificates
Allow the "kops get keypairs" command to consume key sets with old key
pair items that lack an associated X.509 certificate. When the command
is invoked without the "--distrusted" flag set to true, omit these old
items as if they're distrusted. Conversely, when the command is
invoked with the "--distrusted" flag set to true, include these items,
but omit their details that would be contingent on the nonexistent
certificate.

In order to supply only information that is known to be true, treat
the following fields in the output as newly optional:

- issuer
- notAfter
- notBefore
- subject

With no certificate present, it's not possible to present concrete
values for those fields.
2022-10-17 11:39:16 -04:00
Ciprian Hacman 4c6368d7aa Deprecate `--api-loadbalancer-class` flag 2022-10-12 15:12:23 +03:00
Ole Markus With 8c12d5b035 When using kops create, set the provided machinetype in the written IG spec 2022-09-28 12:16:03 +02:00
Ole Markus With 466a7e6989 Add create cluster test for arm64 2022-09-28 12:16:03 +02:00
Kubernetes Prow Robot cd4a8d3ad5
Merge pull request #14295 from hakman/cli_network-id
Replace --vpc flag with --network-id
2022-09-23 11:00:25 -07:00
Ciprian Hacman 81b4bb0717 hetzner: Move out of alpha and drop feature flag 2022-09-19 10:35:19 +03:00
Ciprian Hacman b193a3d35c Replace --vpc flag with --network-id 2022-09-18 14:34:53 +03:00
Ole Markus With c7cfcd1af8 User IG without image should be allowed
This is technically a regression. kOps had the behavior where empty image meant use from channel. But this got removed due to strict validation of user input
2022-09-17 17:44:48 +02:00
Ole Markus With 4f2b5655bb Don't write populated IG state after editing IG 2022-09-17 13:15:44 +02:00
Ole Markus With 24d359ddc1 Create edit instancegroup test 2022-09-17 13:14:36 +02:00
justinsb 4b2f773748 rolling-update: don't deregister our only apiserver
If we do, we can't drain the node afterwards.  We also are going to
have dropped connections in this case anyway.
2022-09-15 09:16:57 -04:00
Kubernetes Prow Robot 75f541172d
Merge pull request #14226 from hakman/flannel-0.19.2
Update Flannel to v0.19.2
2022-09-05 12:17:01 -07:00
Ciprian Hacman fb776d1c43 Run hack/update-expected.sh 2022-09-03 12:18:08 +03:00
Ciprian Hacman 178eb55725 Run hack/update-expected.sh 2022-09-03 11:26:57 +03:00
Ole Markus With 8a40c544d2 Bump kubernetes version in karpenter e2e test 2022-08-25 11:37:10 +02:00
Ciprian Hacman 272ded0187 Add integration tests for Hetzner 2022-08-25 08:14:39 +03:00
Kubernetes Prow Robot 50e61eeeef
Merge pull request #14168 from hakman/ssh-key_trim_space
Trim space around SSH public key
2022-08-23 23:13:49 -07:00
Ciprian Hacman 407ee77041 Trim space around SSH public key 2022-08-24 08:32:01 +03:00
Kubernetes Prow Robot 8f20d22ef7
Merge pull request #14127 from olemarkus/write-ig-input
Write the user provided IG spec to state store instead of the full spec
2022-08-20 03:29:35 -07:00
Kubernetes Prow Robot 91639d99bb
Merge pull request #14148 from olemarkus/cu-more
Add more cluster_update tests
2022-08-19 22:25:35 -07:00
Ole Markus With 8c1bc03f42 Don't write the populated IG spec to state store 2022-08-20 07:15:10 +02:00
Ole Markus With 8f8765be0d Add more cluster_update tests 2022-08-19 20:31:38 +02:00
Ole Markus With fdb72f2c34 Add create cluster test that includes apiserver 2022-08-19 18:57:43 +02:00
Ole Markus With 29a7268442 Add more create_cluster integration tests 2022-08-19 18:57:17 +02:00
Ole Markus With 7d7780bad9 Revert "Remove passing cluster name as positional argument"
This reverts commit 824eb9cabb.
2022-08-18 07:26:42 +02:00
Ciprian Hacman cb99db0757 Run make goimports 2022-08-17 07:03:33 +03:00
Ciprian Hacman a32cf690bb Create etcd-manager config for each instance group 2022-08-10 11:04:36 +03:00
Kubernetes Prow Robot 9661894261
Merge pull request #13618 from justinsb/kubescheduler_config
Support kube-scheduler config
2022-08-03 21:53:46 -07:00
Kubernetes Prow Robot 2706b05af3
Merge pull request #14089 from justinsb/positional_to_stderr
Positional deprecation warning should go to stderr
2022-08-03 13:13:46 -07:00
justinsb 85fb99c75d Positional deprecation warning should go to stderr
Otherwise we break piped output with -ojson etc.
2022-08-03 15:24:06 -04:00
justinsb ed21b27c5c Hide klog flags from --help output
The klog flags just clutter the output and often push the most
important output off of smaller screens.

The flags are still supported, just hidden.
2022-08-03 10:19:07 -04:00
justinsb c82c30d8aa Support kops create with addditional objects
Not all additional objects support metadata, so when additional
objects are passed, we can only support a single cluster.
2022-08-03 09:51:16 -04:00
justinsb d1fc0b9f88 Create goldentest for additional objects 2022-08-03 09:51:16 -04:00
Ole Markus With 824eb9cabb Remove passing cluster name as positional argument
Apply suggestions from code review

Co-authored-by: Ciprian Hacman <ciprian@hakman.dev>
2022-07-31 15:54:35 +02:00
Ole Markus With 0bd3160bbc Merge channels and kops cli factories 2022-07-31 06:32:57 +02:00
Ole Markus With 2bb0b16e53 Rename ClientSet to KopsClient in cmd factory interface 2022-07-30 20:41:13 +02:00
Ciprian Hacman 8b33646b5b Fix SIGSEGV when deleting a Hetzner instance 2022-07-28 18:39:46 +03:00
Eric Bailey b1c5460282 Check keyset existence before attempting to distrust 2022-07-27 19:23:08 -05:00
Peter Rifel 026037ee70
Upgrade complex integration test case to k8s 1.24 2022-07-11 19:47:59 -06:00
Peter Rifel 95cd078cc4
Enable AWS IAM Authenticator in complex integration test 2022-07-11 19:43:49 -06:00
Ciprian Hacman 92a471e04f Add integration test for GCE cluster with internal LB and very long cluster name 2022-07-01 07:37:30 +03:00
Ciprian Hacman 0c52c1270d Increase length of cluster name for GCE long cluster name integration test 2022-07-01 07:37:30 +03:00
Ciprian Hacman 7fbe0454f2 Use Calico v3.23 for Kubernetes 1.22+ 2022-06-29 17:17:33 +03:00
justinsb 29b168b9d7 gce: Move out of beta, drop feature flag
GCE support seems stable now, and we have good clarity at the API
level and how that translates to GCP resources, which was our blocker
previously.

Drop the need for the feature-flag.
2022-06-28 11:22:34 -04:00
Ciprian Hacman 6662b3bc61 Add integration test for GCE cluster with very long cluster name 2022-06-25 11:48:08 +03:00
Ole Markus With 9c8cc8fe1e Merge the cilium templates 2022-06-16 09:10:22 +02:00
Ciprian Hacman 113377cdd2 Completely remove core addons 2022-06-10 14:03:16 +03:00
Ole Markus With 885bc3094b Create cilium manifest for k8s 1.25 2022-06-08 10:30:34 +02:00
Ole Markus With c6ca89a6e7 Repurpose cilium2 to test hubble 2022-06-07 20:39:25 +02:00
Ole Markus With 4f5ef4f684 Remove 1.19 create cluster integration test 2022-06-07 15:53:51 +02:00
Ole Markus With 2e4105a79f Bump k8s version in integration tests using 1.19 2022-06-07 15:41:26 +02:00
Ole Markus With 896267c4b9 Drop 1.19 integration tests 2022-06-07 15:20:02 +02:00
Ciprian Hacman f5954e1388 Switch Calico integration tests to k8s v1.24 2022-05-23 18:35:26 +03:00
Ole Markus With d08c028747 Bump NTH to 1.16.4 and add support for scheduled instance change events 2022-05-18 21:48:28 +02:00
Ciprian Hacman 90faa6b5fd Allow overriding the kubernetes version when upgrading the cluster 2022-05-18 08:05:59 +02:00
justinsb f47d7b2e43 Tweak integration tests to be simpler
We require that all generated files are in the data directory, so we
can simplify the logic here.
2022-05-13 15:19:07 -04:00
Ole Markus With 39f3c8bdf4 Add integration test for 1.24 2022-05-12 20:29:23 +02:00
Ciprian Hacman b5f14b589b Add initial support for Hetzner Cloud 2022-05-09 06:12:15 +03:00
Ole Markus With 9eca9c882b Add flag to version showing the kops 'server' version 2022-04-30 15:57:46 +02:00
Nat Henderson 9b08c4bb51 Enable internal load balancers when running on GCP
* Add ILBs, broadly following the AWS model.  The following new
capabilities are added for clusters in GCP:
  * Cluster's spec.api.loadBalancer can be set to 'type: internal' on
    GCP.
    * Therefore, GCP can now create:
        * regional backend services
        * regional (non-legacy) healthchecks
        * firewall rules with "internal" load-balancing scheme
        * firewall rules with dot-notation-specified IP addresses
  * Cluster's spec.api.loadBalancer's 'subnets' field functions
    as in the AWS model.

A few incidental changes are included, either because this change
touched the relevant code or because my use case happened to trigger the
issues that are fixed here.

* Cluster's spec.networkID field can be prefixed by project to use
  GCP's common cross-project networking model.
    * The presumption is that all specified subnets belong to this
      network and therefore this project.

* Add missing operation wait on forwarding rule creation.

* Some Terraform output improvements:
    * Permit no-ACL files in GCS buckets in Terraform output.
    * Enable marginally better cross-resource reference in Terraform outputs
    * Add project to network + subnetwork literals in Terraform output.
    * Add terraform output to backend services and health checks.

Testing:
  * Add mocks for backend services and health checks.
  * Add minimal integration test - copied from gce_private and ilb added.
  * Add update cluster goldens.

Co-authored-by: Travis Reid <travis_reid@apple.com>
2022-04-25 13:31:47 -07:00
Kubernetes Prow Robot 6d264080ed
Merge pull request #13484 from olemarkus/no-bazel-targets
Remove bazel targets and tools
2022-04-17 23:16:41 -07:00
Ciprian Hacman 8b8dd8d2dd Use aws_s3_object instead of deprecated aws_s3_bucket_object 2022-04-13 16:49:03 +03:00
Ole Markus With ce2e877aeb Remove bazel files from vendor 2022-04-12 13:29:03 +02:00
Kubernetes Prow Robot 3acf5b3634
Merge pull request #13378 from hierynomus/sshkey-output
Do not return a '-1' exit if no keys found and json/yaml output
2022-03-28 00:51:22 -07:00
Ciprian Hacman a4ed2b0654 Migrate to registry.k8s.io
Signed-off-by: Ciprian Hacman <ciprian@hakman.dev>
2022-03-18 08:47:12 +02:00
Kubernetes Prow Robot d751d0f056
Merge pull request #13364 from olemarkus/fix-long-role-names
Fix long role names
2022-03-17 23:43:16 -07:00
Jeroen van Erp 3955883f6b
Do not return a '-1' exit if no keys found and json/yaml output 2022-03-17 10:06:22 +01:00
Ole Markus With ba06b33193 If image is empty, have kops upgrade fill it in 2022-03-16 20:15:51 +01:00
Ole Markus With 3fcb84ed6b Truncate the standard role names 2022-03-15 21:31:04 +01:00
Ole Markus With f8525ce6f9 Add integration test for really long cluster names 2022-03-15 20:44:26 +01:00
Ole Markus With 5cac1eea56 Set command using entrypoint instead of cmd 2022-03-11 16:02:46 +01:00
John Gardiner Myers 70f7d9bdb2 Use function to get cloud provider from cluster spec 2022-03-02 21:59:47 -08:00
AkiraFukushima d40caa758e
Use cert-manager and pod-identity-webhook in integration test of irsa 2022-02-20 19:02:54 +09:00
Ole Markus With 9431c0ab69 Update LBC to 2.4.0 2022-02-16 21:39:31 +01:00
Kubernetes Prow Robot 95fc0ac5b8
Merge pull request #13212 from olemarkus/irsa-119
Fix irsa for k8s < 1.20
2022-02-09 12:25:49 -08:00
Ole Markus With f4d8334050 Add test for irsa on k8s 1.19 2022-02-09 08:53:04 +01:00
srikiz 2124c4cf85 Minor fix for json response to keep it consistent for single or multiple clusters
Fix tests

another fix to json marshalling

fixes to return a single json object if a specific object is selected

Add changes to docs
2022-02-07 23:59:13 +05:30
Kubernetes Prow Robot 9023720a08
Merge pull request #13103 from heybronson/set-eviction-timeout
add node-drain-timeout flag to rolling-update
2022-01-28 01:40:31 -08:00
Bronson Mirafuentes 86b0ef0d0c add drain-timeout flag to rolling-update cluster 2022-01-20 14:05:55 -08:00
Ole Markus With dc0e7675ba Add a k8s 1.23 version of the ccm test 2022-01-20 15:32:46 +01:00
Kubernetes Prow Robot ef8c74f5fc
Merge pull request #12788 from hakman/ipv6_remove_featureflag
Remove featureflag for creating IPv6 clusters
2022-01-18 22:58:05 -08:00
Ole Markus With 0ef596dd49 Do not create an IAM role for dns-controller on gossip clusters 2022-01-16 10:31:11 +01:00
Ole Markus With 321f82368d Don't try to add node name to instances without node object 2022-01-15 08:04:53 +01:00
Kubernetes Prow Robot 3e5e929423
Merge pull request #12727 from justinsb/kopeio_networking_operator
addons: support for kopeio-networking addon
2021-12-31 13:12:53 -08:00
Ole Markus With ea9d0de847 Handle default in templating instead of ig population 2021-12-30 09:01:43 +01:00
justinsb 8e34e4d101 addons: support for kopeio-networking addon
Adding support for the kopeio-networking addon.

We load the operator manifest (which changes rarely) from the channels
directory for now.  We follow the same structure as operators
themselves use so that we can support other backends in future.

The channels file includes the current versions of the operators.

During cluster creation, we create these additional objects.
2021-12-29 09:16:15 -05:00
John Gardiner Myers dae281d30e Migrate to GCE CCM in k8s 1.24 2021-12-28 19:33:07 -08:00
Kubernetes Prow Robot e95e359e3a
Merge pull request #13026 from johngmyers/ipv6-only
Allow IPv6-only subnets
2021-12-24 02:24:14 -08:00
Ole Markus With 8e59f5bc23 Create create_cluster test for karpenter 2021-12-24 09:20:06 +01:00
Ole Markus With 8f276cf944 Make it possible to create clusters with only karpenter-managed worker nodes
Apply suggestions from code review

Co-authored-by: John Gardiner Myers <jgmyers@proofpoint.com>
2021-12-24 09:12:59 +01:00
John Gardiner Myers f9071dd0d5 Allow IPv6-only subnets 2021-12-23 19:50:46 -08:00
Ole Markus With aa493a3273 Validate IGs more strictly after defaults have applied
This commit will ensure IGs are validated in clientset prior to write similar to clusters. Also introduces strict flag similar to cluster, which only validate values where we have defaults after defaults have been applied.
2021-12-20 10:03:04 +01:00
justinsb f60f2476ed kops-controller: use controller-runtime manager
This gives us access to a managed client, and it lets us hook into the
lifecycle.
2021-12-18 19:38:53 -05:00
Ole Markus With 043dd91417 Add karpenter feature flag 2021-12-12 19:33:41 +01:00
Ole Markus With 794cb72112 Karpenter addon
Constrain the instance types to what is supported by the AMI

Add taints and label to karpenter provisioner

Add instance types to karpenter provisioner
2021-12-12 19:33:41 +01:00
Ole Markus With 67e6b3486f Add integration test for karpenter 2021-12-12 19:33:41 +01:00
John Gardiner Myers 67e8533043 Update name of kubernetes-ca keypair in documentation 2021-12-11 20:50:36 -08:00
Kubernetes Prow Robot 03bcd3bce7
Merge pull request #12930 from olemarkus/integration-minimal-bump
Add integration test for k8s 1.24
2021-12-11 04:03:58 -08:00
Ole Markus With 35291c9d49 Add integration test for k8s 1.24 2021-12-11 10:59:45 +01:00
Ciprian Hacman d00310b0e6 Fix failing test 2021-12-11 11:39:37 +02:00
Kubernetes Prow Robot f7e66049d6
Merge pull request #12862 from johngmyers/instanceid-nodename
Use instance ID as node name when AWS CCM supports it
2021-12-05 14:58:32 -08:00
Peter Rifel d0b577183f
Add terraform integration test for dedicated apiserver nodes 2021-12-03 22:50:28 -06:00
John Gardiner Myers 7e0e97b566 Rename bastionPublicName in v1alpha3 API 2021-12-02 19:34:48 -08:00
Kubernetes Prow Robot 0be79b25b7
Merge pull request #12867 from hakman/gofumpt_script
Add gofumpt scripts
2021-12-01 22:13:32 -08:00
Ciprian Hacman ea7df00719 Run hack/update-gofmt.sh 2021-12-01 22:39:50 +02:00
Peter Rifel 090c870123
./hack/update-expected.sh 2021-11-30 22:20:10 -06:00
John Gardiner Myers 73f164e229 Use instance ID as node name when AWS CCM supports it 2021-11-30 17:54:54 -08:00
John Gardiner Myers 6fb2cd5aa3 Change DisableSubnetTags to tagSubnets 2021-11-24 23:52:28 -08:00
John Gardiner Myers 9d8cade672 Migrate to AWS CCM in k8s 1.24 2021-11-24 17:46:00 -08:00
Ciprian Hacman 04a8874037 Remove featureflag for creating IPv6 clusters 2021-11-20 08:02:36 +02:00
justinsb 6133250046 gossip: support resolution of k8s.local names from pods
We add the hosts plugin to CoreDNS, and we populate a ConfigMap from
kops-controller (when in gossip mode).

This enables resolution of the internal apiserver DNS name from Pods,
even when gossip mode (k8s.local) is in use.  This should fix the
failing e2e tests which are assuming that the name in the JWT token is
resolvable from inside the cluster.

This is also a possible step towards a simpler gossip mode, now that
we have a central controller.
2021-11-19 11:02:15 -05:00
John Gardiner Myers 36cd430722 Add integration test for IPv6 private topology 2021-11-16 22:06:09 -08:00
John Gardiner Myers 019fb7d35d Add create cluster flag for enabling IRSA 2021-11-14 13:52:15 -08:00
Kubernetes Prow Robot 0b696d3076
Merge pull request #12544 from justinsb/decode_non_kops
Show additional ("addon") objects in kops get
2021-11-14 11:02:47 -08:00
justinsb 813f2f1431 kops-controller should log port it is listening on 2021-11-14 10:45:13 -05:00
Kubernetes Prow Robot 3ccb26cef2
Merge pull request #12724 from johngmyers/external-dns
Upgrade external-dns to 0.10.1 for Kubernetes >= 1.19
2021-11-14 07:14:47 -08:00
Ciprian Hacman 4ede23fbc4 Add minimal integration test for Kubernetes 1.23 2021-11-14 09:34:15 +02:00
John Gardiner Myers 8c8455b8f4 Upgrade external-dns to 0.10.1 for Kubernetes >= 1.19 2021-11-13 23:02:10 -08:00
Eng Zer Jun 425173ae9f
refactor: move from io/ioutil to io and os packages
The io/ioutil package has been deprecated as of Go 1.16, see
https://golang.org/doc/go1.16#ioutil. This commit replaces the existing
io/ioutil functions with their new definitions in io and os packages.

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2021-11-12 15:37:18 +08:00
justinsb 39c187ad86 kops get should print additional objects, if they are present
If the user has added additional objects, we should print them in the
full object dump.
2021-11-05 08:11:31 -04:00
John Gardiner Myers 9f99d41323 IPv6 requires external CCM 2021-10-31 12:26:30 -07:00
Peter Rifel 1f37132fc9
Check for orphaned data files in integration test source directories 2021-10-29 17:07:51 -05:00
Peter Rifel c860293783
Add missing cloudformation test invocations 2021-10-29 17:06:15 -05:00
Ciprian Hacman 4597e856de Add more IPv6 integration tests 2021-10-29 17:35:51 +03:00
Peter Rifel 958db43bb8
./hack/update-expected.sh 2021-10-23 18:01:44 -06:00
justinsb 6c46de3270 kops-controller: register coordination scheme
Otherwise we log an error message because we can't discover the GVK
when reporting the leader-election events.
2021-10-19 09:21:12 -04:00
Kubernetes Prow Robot 3ccfaaaf9f
Merge pull request #12285 from justinsb/create_cluster_check_additional_objects
tests: create-cluster integration tests should validate additional objects
2021-10-11 23:19:46 -07:00
justinsb 4dc2c062fd Support GCE TPM verification 2021-10-06 08:40:20 -04:00
John Gardiner Myers b98fcf35d8 Remove Docker overlayfs upgrade code 2021-10-02 19:01:37 -07:00
Jeroen van Erp 7850c4e284
Add support for YAML/JSON output to 'kops get instances' 2021-09-30 11:25:00 +02:00
Peter Rifel 3311e45767
Truncate cluster name prefix used in event bridge rules 2021-09-29 19:12:49 -05:00
Peter Rifel 83e3d3c75d
Lengthen NTH integration test cluster name 2021-09-29 19:10:04 -05:00
justinsb fad6db8beb Refactor bootstrap verifier/authenticator into its own package
No code changes, but this avoids a circular package dependency that we
would otherwise introduce in the GCE logic.
2021-09-26 09:43:53 -04:00
John Gardiner Myers dacccdef40 Fix link to addons documentation 2021-09-23 14:47:02 -07:00
Peter Rifel 4e96f68497
Fix list of supported cloud providers in CLI docs 2021-09-22 20:49:28 -05:00
Kubernetes Prow Robot defcdedb68
Merge pull request #12366 from justinsb/zone_autocompletion
Support zone autocompletion
2021-09-22 17:45:10 -07:00
Kubernetes Prow Robot 74f9a8e2fb
Merge pull request #12342 from eddycharly/irsa-wildcard
feat: add support for wildcard in roles generated for IRSA
2021-09-22 16:09:10 -07:00
Charles-Edouard Brétéché 5f523366d6 feat: add support for wildcard in roles generated for IRSA 2021-09-23 00:24:45 +02:00
justinsb c7e6187493 Support zone completion
Refactor cloud listing & zone guessing into its own package.
2021-09-20 09:53:33 -04:00
Peter Rifel 3cc7162089
Remove TerraformJSON test
The FF is deprecated and would require a lot of effort to support disabling TerraformManagedFiles (which is required) in this one integration test case
2021-09-17 06:42:27 -05:00
Ole Markus With 81177dc634 Add cloud ipam behind a feature flag 2021-09-16 21:12:29 +02:00
Ole Markus With 88bd1953ce Have kops-controller assign instance ipv6 prefix to node 2021-09-16 19:25:19 +02:00
Ole Markus With 02f29bdfe7 Add test for cloudipam 2021-09-16 19:25:16 +02:00
justinsb 153cf97049 tests: create-cluster integration tests should validate additional objects
As we start creating them for addon support, we want to be sure that
they aren't created elsewhere.
2021-09-06 14:45:40 -04:00
Ole Markus With f5fed2a08d Move nvidia config under containerd 2021-09-05 20:28:07 +02:00
Ole Markus With b144304240 Install nvidia device driver addon 2021-09-05 20:09:04 +02:00
Ole Markus With b52008d9b6 Add instance state change notification to nth 2021-08-31 22:54:21 +02:00
John Gardiner Myers f041bdafdc More kops 1.23 updates 2021-08-28 11:54:39 -07:00
John Gardiner Myers 6655022ce1 Remove support for the Lyft CNI 2021-08-28 11:54:39 -07:00
Peter Rifel 53f7e3b089
Add integration test for cluster names beginning with a digit
This will fail until we address each resource type generating terraform resource names that are purely the cluster name
2021-08-27 12:56:58 -05:00
Ole Markus With 67b1ace14f Validate external-dns spec 2021-08-27 06:32:25 +02:00
Ole Markus With 0152c23c1e Remove externaldns feature flag 2021-08-27 06:30:01 +02:00
Ole Markus With ad16042a1f Add IPs to kubelet server cert
Since AWS does not resolve instance hostnames to ipv6, ipv6-only pods that talk to kubelet API has to use node IP, not hostname. Thus we need to add IPs to kubelet server cert.
2021-08-26 20:54:02 +02:00
justinsb 0214c81c89 Update kopeio test to test kopeio networking also 2021-08-15 01:08:59 -04:00
Kubernetes Prow Robot 799b9f4fdf
Merge pull request #12116 from johngmyers/beta-cloud
Correct list of beta cloud providers
2021-08-13 08:20:22 -07:00
John Gardiner Myers 4eb5d24e67 Correct list of beta cloud providers 2021-08-07 14:02:06 -07:00
Ole Markus With 0439bb0d76 Remove UseServiceAccountIAM feature flag and rename feature to UseServiceAccountExternalPermissions 2021-08-07 21:20:03 +02:00
Ole Markus With 887439952a Add ccm integration tests 2021-08-07 10:31:31 +02:00
Kubernetes Prow Robot d148cbed8d
Merge pull request #12049 from iGene/octavia_provider_option
Add Option to Specify OpenStack Octavia Provider
2021-08-04 01:33:24 -07:00
Justin SB 0b38591e11 Fix cluster list action
Restoring the behaviour of `kops get cluster`, where it lists clusters
even if one is configured in kubeconfig.
2021-07-30 13:53:55 +00:00
John Gardiner Myers 009e741b03 Rename for consistency 2021-07-28 20:21:54 -07:00
John Gardiner Myers 4ea591313f Use the passed-in io.Writer 2021-07-28 20:21:54 -07:00
John Gardiner Myers 224eb66169 Remove need for rootCommand to implement Factory 2021-07-28 20:21:53 -07:00
John Gardiner Myers 59f96b9352 Remove redundant printing of error message 2021-07-28 20:21:53 -07:00
John Gardiner Myers 4174430728 Remove rootCommand.Cluster() 2021-07-28 20:21:53 -07:00
John Gardiner Myers 085b43e420 Clean up "kops get secrets" 2021-07-27 21:33:52 -07:00
John Gardiner Myers 7fe9c95677 Add completion for "kops delete secret" 2021-07-27 21:32:05 -07:00
John Gardiner Myers 597192981d Clean up "create secret weavepassword" 2021-07-27 19:05:39 -07:00
John Gardiner Myers df325d28a3 Clean up "create secret encryptionconfig" 2021-07-27 19:05:39 -07:00
John Gardiner Myers a4b91dab0d Clean up "create secret dockerconfig" 2021-07-27 19:05:39 -07:00
John Gardiner Myers 0f5dcc2303 Clean up "create secret ciliumpassword" 2021-07-27 19:05:39 -07:00
Ching Kuo 3ac430731e Add Autocomplete for os-octavia-provider
This commits adds autocomplete function for os-octavia-provider option
base on the list of available providers from OpenStack document.
2021-07-28 08:44:15 +08:00
Ching Kuo 7fba614a3c Add Option to Specify OpenStack Octavia Provider
In newer version of OpenStack, there are multiple octavia provider to
choose from instead of only "octavia" as provider. This commit added a
command line option "os-octavia-provider", enabling user to specify the
octavia provider that will be use to create load balancers.
2021-07-27 15:15:17 +08:00
John Gardiner Myers cd1aa1ab53 Simplify FindSSHPublicKeys() interface 2021-07-24 09:01:22 -07:00
John Gardiner Myers 0b4345d3fd Split out "get sshpublickeys" command 2021-07-24 09:01:22 -07:00
John Gardiner Myers cddefc0a1f Simplify DeleteSSHCredential() interface 2021-07-24 09:01:21 -07:00
John Gardiner Myers 4bbed0339a Split out "delete sshpublickey" command 2021-07-24 09:01:21 -07:00
John Gardiner Myers d935a419f8 Simplify AddSSHPublicKey() interface 2021-07-24 08:59:57 -07:00
John Gardiner Myers de191e2366 Pull "create sshpublickey" into its own subcommand 2021-07-24 08:59:56 -07:00
John Gardiner Myers de64d287f0 Replace "kops describe keypair" with "kops get keypair -oyaml" 2021-07-22 16:47:59 -07:00
John Gardiner Myers 5670d56b5d Clean up "kops get keypairs" 2021-07-22 14:15:15 -07:00
John Gardiner Myers 1e4dee452e Implement completion for "kops get instances" 2021-07-22 14:15:09 -07:00
John Gardiner Myers 337377c163 Implement completion for "kops get instancegroups" 2021-07-22 13:57:13 -07:00
Kubernetes Prow Robot abfc62ae2f
Merge pull request #12028 from johngmyers/complete-get
Implement completion for "kops get", part one
2021-07-22 04:49:52 -07:00