feat: move secrete generation to install-<service>.sh scripts#1374
feat: move secrete generation to install-<service>.sh scripts#1374rackerchris wants to merge 3 commits intorackerlabs:mainfrom
Conversation
|
@rackerchris this is massive, is this still needed? |
Its the next step into a single unified installation script for genestack. Right now create_secrets.sh is a possible regression vector as it does not take into account existing secrets. it will create /etc/genestack/kubesecrets.yaml (and only throw an error if the file exists). However secret validation/generation should be handled in the specific service install script. Currently when we add a new service we have to manually create a "subset" secret creation script. If secrets were managed by the install script we can eliminate manual secret generation as well as protect ourselves from secrets being changed outside of the install script. |
This PR transitions the Genestack installation process from a series of imperative, standalone scripts to a unified, library-driven Orchestration Framework. The primary goal is to achieve "Zero-Touch" deployments where the scripts manage the entire lifecycle of credentials, dependencies, and parallel execution.
Key Structural Changes
Centralized Logic (common-functions.sh)
Secret Lifecycle: Introduced get_or_create_secret which lazily retrieves existing credentials or generates cryptographically secure values if missing.
Parallel Engine: Implemented run_parallel and wait_parallel to manage background processes with standardized timeout logic and error reporting.
Dependency Mapping: Centralized pre-flight checks for tools like yq, helm, and kubectl.
Orchestration Strategy (setup-openstack.sh)
Phase-Based Deployment:
Configuration: Deployment plan is now declaratively defined in /etc/genestack/openstack-components.yaml.
Service Modernization
Zaqar, Nova, Neutron: Refactored to use the new template.
Nova SSH: Specialized logic added to handle RSA key-pair generation.
Metadata Consistency: Nova and Neutron now share the same metadata-shared-secret automatically.
*** BREAKING CHANGES & RELEASE NOTES
Checklist for Reviewers