Commit Graph

1657 Commits

Author SHA1 Message Date
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