Secrets configuration (values-secret.yaml)
Hybrid Mesh Platform uses the Validated Patterns secrets framework (schema v2). Workshop facilitators copy the template locally; secrets are never committed to Git.
Quick setup
cp values-secret.yaml.template values-secret.yaml
# Edit values-secret.yaml for your environment
./pattern.sh make install
values-secret.yaml is gitignored. CI validates the template against the upstream JSON schema (see .github/workflows/jsonschema.yaml).
Official VP reference: Secrets management in the Validated Patterns framework.
Schema overview
version: "2.0"
secrets:
- name: <kubernetes-secret-name> # logical name VP Vault utils use
vaultPrefixes:
- global # Vault path prefix (VP hashicorp-vault chart)
fields:
- name: <key-in-secret>
onMissingValue: generate # generate | error | path | ini_file
vaultPolicy: validatedPatternDefaultPolicy
onMissingValue | When to use |
|---|---|
generate | Demos / workshops — VP creates random values at install |
error | Production — install fails until you provide the field |
path | Read from a file on the install host (e.g. ~/.pullsecret.json) |
ini_file | Read from INI sections (e.g. AWS credentials) |
Fields in this pattern
| Secret name | Keys | Required? | Notes |
|---|---|---|---|
config-demo | secret | No | Auto-generated demo secret |
kairos-ai-credentials | api-key | Workshop | Use error + real MaaS key in production; RHDP may inject via litemaas.apiKey instead |
openshift-ai-maas-credentials | OPENAI_API_KEY, OPENAI_API_BASE | Workshop | Same — prefer Vault+ESO path on hub (vault-maas-external-secrets) |
mcp-gateway-argocd | token | Optional | Post-install; generate Argo CD token for MCP Gateway |
workshop-users | defaultPassword | Optional | Demo user password; production should use OAuth |
aws | aws_access_key_id, aws_secret_access_key | Only if provisioning clusters via ACM ClusterPools | Uncomment in template |
openshiftPullSecret | content | Only for private cluster provisioning | Download from console.redhat.com |
RHDP workshop vs standalone
| Scenario | What to configure |
|---|---|
RHDP field-content (existing_gitops: true) | Often no values-secret.yaml on cluster — RHDP provisions the hub; MaaS keys flow via litemaas.apiKey and maas-facilitator-rhdp-sync |
Standalone ./pattern.sh install | Copy template → values-secret.yaml; set onMissingValue: error for MaaS keys or rely on Vault chart + facilitator seed |
| Vault standalone | VP hashicorp-vault chart + local values-secret.yaml for init/unseal tokens only — see Vault product page |
Example — production MaaS keys (standalone)
version: "2.0"
secrets:
- name: kairos-ai-credentials
vaultPrefixes:
- global
fields:
- name: api-key
onMissingValue: error
path: ~/.maas-api-key.txt
vaultPolicy: validatedPatternDefaultPolicy
- name: openshift-ai-maas-credentials
vaultPrefixes:
- global
fields:
- name: OPENAI_API_KEY
onMissingValue: error
path: ~/.maas-api-key.txt
vaultPolicy: validatedPatternDefaultPolicy
- name: OPENAI_API_BASE
onMissingValue: error
path: ~/.maas-api-base.txt
vaultPolicy: validatedPatternDefaultPolicy
Example — MCP Gateway Argo CD token
argocd account generate-token --account mcp-gateway > ~/.mcp-gateway-token
- name: mcp-gateway-argocd
vaultPrefixes:
- global
fields:
- name: token
onMissingValue: error
path: ~/.mcp-gateway-token
vaultPolicy: validatedPatternDefaultPolicy
Validate before install
cp values-secret.yaml.template values-secret.yaml
check-jsonschema --fill-defaults \
--schemafile https://raw.githubusercontent.com/validatedpatterns/rhvp.cluster_utils/refs/heads/main/roles/vault_utils/values-secrets.v2.schema.json \
values-secret.yaml
Related
- Getting started — install flow
- Vault — Vault + External Secrets on hub
- RHDP field content — runtime
litemaas.*injection