|
| 1 | +--- |
| 2 | +name: operator-versioning |
| 3 | +description: Map between Calico/enterprise versions and tigera/operator release branches. Use this skill whenever you need to determine which operator branch corresponds to a Calico or enterprise release (e.g., "which operator branch is Calico v3.30?"), or the reverse (e.g., "what Calico version does release-v1.40 ship?"). Also use this skill whenever cherry-picking to operator release branches, creating cherry-pick PRs targeting release branches, or any task that requires knowing the operator↔Calico version relationship. Trigger even if the user doesn't explicitly ask about versioning — if the task involves targeting an operator release branch by Calico version, use this skill to find the right branch. |
| 4 | +--- |
| 5 | + |
| 6 | +# Operator Version Mapping |
| 7 | + |
| 8 | +The tigera/operator repo uses its own versioning (release-v1.X) that does NOT have a simple 1:1 offset with Calico versions. Some operator branches correspond to Calico OSS releases, others to Calico Enterprise releases, and the mapping changes over time. Never guess the mapping — always look it up. |
| 9 | + |
| 10 | +## Calico version → operator branch |
| 11 | + |
| 12 | +The authoritative source is the `OPERATOR_BRANCH` variable in `metadata.mk`: |
| 13 | + |
| 14 | +1. **Calico OSS (projectcalico/calico)**: check `metadata.mk` on the `release-vX.Y` branch. |
| 15 | + ```bash |
| 16 | + git show origin/release-vX.Y:metadata.mk | grep OPERATOR_BRANCH |
| 17 | + ``` |
| 18 | + |
| 19 | +2. **Calico Enterprise (tigera/calico-private)**: check `metadata.mk` on the appropriate `release-calient-*` branch. The branch naming convention is `release-calient-vX.Y-Z` where `-Z` is the EP (engineering preview) number (e.g., `release-calient-v3.23-1` = v3.23 EP1). List matching branches to find the right one: |
| 20 | + ```bash |
| 21 | + git branch -r | grep "release-calient-vX.Y" |
| 22 | + git show origin/release-calient-vX.Y-Z:metadata.mk | grep OPERATOR_BRANCH |
| 23 | + ``` |
| 24 | + |
| 25 | +3. **Confirm** by checking `config/calico_versions.yml` or `config/enterprise_versions.yml` on the operator branch (in tigera/operator) — the `title` field shows the Calico/enterprise version that branch ships: |
| 26 | + ```bash |
| 27 | + git show origin/release-v1.XX:config/calico_versions.yml | head -3 |
| 28 | + git show origin/release-v1.XX:config/enterprise_versions.yml | head -3 |
| 29 | + ``` |
| 30 | + |
| 31 | +If you don't have the calico or calico-private repo locally, you can work backwards from the operator side: check `config/calico_versions.yml` on several candidate operator branches until you find the one whose `title` matches the target Calico version. |
| 32 | + |
| 33 | +## Operator branch → Calico version |
| 34 | + |
| 35 | +Check the version files on the operator branch directly: |
| 36 | + |
| 37 | +```bash |
| 38 | +git show origin/release-v1.XX:config/calico_versions.yml | head -3 |
| 39 | +git show origin/release-v1.XX:config/enterprise_versions.yml | head -3 |
| 40 | +``` |
| 41 | + |
| 42 | +The `title` field in each file gives the Calico OSS and enterprise versions respectively. |
| 43 | + |
| 44 | +## Important notes |
| 45 | + |
| 46 | +- Multiple operator branches can ship the same Calico OSS version (e.g., one paired with an OSS release, another with an enterprise release). The `metadata.mk` approach is definitive for a given Calico/enterprise release stream. |
| 47 | +- The GitHub releases page for tigera/operator can also help — it shows which operator versions were released from which branches and what Calico versions they include. |
0 commit comments