Pre-Installation Setup¶
Monitoring has a lot of secrets to communicate with various Phalanx components and to stock its mapping of alerts (via Slack webhooks) to channels.
Initial Gafaelfawr Setup¶
Gafaelfawr must have config.oidcServer.enabled set to true if you intend to use it as the authentication source for Chronograf.
Initial Secret Setup¶
- Do an initial sync of the secrets: If there is no - monitoringsecret in the environment you’re working on, create it: Add a new static secret. Follow the guide at Update a static secret to add values for- admin-tokenand- admin-password. I usually use the output from- openssl rand -hex 16to generate a 32-character password representing 16 random bytes, but any random password generation method would do.
- Configure the - webhooks.yamlsecret. If you can, you should probably just copy it from a working environment and edit to suit. But if you must recreate it from scratch:
- It is a YAML document that is a list of mappings of Slack webooks to channels. - Each entry in the list has four string fields: - channel,- phalanx_env,- phalanx_host, and- webhook_url.
- For each channel you want to send alerts to (in the LSSTC slack, they start with - #status-), configure as many of these as you can.- For a phalanx environment, you should have all four fields. For instance, at the time of writing, channel - #status-usdf-rsp-devhas- phalanx_env- usdfdev,- phalanx_host- usdf-rsp-dev.slac.stanford.edu, and a- webhook_urlfound in the- Monitoring (InfluxDBv2)Slack application in the- LSSTCworkspace).
- It is possible that there are status channels you want to use that are not tied to a specific Phalanx environment (e.g. old Roundtable at - #status-roundtable) or which are not specific to a unique instance (e.g.- #status-square-dev); in that case, the inapplicable values should be set to the empty string.
 
- Once you have the YAML written, base64-encode it, and store the resulting string as the value of - webhooks.yaml.
 
- Create dummy entries for - influx-alert-tokenand- telegraf-token. These will get overwritten after installation, so their values don’t matter. The telegraf token is not actually used by the- monitoringapplication, but having it stored safely will make configuring the monitoring agents much easier.
- Audit the secrets: Audit secrets for an environment. If you are only missing the - monitoringsecrets, you’re doing fine. If anything else is incorrect, fix that first before coming back here.
- Sync the secrets: Sync secrets for an environment. 
Add the OIDC Secrets to Gafaelfawr¶
- Now you’ll need the values for - GENERIC_CLIENT_IDand- GENERIC_CLIENT_SECRET.- GENERIC_CLIENT_IDis- chronograf-client-idunless you’ve done a per-environment override.
- These can be found with - vault kv get secret/phalanx/<environment>/monitoring. They are not in 1Password because they are randomly generated when secrets are synced.
- Add these values to the JSON document inside the - oidc-server-secretsentry of the- gafaelfawrsecret, replacing an old entry if needed.- idwill be the value of- GENERIC_CLIENT_ID.
- return_uriwill be- https://<environment FQDN>/chronograf/oauth/OIDC/callback.
- secretwill be the value of- GENERIC_CLIENT_SECRET.
 
- Restart Gafaelfawr to pick up the changed secrets.