Commit Graph

165 Commits

Author SHA1 Message Date
Ciprian Hacman 0718c0dc69 hetzner: Update hetznercloud/hcloud-go to v2 2025-06-28 09:30:54 +03:00
justinsb 0f13759bdf Fixup kubelet and controlPlaneKubelet config building
We need to differentiate between the version of the control plane
and the version of the nodes.
2024-12-04 08:53:02 -05:00
justinsb 3f38846ca5 refactor: create abstraction over cluster/instancegroup for building assets
This abstraction should let us change the version on an instance group level.
2024-11-27 07:38:34 -05:00
Peter Rifel 4418e65232
Migrate nodeup to aws-sdk-go-v2 2024-03-24 18:05:26 -05:00
upodroid 2b056b9b17 add support for auth-provider-gcp cred provider 2023-10-10 10:29:16 +01:00
John Gardiner Myers ed9883651c Remove references to Openstack ClusterSpec fields from nodeup 2023-07-29 04:42:07 -07:00
John Gardiner Myers bbff6298e7 Remove support for bootstrap tokens 2023-07-16 12:12:00 -07:00
John Gardiner Myers 977aacc356 Remove dead code for non-kops-controller bootstrap 2023-07-16 07:40:25 -07:00
John Gardiner Myers a56e8eb049 Refactor UsesExternalECRCredentialsProvider() 2023-07-11 09:46:01 -07:00
John Gardiner Myers aef6fbdd29 Refactor UseKopsControllerForNodeBootstrap() 2023-07-11 09:45:45 -07:00
justinsb ca67b1ca1e Refactor: rename IsGossip -> UsesLegacyGossip
We want to be able to use "dns=none" (without peer-to-peer gossip)
even for clusters that have the k8s.local extension.  These were
previously called "gossip clusters", but really that is an
implementation; what actually matters to users is that they don't rely
on writing records into a DNS zone (such as Route53).
2023-05-22 21:50:16 -04:00
Ciprian Hacman cd59ed1a56 Update CNI plugins to v1.2.0 for K8s 1.27+ 2023-05-20 22:01:35 +03:00
justinsb c89f434f1b Only use node challenge on hetzner
DigitalOcean (and others) will follow shortly.

Also create a method for CloudProvider, so that we are more ambivalent
towards bootstrapping methods.
2023-05-06 08:57:21 -04:00
Justin SB c67f895226 Perform challenge callbacks into a node
In order to verify that the caller is running on the specified node,
we source the expected IP address from the cloud, and require that the
node set up a simple challenge/response server to answer requests.

