Skip to content

Creating a release

southeo edited this page Nov 26, 2025 · 2 revisions

For creating a release, we have the following steps.

1. Pre-release checks.

First, run the release script with do-update set to false. This will generate release notes without changing the deployment files or creating GitHub releases. Compare theese notes with the notes in the release preparation document. Does everything match? Ask for clarification if needed.

2. Add new deployment files

Add any new deployment files to the correct environment folder (test, acceptance or production). New deployment files could be new deployments, but also new queues or routes. If making a release to acceptance or production, you can use the existing deployment in the test environment as a template.

3. Check if any configurations need to be updated

If we have made significant changes to the application, there is a possibility that configuration parameters have changed. These need to be updated manually. Any breaking changes should have been added to the release document on this wiki. However, check with the team members if they made any configuration changes to an application.

4. Add database changes

If we have made database changes, we need to add these to the flyway configuration. In the this folder you can find the files needed to make the change. As these are based on a ArgoCD prehook, they will be enforced before any deployment is being made.

5. Run Release script

In the deployment repository, there is a release script. This script will go over all application and update the tag to the latest version. It will also compose release notes based on the titles of the PR's. Finally, it will create these releases on GitHub. See the script's readme for more information. Note: if not releasing to the latest version of the application, you will need to do exclude these services from the script and update them manually.

6. Manually address partially updated applications

You may not want to release latest image to acceptance/production. In that case, these files need to be manually updated:

  1. Get the desired image tag from GitHub and update the deployment file (include the date of merging in a comment)
  2. Create GitHub release (You can generate release notes here)
  3. Update release notes with the release notes generated by GitHub

7. Merge changes to GitHub.

Once all tags are updated and the release notes have been created we can commit the changes. Create a PR and merge the changes once approved. ArgoCD will detect the changes and update the deployment.

8. Check ArgoCD

We can now check ArgoCD to see if the release has been successful. (You can also manually trigger the update if it hasn't run yet). Use the following commands to access ArgoCD:

kubectl config use-context {env}  # Switch to the correct kubernetes environment 
kubectl get secret -n argocd argocd-initial-admin-secret -o json | jq -r '.data.password' | base64 -d  # Get ArgoCD password
kubectl port-forward -n=argocd services/argo-cd-argocd-server 8080:80  # Forward the argoCD application to run locally

You can then log in via https://localhost:8080/ All objects should be synced and the sync should be successful. You can also check if the pods on the cluster have been refreshed and are all up and running.

9. Smoke test DiSSCover

Run a short smoke test over DiSSCo to check everything is up and in the air.

Clone this wiki locally