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 done the other steps in Basics.

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.

Warning

Although Phalanx uses Argo CD to manage applications, do not use the Argo CD command-line client to add new applications to a Phalanx environment. All Phalanx applications are managed inside Git and created through the Phalanx tooling. Applications created by the Argo CD command-line client will not be properly managed by Phalanx.

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 Create new Helm chart from 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.

Add the new application to the appropriate docs/applications/project.rst file, where project is the Argo CD project of your application (the value that you passed to --project when creating the application originally). Please maintain the alphabetical sorting of the applications.

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.

Next steps