Lifecycle Management with GitOps #30
Replies: 2 comments 4 replies
-
@williamcaban wrote:
Fewer stages is better. To simply Lifecycle Management, I recommend removing Release New Version and Test stages because they:
There should be a loose coupling between CI and CD to accomplish GitOps (CD + CO). To illustrate what I mean:
Not always. For example, https://fluxcd.io/docs/guides/image-update/
Not always. For example, https://github.com/gitops-working-group/gitops-working-group/discussions/56 Thank you for the discussion. |
Beta Was this translation helpful? Give feedback.
-
I've updated the original text taking into consideration the discussions. |
Beta Was this translation helpful? Give feedback.
-
Lifecycle Management with GitOps
The intent here is to have a discussion about how the Lifecycle Management (LCM) cycle of of an operation of infrastructure, platform, evironments or applications and eventually bring it as an official document either as best practice, white paper or documentation of the patterns.
Proposed definitions for terms used in the discussion:
Discussion
For the purpose of the discussion I use the term Lifecycle Management (LCM) as series of stages:
ReleaseCommit new versionTestNote: There could be more or there could be fewer stages. That should be part of the discussion.
How does these stages map to GitOps?
ReleaseCommit New VersionThe release of aA "new version" of the infrastructure configuration, platform or application starts with aPull Request (PR)commit to the GitOps repositoryTestWhen a PR is submitted, a pipeline should be executed to do functional testing and end-to-end integration testing for infrastructure, platform and application before allowing the PR for considerationOnce the PR has been validated by pipelines, approvers must approve the change before the pipeline merge changes to the GitOps repositoryIf a change can only happen at specific time (e.g. maintenance window) or should not happen during specific time (e.g. blackout time), and the concept is not understood by the artifact being reconciled, the pipeline should not proceed with the merge until the approve time range is met.Deploy
When a PR is merged into the GitOps repository,After a commit to the GitOps repository, the GitOps controllers ~~will~ follows the continuous remediation cycles (principles 4 and 5) to apply the changes to the systemsPRcommit for it (e.g. git revert, git reset, or similar mechanisms)e.g. A rollback initiate a “Release New Version” stage commit with a previous versionOperate
Monitor & Analyze
Optimization
PRcommit with the desired modificationsPRcommit triggersathe "New version"“Release New Version”stageand pipelineBeta Was this translation helpful? Give feedback.
All reactions