Deploying to production#

The production config server is deployed into argus using ArgoCD, you can see this deployment here.

To update this:

  1. Create a new release on github. Ensuring semantic versioning and that the release notes are sensible.

  2. Ensure the new container and helm chart have been published

  3. Clone the services-repo locally

  4. Update the services/daq-config-server/Chart.yaml to have the new version numbers. Including changing the chart version as specified in the comment in the file.

  5. Update the Chart.lock by running:

    cd services/daq-config-server/
    module load helm
    helm dependency update . 
    

    For an example of this and the previous step see here

  6. Merge this as a MR (you will need approval from a DAQ team lead)

  7. Ensure the version in argoCD updates. This should be automatic and take no longer than 5 mins.

Deploying to a beamline cluster#

The config server can also be deployed to beamline clusters.

To do this:

  1. Request a new ingress from the cloud team from this page. For example, for i03 the request would be

  • Namespace Name: i03-beamline

  • Ingress Names: i03-daq-config.diamond.ac.uk

  1. In the {beamline}-services repo on GitLab, create a new folder inside the services folder called {beamline}-daq-config-server/. Create a Chart.yaml and values.yaml here. See here for an example in i03-services. Make sure the ingress section in values.yaml matches the ingress information you requested in step 1.

  2. Ensure the securityContext section is correct for your beamline. Running id k8s-ixx-beamline in a terminal will give you the correct user ID and group ID for your beamline.

  3. In the {beamline}-deployment repo on GitLab, update apps/values.yaml to include the new config server app by adding the service name below the other services.

  4. Check the app is running on ArgoCD. If you don’t have access to the namespace of the beamline cluster you are deploying to, someone already with access can request to add you here.

  5. Once ArgoCD is showing the app is up and running, check you can retrieve config from the server by visiting the ingress url in a browser with /docs to see the interactive API. You should be able to use the Get Configuration form to retrieve a config file. For example, here’s the i03 site.