-
Notifications
You must be signed in to change notification settings - Fork 4
Description
Upgrade application to the new release.
For in-house or upstream applications, when a new release addresses bug fixes, enhances security, or introduces new features essential to our use cases, it becomes crucial to perform application upgrades periodically.
In this scenario, let's consider the application as
cert-managerand the new version as1.14.0.
The following procedure outlines the steps to upgrade the respective application:
Create an EPIC with the below task list. [ could also convert the tasks in issues ( optional ) ]
- Upgrade Cert Manager in Dev
- Upgrade Cert Manager in Stage
- Upgrade Cert Manager in Prod
Upgrade Cert Manager in Dev
INFO: refer to comment
-
Step 1. Open a PR by modifying the
chartVersionkey in thegit-generator-overides.jsonfile in the/argocd/envs/dev/cert-managerdirectory. -
Step2. Merge the PR once reviewed. Once merged as
auto-syncis disabled ArgoCD will display a diff between the current and the incoming changes on the console. If satisfied with the diff the application can be synced and the upgrade will be successful.
Generally this is the point where we would like to verify if nothing is broken and everything is running as expected.
Upgrade Cert Manager in Stage
- Once satisfied with the testing or expectations from the dev environment upgrade safely to proceed and repeat steps
1and2with another PR for/argocd/envs/stage/cert-manager, which could be on the same day or another day depending on the waiting period before promoting the changes to staging env.
Upgrade Cert Manager in Stage
- Similar to staging, use the correct path for
git-generator-overides.jsonfile.
Special Notes
-
We might also utilise argo-cd-image-updater for such tasks.
-
Could be also a common maintenance window for infra apps or service apps to reduce no of PRs and waiting time. ( weekly/monthly maintenance windows )
-
Usually, the infra applications
[velero, cert-manager]and service applications[end user client-facing apps]are managed by different teams, hence individual teams can manage this on their own time and need basis.