Commit Graph

219 Commits

Author SHA1 Message Date
Peter Rifel 5ac11aa55a
Cleanup logging for reconcile cluster 2025-02-23 21:04:31 -06:00
justinsb f2d4eeb104 reconcile: wait for apiserver to response before trying rolling-update
The rolling-update requires the apiserver (when called without --cloudonly),
so reconcile should wait for apiserver to start responding.

Implement this by reusing "validate cluster", but filtering to only the instance groups
and pods that we expect to be online.
2025-01-13 17:47:48 -05:00
Kubernetes Prow Robot 51db52f025
Merge pull request #17154 from justinsb/build_our_own_rest_config
chore: refactor factory to accept a cluster
2024-12-28 09:08:12 +01:00
justinsb 859a9fd9f1 chore: refactor factory to accept a cluster
This should allow us to build our own rest config in future,
rather than relying on the kubeconfig being configured correctly.

To do this, we need to stop sharing the factory between the channels
and kops commands.
2024-12-27 15:36:37 -05:00
justinsb ebcfebe50e chore: add context to rolling update functions
Move it out of the struct, and into the function parameters.

This is more go idiomatic.
2024-12-27 14:22:51 -05:00
justinsb 4a63a118b2 Remove unusued kubernetesVersion from AssetBuilder
This field is no longer used, and can be removed.
2024-12-04 08:57:17 -05:00
Pierre Prinetti 1005dda58e
Upgrade to Gophercloud v2
Essentially:

* Add a context argument to Gophercloud functions
* Refactor scheduler hints for server creation
2024-10-23 12:33:34 +02:00
justinsb 3646a610b1 refactor: Move GetCloudProvider to cluster
This lets us use labels (or annotations), meaning we can experiment
with different clouds without changing the API.

We also add initial (experimental/undocumented) support for exposing a "Metal" provider.
2024-08-26 08:20:37 -04:00
justinsb 65fe6dc3c4 refactor: ApplyClusterCmd clearly returns results
By having an explicit return value, we set ourselves up for better reuse.
2024-07-04 14:54:00 -04:00
Peter Rifel f05284a2f9
Migrate Instance Group management to aws-sdk-go-v2 2024-04-13 16:01:41 -04:00
Ciprian Hacman 28939f865b azure: Implement DeleteInstance for rolling update 2024-04-07 16:02:22 +03:00
Peter Rifel d4d39eb0fe
Migrate autoscaling to aws-sdk-go-v2 2024-03-31 23:04:06 -05:00
justinsb 2a9343a168 Generate revisions of NLB objects, and introduce cleanup phase
This lets us safely make changes to otherwise immutable fields, in
particular for adding security groups to NLBs created without them.

We detect the older versions, and create deletion tasks to remove
them.  These tasks can be deferred, and we expect them to be
deferred to a "prune" phase that runs after cluster apply.

