Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KEP 94: Lifecycle Toolkit - Table Promotion Flow #99

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions text/0099-table-promotion-flow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Table Promotion Flow

**State: DRAFTING**

Allow starting deployment flows from previous artifacts which are perhaps multiple iterations previous.

## Motivation

Keptn sits in a very interesting place in the CI/CD CNCF space, where it helps by gluing many tools together
which otherwise may have a gap. One of these gaps is visibility on environment management and deployment management
with defined sources of artifacts and defined possible environments.

## Explanation

This table would be created by defining artifact sources, sources of deployment information (ex. ArgoCD), and yaml which
defines the possible environments and how promotion happens. Maybe this could be in Shipyard

A UI ties all this together, with a table where rows are artifacts (or sets of artifacts), and columns are environments.
You should be able to click a button to trigger either a rollback to any previous artifact, or if quality gates are green
then promote forward into a downstream environment.

### Prerequisites / Proposed solution

* Source of artifacts with query to represent which ones are relevant for this project
* Sources of deployments with information to relate with the artifacts to identify what is currently deployed in what
environment

## Open questions/Implementation details

* How to store the deployment information statelessly? ArgoCD can be queried, but this is a big assumption that ArgoCD
is being used
* Deployment needs to be done indirectly, ex. by triggering an automation tool which modifies a GitOps repo. This somehow
needs to be setup or else the functionality will violate GitOps