Repository navigation
[release-1.0] Backport kubectl ate install, upgrade and uninstall - #148
Merged
Merged
Conversation
(cherry picked from commit 65fcc74)
* kubectl-ate: add install and status commands kubectl ate install installs the substrate-crds, substrate-podcert, substrate-atelet and substrate charts in order, from copies embedded in the binary. It creates the CA pools, identity secrets and object store credentials the charts expect. By default it applies a single-replica PostgreSQL for evaluation. --microvm stages the microVM guest assets in the object store and applies the microvm SandboxConfig. The helm-e2e workflow now installs with kubectl ate install --microvm. kubectl ate status shows the releases and their workloads. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> * tools/apitool: tidy go.mod for the Helm SDK dependencies Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> * kubectl-ate: name Helm's field manager kubectl-ate Helm names its server-side apply manager after the binary, so rerunning install from a renamed binary conflicted with the fields the first run applied. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> --------- Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> (cherry picked from commit 4e72650)
Upgrade moves the certificate controller, atelet, the CRDs, then the substrate release to the embedded charts, and keeps each release's values. It refuses downgrades, skipped minor releases and CRD changes that would strand stored objects. --dry-run prints each release's manifest diff. If the microvm SandboxConfig exists, upgrade stages the assets the new release pins and reapplies it. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> (cherry picked from commit 340d5cf)
* kubectl-ate: add uninstall command Uninstall deletes every WorkerPool and waits for ate-controller to finalize them. Then it uninstalls the releases in reverse order and removes the bundled PostgreSQL. CRDs, CA keys, secrets and volumes stay unless --include-crds or --purge is set. The RustFS PVC gets helm.sh/resource-policy: keep, so helm uninstall keeps the snapshots the database refers to. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> * manifests: render the RustFS volume keep annotation Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> --------- Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> (cherry picked from commit 65cb208)
* kubectl-ate: show install progress in a TUI On a terminal, install, upgrade and uninstall draw a live step list, and Ctrl+C cancels the running step. A bare kubectl ate install on a terminal asks for its options and prints the matching command. --no-tui and -v print plain lines. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> * kubectl-ate: skip the install wizard when flags are set LocalNonPersistentFlags returns a new FlagSet whose NFlag is always 0, so install asked for its options even with --microvm or -f set. Check each flag's Changed instead. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> --------- Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> (cherry picked from commit 81ee5e0)
…ile (#144) * kubectl-ate: configure install, upgrade and uninstall with a config file Install options came from a set of flags that scripts had to repeat on every run. A YAML config, from a file or stdin with -c -, replaces them. The wizard prints the config it built so the next run can skip it. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> * kubectl-ate: set Helm values per release in the install config releases.all applies to every release except substrate-crds, and releases.podcert, atelet and substrate add values for one release. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> * helm-e2e: give each release only the values it reads Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> --------- Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> (cherry picked from commit 04d9321)
helm-e2e: run every suite on both runtimes (cherry picked from commit c070968)
) setup-go keys its cache on go.sum with no fallback, so a PR that changes go.sum built from scratch and saved its own 3.6GB copy. run-tests now restores the latest main cache by prefix and saves only on main. helm-e2e reuses the e2e job's cache. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> (cherry picked from commit 1a65fa0)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backports the
kubectl ateinstall, upgrade and uninstall work torelease-1.0, with the helm-e2e changes it relies on. Each commit is agit cherry-pick -xof themaincommit:atenetEgress.agentgateway.logLevel, whichrelease-1.0lacked.#119 and #138 conflicted only in
helm-e2e.yaml, the chart README and the chart tests, whererelease-1.0had added lines next to theirs. Both sides are kept. After #138,helm-e2e.yamlmatchesmain.I used Claude Code to cherry-pick the commits and resolve the conflicts.