Because the challenge server runs on a port outside of the nodePort
range, this also makes it harder for pods to impersonate their host
nodes - though we do combine this with TPM and similar functionality
where it is available.
2023-05-06 08:03:21 -04:00
Ciprian Hacman e6e4324b85 Remove compatibility with k8s.gcr.io 2023-02-12 13:46:48 +02:00
John Gardiner Myers 68c4ef1a93 Move networking-related tests to nodeup.Config 2023-01-15 23:12:00 -08:00
John Gardiner Myers cc49461849 Move several CNI tests to nodeup.Config 2023-01-15 23:11:58 -08:00
John Gardiner Myers da881fb320 Move NonMasqueradeCIDR to nodeup.Config 2023-01-15 17:19:18 -08:00
justinsb b7d9319fff EnsureTask should panic on error
This means that we automatically check the error code.  A linter could
detect errors here (maybe), but in practice we can't recover from
errors here anyway.
2023-01-04 08:29:20 -05:00
John Gardiner Myers 4179fcce58 Use NodeupConfig for KubernetesVersion 2023-01-03 22:16:20 -08:00
John Gardiner Myers 99d36bd9f2 Extract NodeupModelContext.APIInternalName() 2023-01-01 13:48:01 -08:00
John Gardiner Myers 8aeefe23ed Use NodeupConfig for cluster name 2023-01-01 13:48:01 -08:00
John Gardiner Myers c08326e8c0 Separate out a VFSSecretStoreReader 2023-01-01 13:47:05 -08:00
Kubernetes Prow Robot b97662c6a3
Merge pull request #14837 from johngmyers/gce-cloudconfig
v1alpha3: Move GCE-specific CloudConfig settings to GCESpec
2022-12-24 22:31:26 -08:00
justinsb 817c1e63b3 FindKeyset can return nil
We had missed a case in nodeup; add a Context argument to force us to
revisit the codepaths.
2022-12-24 16:12:21 -05:00
John Gardiner Myers b38c55a2b9 Simplify nodeup references to CloudProvider 2022-12-20 19:44:32 -08:00
John Gardiner Myers 7d14a5ac17 Mark access to cluster as deprecated in nodeup 2022-12-20 12:00:37 -08:00
John Gardiner Myers d916596c32 Give nodeup a read-only Keystore 2022-12-20 12:00:37 -08:00
John Gardiner Myers 7c3e32369a Refactor Context into separate cloudup and nodeup types 2022-12-17 17:42:46 -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
Ciprian Hacman d29812fc6e Replace fi.Bool/Float*/Int*/StringValue() with fi.ValueOf 2022-11-19 03:45:23 +02:00
Ciprian Hacman 8f79c9bd68 Replace fi.Bool/Float*/Int*/String() with fi.PtrTo() 2022-11-19 03:45:22 +02:00
John Gardiner Myers 8473e8b2e7 Stop making MasterInternalName configurable 2022-11-16 22:06:02 -08:00
John Gardiner Myers 0e981b1728 Remove dead code 2022-11-15 12:40:43 -08:00
Ciprian Hacman f30f9e92d9 azure: Use chrony instead of timesyncd 2022-11-08 22:30:34 +02:00
Ole Markus With 950a69857d Remove usage of cluster kubelet config from nodeup 2022-10-16 21:04:20 +02:00
justinsb 9bb1d3e114 Configuration file for kube-scheduler
We generate a kube-scheduler configuration file in the kops CLI, and
nodeup will use it if provided (instead of generating one).

We put the configuration file into the fileAssets.

Users can provide a kube-scheduler configuration in additional
objects, and this will be used as the base configuration (we add the
kubeconfig path).

Issue #13352

Co-authored-by: Ciprian Hacman <ciprian@hakman.dev>
2022-08-03 09:51:05 -04:00
Ciprian Hacman b5f14b589b Add initial support for Hetzner Cloud 2022-05-09 06:12:15 +03:00
justinsb 8220211655 nodeup: store the CloudProvider in the context
This is a bit simpler than fetching it from the cluster every time,
and also can allow things like mixed-cloud clusters (in future).
2021-12-11 09:16:03 -05:00
Ciprian Hacman ea7df00719 Run hack/update-gofmt.sh 2021-12-01 22:39:50 +02:00
Ole Markus With 91b40385e6 Remove redundant evaluation of hostnameOverride
The override is already resolved in upup/pkg/fi/nodeup/command.go
2021-11-30 11:22:02 +01:00
Brandon 4bc48fc7b6 use metadata to retrieve instance hostname in nodeup 2021-11-26 19:24:04 -06:00
John Gardiner Myers b9ac79ec6e Rename fields in v1alpha3 networking API to fit acronym convention 2021-11-22 08:07:55 -08:00
justinsb f54cf000fd GCE: use chrony on Ubuntu + GCE
Ubuntu on GCE has systemd-timesyncd masked, and recommends (and
preconfigures) chrony instead.
2021-10-23 13:36:50 -04:00
John Gardiner Myers 0fd4dca30e Remove dead code 2021-10-02 20:58:55 -07:00
Ole Markus With f5fed2a08d Move nvidia config under containerd 2021-09-05 20:28:07 +02:00
Ole Markus With 4ab75b01cb Have instances learn about their GPU capabilities 2021-09-05 20:09:04 +02:00
Ole Markus With 2d013e460c Install nvidia container runtime 2021-09-05 20:09:04 +02:00
John Gardiner Myers be8933b577 Remove code for unsupported features 2021-08-28 13:49:55 -07:00
John Gardiner Myers 6655022ce1 Remove support for the Lyft CNI 2021-08-28 11:54:39 -07:00