-
Notifications
You must be signed in to change notification settings - Fork 1
Creating a release
For creating a release, we have the following steps.
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.
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.
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.
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.
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.
You may not want to release latest image to acceptance/production. In that case, these files need to be manually updated:
- Get the desired image tag from GitHub and update the deployment file (include the date of merging in a comment)
- Create GitHub release (You can generate release notes here)
- Update release notes with the release notes generated by 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.
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.
Run a short smoke test over DiSSCo to check everything is up and in the air.