Repository navigation
kubectl-ate: typed postgres and objectStore config for install - #153
Merged
Merged
Conversation
objectStore now takes a bucket and s3 or gcs settings, and the installer fills the atelet and substrate chart values from them. The substrate release's object store plugin now gets the S3 region, endpoint, path style and credentials too. Before, it had only the backend name. The bare objectStore: s3 form still works, and so do the raw chart values. The wizard asks for these settings instead of a values file. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
postgres is now a struct with a type, like objectStore, and both still accept the type alone. The installer's RustFS is now objectStore type bundled, matching postgres. Configs that say rustfs still work. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
TestNoNewHardcodedInstallLayoutInGo rejects ate-system literals. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
EItanya
force-pushed
the
installer-object-store
branch
from
November 8, 2026 16:07
cc08f01 to
c78f0ca
Compare
EItanya
added a commit
that referenced
this pull request
Nov 8, 2026
…roviders (#159) * docs: list substrate-atelet among the published charts (#151) Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> (cherry picked from commit 19cc8d5) Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> * charts: let egress use other credential providers (#152) * charts: let egress use other credential providers credentialProvider.enabled turns off the bundled Kubernetes Secret provider and its k8s.io route. credentialProvider.extraProviders points the egress gateway at providers deployed outside the chart, matching the ate-setup --credential-provider options. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> * charts: move extra credential providers under atenetEgress credentialProvider configures the bundled provider. The extra providers configure the egress gateway. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> --------- Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> (cherry picked from commit 40c2eaa) Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> * kubectl-ate: typed postgres and objectStore config for install (#153) * kubectl-ate: add typed objectStore config to install objectStore now takes a bucket and s3 or gcs settings, and the installer fills the atelet and substrate chart values from them. The substrate release's object store plugin now gets the S3 region, endpoint, path style and credentials too. Before, it had only the backend name. The bare objectStore: s3 form still works, and so do the raw chart values. The wizard asks for these settings instead of a values file. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> * kubectl-ate: configure postgres and objectStore the same way postgres is now a struct with a type, like objectStore, and both still accept the type alone. The installer's RustFS is now objectStore type bundled, matching postgres. Configs that say rustfs still work. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> * kubectl-ate: don't name the system namespace in install help TestNoNewHardcodedInstallLayoutInGo rejects ate-system literals. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> --------- Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> (cherry picked from commit dda7ca9) Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> * kubectl-ate: per-operation installer options and exported steps (#154) * kubectl-ate: take install charts as an fs.FS A program that embeds the installer can pass charts it ships itself instead of writing them to a directory. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> * kubectl-ate: split installer options per operation and export steps Upgrade and Uninstall take their own options, so Options holds only the cluster, charts and config. Step, Run and InstallSteps are exported so a caller can add steps to an install, such as setting up its own database before StepCheckDatabase. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> --------- Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> (cherry picked from commit d006b3b) Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> * Move the installer to pkg/kagent/install (#157) kagent imports the installer, so it can't stay under cmd/kubectl-ate/internal. microvmassets moves with it. Fork-only packages live under pkg/kagent so upstream can't add a package at the same path. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> (cherry picked from commit 471cd0c) Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> --------- Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
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.
Step 3 of the installer refinement, before the config becomes a library API.
Before this change, s3 and gcs installs needed raw chart values in three places:
objectStore.*on substrate-atelet, andateApi.snapshotLocationandobjectStorePlugin.*on substrate.objectStorenow also takes a struct, and the installer turns it into those values:This also fixes a gap. With s3, the substrate release's object store plugin had only the backend name and no region, endpoint or credentials. It now gets them as
objectStorePlugin.extraEnv, added after any entries the user set.The second commit makes both dependencies take the same shape. Each is a struct with a
type, andbundledmeans the installer deploys it. The installer's RustFS is nowobjectStore: bundled.Existing configs stay valid:
postgres: externalandobjectStore: s3still parse as just the type.rustfsstill parses, asbundled.The wizard asks for the bucket and the S3 or GCS settings instead of a values file.
I wrote this with Claude Code and reviewed the diff.