Add a new application to Phalanx#

This page provides the steps for integrating an application with Phalanx by adding the application’s Helm chart. This is the last step of adding a new application to Phalanx and should be done after you have written the Helm chart and defined the secrets it needs.

Some of the integration will be done for you by the phalanx application create command, but you will need to make a few adjustments.

For background on building an application, see the Build documentation.

Add documentation#

Every new application added to Phalanx must have a corresponding folder in the docs/applications directory containing at least an index.rst file and a values.md file.

Basic versions of these files were created by the phalanx application create command (see Start from a template). However, you will need to edit index.rst to add a longer description of the application at the top. This should explain the purpose of the application and which environments should consider deploying it.

The values.md file generally does not need to be modified.

Finally, add the new application to docs/applications/index.rst in the appropriate section. Please maintain the alphabetical sorting of each section.

Configure other Phalanx applications#

If the application needs to listen on hostnames other than the normal cluster-wide hostname, you will need to configure cert-manager so that it can generate a TLS certificate for that hostname. See Add TLS certificates for a new hostname for more details.

If your application exposes Prometheus endpoints, you will want to configure these in the telegraf application’s prometheus_config.

Enable the application for some environment#

Finally, you need to tell Argo CD to deploy your application in some environments.

  1. For each environment in which your application will run, create a values-environment.yaml file in your application’s directory. This should hold only the customization specific to that Rubin Science Platform environment. Any shared configuration should go into the defaults of your chart (values.yaml).

    If there is no environment-specific configuration, you must still create this file. In this case, leave it empty.

  2. Enable your application in one of the values-environment.yaml files in environments. Do this by adding a key for your application under applications (in alphabetical order) with a value of true. This environment will be the first place your application is deployed.

    You almost certainly want to start in a development or integration environment and enable your new application in production environments only after it has been smoke-tested in less critical environments.