Co-authored-by: Ciprian Hacman <ciprian@hakman.dev>
2024-02-17 11:41:15 -05:00
justinsb 49dfdabb79 cloudmock: Add context functions to mock 2023-11-09 08:17:10 -05:00
Ciprian Hacman 65c24a9f3d Add missing mock functions 2023-11-09 08:17:10 -05:00
Leïla MARABESE c02fb479dc reconcile instancegroup 2023-08-29 17:42:19 +02:00
John Gardiner Myers 57b0d8e9cd v1alpha3: Move configBase to configStore.base 2023-07-22 15:57:35 -07:00
John Gardiner Myers 9b64707159 Ignore no-longer-used topology fields in ClusterSpec 2023-07-19 08:48:38 -07:00
John Gardiner Myers 2420991954 Determine default API access method by IG subnet type 2023-07-18 22:21:05 -07:00
John Gardiner Myers 1358851c7d Get VFSContext from caller in NewAssetBuilder() 2023-07-18 08:49:06 -07:00
John Gardiner Myers 245cd64a3a Get VFSContext from caller in LoadChannel() 2023-07-17 21:45:43 -07:00
John Gardiner Myers 11304807f2 Hold reference to VFSContext from simple.Clientset 2023-07-06 19:41:45 -07:00
Kubernetes Prow Robot f6a36bfc42
Merge pull request #14194 from jandersen-plaid/jandersen-plaid-exit-first-error
Exit rolling updates when encountering specific errors
2023-01-09 23:59:25 -08:00
John Gardiner Myers c68be498c6 Refactor NewAssetBuilder to not take a Cluster 2023-01-01 13:37:52 -08:00
justinsb 90cbf75584 Context threading: more wiring
We're aiming to use this for testing immediately and better
logging/tracing in future, but to make the changes manageable breaking
them into a smaller series that don't directly achieve much.
2022-12-22 17:52:22 -05:00
Jack Andersen 89dfafefe7
Make struct members private, alter formatting, add unwrap method
Signed-off-by: Jack Andersen <jandersen@plaid.com>
2022-12-21 09:30:19 -08:00
Jack Andersen 66fe8e8118
Move results insert to original location to reduce diff
Signed-off-by: Jack Andersen <jandersen@plaid.com>
2022-12-21 09:30:18 -08:00
Jack Andersen dfd9516a4f
Continue to log if an error is encountered, separate the exit check 2022-12-21 09:30:18 -08:00
Jack Andersen f5f71f17f9
Satisfy the Is interface with ValidationTimeoutError and change callers of err check
Signed-off-by: Jack Andersen <jandersen@plaid.com>
2022-12-21 09:30:17 -08:00
jandersen-plaid 4eb455c6b9
Update pkg/instancegroups/rollingupdate.go
Co-authored-by: Ole Markus With <olemarkus@gmail.com>
2022-12-21 09:30:16 -08:00
Jack Andersen 2bd5403f37
Create a specific error type for validation timeouts and classify as exitable
Signed-off-by: Jack Andersen <jandersen@plaid.com>
2022-12-21 09:30:16 -08:00
Jack Andersen 6efd68f428
Remove optionality and exit when specific error prefix is matched
Signed-off-by: Jack Andersen <jandersen@plaid.com>
2022-12-21 09:30:14 -08:00
Jack Andersen f9ea9b3ef8
Add a flag to rolling update to fail immediately on IG error
Signed-off-by: Jack Andersen <jandersen@plaid.com>
2022-12-21 09:30:13 -08:00
John Gardiner Myers 235aa61594 v1alpha3: move networking fields under networking 2022-12-02 19:19:59 -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 d39ba74bd7 Change the control-plane IG role to "ControlPlane" in v1alpha3 API 2022-11-22 17:05:29 -08:00
Ciprian Hacman 8f79c9bd68 Replace fi.Bool/Float*/Int*/String() with fi.PtrTo() 2022-11-19 03:45:22 +02:00
John Gardiner Myers 64be690211 Update TopologySpec for v1alpha3 API 2022-11-06 09:10:38 -08:00
Ole Markus With b45968c992 Log and aggregate errors from rolling update
Rather than just returning the error from the first failing IG
2022-10-20 20:04:18 +02:00
Ole Markus With a5b1722110 Ensure kOps doesn't surge on karpenter IGs 2022-10-17 15:22:39 +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
Ole Markus With 1ea5243406 Warm pool-enabled ASGs scaled to zero will no longer panic 2022-09-09 11:08:00 +02:00
Ciprian Hacman cb99db0757 Run make goimports 2022-08-17 07:03:33 +03:00
Ole Markus With c260cf69b3 Log errors from detachInstance 2022-06-27 19:58:16 +02:00
Rémy Léone 80d2d53643 fix tenv linter 2022-06-15 18:06:28 +02:00
Ciprian Hacman b5f14b589b Add initial support for Hetzner Cloud 2022-05-09 06:12:15 +03:00
Ole Markus With ce2e877aeb Remove bazel files from vendor 2022-04-12 13:29:03 +02:00
Ole Markus With 982463683d Remove checks that doesn't work when we do not delete the node object 2022-03-06 07:34:52 +01:00
Ole Markus With 2ba9c1670f Only delete node object on GCE 2022-03-06 07:34:52 +01:00
John Gardiner Myers cac727c357 Make cloudProvider a struct in v1alpha3 API 2022-03-02 21:59:49 -08:00