Skip to content

Commit

Permalink
Add ADR for new KDM branching strategy
Browse files Browse the repository at this point in the history
Signed-off-by: rancher-max <[email protected]>
  • Loading branch information
rancher-max committed Sep 14, 2023
1 parent 7466261 commit 197de72
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions docs/adrs/006-kdm-strategy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# 6. KDM Branching Strategy for RKE2

Date: 2023-09-14

## Status

New

## Context

Rancher Manager uses [KDM](https://github.com/rancher/kontainer-driver-metadata/) for its integration of RKE2. This manages the following behaviors for each RKE2 version:
- Minimum Rancher Manager version
- Maximum Rancher Manager version
- Default version when provisioning via Rancher Manager
- Server Args in RKE2 version
- Agent Args in RKE2 version
- Chart versions in RKE2 version
- Specific Rancher Manager features, such as secrets encryption

Changes for RKE2 are made in the `channels-rke2.yaml` file, and then `go generate` is run to update the `data.json` file with these changes. The `data.json` file is the only file Rancher Manager itself uses.

When a change goes into the `release-x.y` branch of KDM, that is considered production and becomes live for all users of Rancher Manager. The current branching strategy waits for the Rancher Manager team to set a specific development branch in KDM to make PRs and merges against so that the RKE2 team can validate its integration with Rancher Manager. The Rancher Manager team also makes changes in that branch of KDM that they want to release by a certain date, often to enable the latest Kubernetes patch versions for RKE1.

## Decision

To enable a "release-when-ready" approach in KDM, we will have specific branches dedicated to RKE2 in KDM. This allows the Rancher Manager team to release either new RKE1 versions or new RKE2 versions at separate times. It also reduces the cross-team impact of KDM releases as each team will only have their own branches to manage.

## Consequences

When releasing KDM, a new `go generate` might have to be run to ensure data is not lost from the `data.json` file, depending on how Github does with merges on this file.

0 comments on commit 197de72

Please sign in to comment.