Products
Each product is a chart you install in its own namespace. This page covers what the platform sets up for it and how you manage its settings.
- Chart:
registry.rigfab.com/rft/apps/<product>/charts/<product> - Namespace:
rft-app-<product> - Database: a CloudNativePG cluster
<product>-db, with the credentials in<product>-db-app
Your licence and pull token decide which products and versions you can pull.
What the platform gives each product
When a product installs, the base chart's controller gives it, through its PlatformApp:
- Secret
<product>-oidc, its client at your identity provider. See Sign-in. - Secret
<product>-directory, its token for the platform's directory. See User provisioning. - Generated secrets, such as its session secret, in
<product>-generated. They're made once and never shown. - Copies of your licence and the pull Secret.
To see whether each product has everything:
kubectl get platformapps --all-namespacesREADY is true once everything is in place. MESSAGE says what the controller is waiting for.
What a product needs from you
Each product's page under Product settings lists:
- its settings
- its secret settings
- the services on your network it reaches
- a starter values file
Secret settings
A product's secret settings are its passwords and keys. Give them in one of two ways. The chart refuses both at once.
- Your own Secret (production). Create a Secret in the product's namespace and name it as
secrets.existingSecret. The product's page has thekubectlcommand. To keep the Secret in git or a secret store, create it with External Secrets Operator, SOPS or Sealed Secrets instead. - The values file (to get started). Type them under
secretsin the product's values file. The chart writes them into Secret<product>-env.
A values file with passwords in it tends to end up in git. Helm also keeps a copy of the values you pass in its release record in the cluster.
A required key is missing
Your own Secret needs a key for every secret setting the product's page marks as required. When one is missing, none of the product's pods start, its database migration included:
kubectl --namespace rft-app-<product> get podsshowsCreateContainerConfigErrororInit:CreateContainerConfigError.kubectl --namespace rft-app-<product> describe podsnames the missing key.helm install --waitorhelm upgrade --waitends at its timeout.
Add the key and the pods start by themselves.
An upgrade stops the version you had before it starts the new one. When a release's notes add a required secret setting, add its key to your Secret before you upgrade.
Change a setting
Change a setting with helm upgrade. It restarts the product's pods.
After you change your own Secret, restart the pods yourself:
kubectl --namespace rft-app-<product> rollout restart deploymentRotate a secret
To rotate a generated secret, delete it. The controller makes a new one, and the product's pods pick it up when they restart. If the product's settings still hold a value for it, the controller copies that value again instead.
Rotating a session secret signs everyone out.
Add a product later
- Create its namespace.
- Run
rft loginwith--pull-secret rft-app-<product>/rigfab-pull. - Install it, as Install says.
When a product moves a secret to its generated secrets
Some releases move a secret the product owns, such as its session secret, from its settings to its generated secrets. The release notes say when. The product keeps your value:
- Upgrade
rft-basefirst. - Leave the value in
secretsor your own Secret for the product's upgrade. The controller copies it into<product>-generatedonce. - After that the product uses the copy, and you can remove the setting.
An older rft-base makes a new value instead. That can sign people out or, for an encryption key, leave the
product unable to start or to read what it stored.
If that happened, upgrade rft-base, keep your value in the settings, and delete that key from
<product>-generated. The controller copies your value again.
Next steps
- Sign-in to register each product at your identity provider.
- User provisioning to connect your directory.
- Upgrade when new releases are listed.