Repository navigation
fix: Deploy NSO with its config in one build - #257
Draft
vvoytovych wants to merge 2 commits into
Draft
vvoytovych wants to merge 2 commits into
vvoytovych wants to merge 2 commits into
Conversation
The bootstrap deployed NSO's bundle, then applied its own network-services-operator-config by server-side apply, and restarted NSO. That works only while NSO's bundle names its ConfigMap with no hash. With a hash, NSO mounts its own ConfigMap and runs on its default config, with no error. The nso overlay now builds NSO's config/default and replaces its config with `behavior: replace`. The manager mounts this config under the name the bundle gives it, hashed or not. The re-apply and the restart go.
The bootstrap ran its NSO steps joined with `;`, so only the last step's status counted. NSO's deploy always failed on its ServiceMonitor, because the kind upstream has no ServiceMonitor CRD, and nothing showed it. The NSO steps now run under `set -e`, as go-install-tool does, so a failed step stops the bootstrap. The bootstrap installs the Prometheus Operator CRDs first, at the version infra runs, and NSO deploys whole.
vvoytovych
marked this pull request as ready for review
October 20, 2026 06:39
vvoytovych
marked this pull request as draft
October 20, 2026 13:43
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.
Summary
The local bootstrap writes NSO's config under a fixed name after NSO deploys, so once NSO's bundle hashes that name, as https://github.com/datum-cloud/infra/issues/7199 plans, NSO would run on its own default config with no error.
This deploys NSO and that config in one build, so NSO mounts it under whatever name NSO's bundle gives it.
It also stops the bootstrap when an NSO step fails, and installs the Prometheus Operator CRDs that NSO's deploy had been failing on unseen. An NSO clone from before the hash does not restart on a changed config, so pull it.
Test plan
Related to https://github.com/datum-cloud/infra/issues/7199