Skip to content

Commit 403bed4

Browse files
committed
gh workflows
1 parent 9b7f9a6 commit 403bed4

18 files changed

+281
-82
lines changed

.github/ISSUE_TEMPLATE/kubernetes_bump.md

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -26,37 +26,32 @@ changes should be cherry-picked to all release series that will support the new
2626
* `test/*`: search for occurrences of the previous Kubernetes version
2727
* `Tiltfile`
2828
* Ensure the latest available kind version is used (including the latest images for this kind release)
29-
* Add new images in the [kind mapper.go](https://github.com/kubernetes-sigs/cluster-api/blob/0f47a19e038ee6b0d3b1e7675a62cdaf84face8c/test/infrastructure/kind/mapper.go#L79).
29+
* Add new images in the [kind mapper.go](https://github.com/kubernetes-sigs/cluster-api/blob/48ae58e51f9723ab7b9635d0e05ee54c4843707a/test/infrastructure/kind/mapper.go#L79).
3030
* See the [kind releases page](https://github.com/kubernetes-sigs/kind/releases) for the list of released images.
31-
* Set new default image for the [test framework](https://github.com/kubernetes-sigs/cluster-api/blob/0f47a19e038ee6b0d3b1e7675a62cdaf84face8c/test/framework/bootstrap/kind_provider.go#L40)
32-
* If code changes are required for CAPD to incorporate the new Kind version, update [kind latestMode](https://github.com/kubernetes-sigs/cluster-api/blob/0f47a19e038ee6b0d3b1e7675a62cdaf84face8c/test/infrastructure/kind/mapper.go#L66)
33-
* Prior art: #10094
31+
* Set new default image for the [test framework](https://github.com/kubernetes-sigs/cluster-api/blob/48ae58e51f9723ab7b9635d0e05ee54c4843707a/test/framework/bootstrap/kind_provider.go#L40)
3432
* Verify the quickstart manually
3533
* Bump `InitWithKubernetesVersion` and `WorkloadKubernetesVersion` in `clusterctl_upgrade_test.go`
3634
* Note: Only bump for Cluster API versions that will support the new Kubernetes release.
3735
* Prior art: #9160
3836
* [ ] Ensure the jobs are adjusted to provide test coverage according to our [support policy](https://cluster-api.sigs.k8s.io/reference/versions.html#supported-kubernetes-versions):
39-
40-
* At the `.versions` section in the `cluster-api-prowjob-gen.yaml` file in [test-infra](https://github.com/kubernetes/test-infra/blob/master/config/jobs/kubernetes-sigs/cluster-api/):
41-
* Add a new entry for the new Kubernetes version
42-
* Adjust the released Kubernetes's version entry to refer `stable-1.<minor>` instead of `ci/latest-1.<minor>`
43-
* Check and update the versions for the keys `etcd` and `coreDNS` if necessary:
44-
* For etcd, see the `DefaultEtcdVersion` kubeadm constant: [e.g. for v1.28.0](https://github.com/kubernetes/kubernetes/blob/v1.28.0/cmd/kubeadm/app/constants/constants.go#L308)
45-
* For coredns, see the `CoreDNSVersion` kubeadm constant:[e.g. for v1.28.0](https://github.com/kubernetes/kubernetes/blob/v1.28.0/cmd/kubeadm/app/constants/constants.go#L344)
46-
* For the `.branches.main` section in the `cluster-api-prowjob-gen.yaml` file in [test-infra](https://github.com/kubernetes/test-infra/blob/master/config/jobs/kubernetes-sigs/cluster-api/):
47-
* For the `.upgrades` section:
48-
* Drop the oldest upgrade
49-
* Add a new upgrade entry from the previous to the new Kubernetes version
50-
* Bump the version set at `.kubernetesVersionManagement` to the new minimum supported management cluster version (This is the image version available as kind image).
51-
* Bump the version set at `.kubebuilderEnvtestKubernetesVersion` to the new minimum supported management cluster version.
52-
* Run `make generate-test-infra-prowjobs` to generate the resulting prowjob configuration:
53-
54-
```sh
55-
TEST_INFRA_DIR=../../k8s.io/test-infra make generate-test-infra-prowjobs
56-
```
57-
37+
* For the main branch:
38+
* periodics:
39+
* Drop the oldest upgrade job as the oldest Kubernetes minor version is now out of support.
40+
* Add new upgrade job which upgrades from the previous to the new Kubernetes version.
41+
* periodics & presubmits:
42+
* Bump `KUBERNETES_VERSION_MANAGEMENT` of the `e2e-mink8s` job to the new minimum supported management cluster version.
43+
* Bump `KUBEBUILDER_ENVTEST_KUBERNETES_VERSION` of the `test-mink8s` jobs to the new minimum supported management cluster version.
44+
* Adjust the `-latest` upgrade job to upgrade from the new Kubernetes to the next Kubernetes version.
45+
* For the release branch of the latest supported Cluster API minor release:
46+
* periodics & presubmits:
47+
* Adust the `-latest` upgrade jobs to upgrade to the new Kubernetes version instead of latest.
48+
* Note: Also check if `ETCD_VERSION_UPGRADE_TO` or `COREDNS_VERSION_UPGRADE_TO` needs to change for the upgrades jobs to the new or next Kubernetes version.
49+
* For etcd, see the `DefaultEtcdVersion` kubeadm constant: [e.g. for v1.28.0](https://github.com/kubernetes/kubernetes/blob/v1.28.0/cmd/kubeadm/app/constants/constants.go#L308)
50+
* For coredns, see the `CoreDNSVersion` kubeadm constant:[e.g. for v1.28.0](https://github.com/kubernetes/kubernetes/blob/v1.28.0/cmd/kubeadm/app/constants/constants.go#L344)
51+
* Prior art: https://github.com/kubernetes/test-infra/pull/30347 https://github.com/kubernetes/test-infra/pull/30406 https://github.com/kubernetes/test-infra/pull/30407
5852
* [ ] Update book:
5953
* Update supported versions in `versions.md`
54+
* Update job documentation in `jobs.md`
6055
* Prior art: #9161
6156
* [ ] Issues specific to the Kubernetes minor release:
6257
* Sometimes there are adjustments that we have to make in Cluster API to be able to support
@@ -70,7 +65,7 @@ need them in older releases as they are not necessary to manage workload cluster
7065
run the Cluster API controllers on the new Kubernetes version.
7166

7267
* [ ] Ensure there is a new controller-runtime minor release which uses the new Kubernetes Go dependencies.
73-
* [ ] Update our Prow jobs for the `main` branch to use the correct `kubekins-e2e` image via the configuration file and by running `make generate-test-infra-prowjobs`.
68+
* [ ] Update our Prow jobs for the `main` branch to use the correct `kubekins-e2e` image
7469
* It is recommended to have one PR for presubmit and one for periodic jobs to reduce the risk of breaking the periodic jobs.
7570
* Prior art: presubmit jobs: https://github.com/kubernetes/test-infra/pull/27311
7671
* Prior art: periodic jobs: https://github.com/kubernetes/test-infra/pull/27326

.github/ISSUE_TEMPLATE/release_tracking.md

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,14 @@ Please see the corresponding section in [release-tasks.md](https://github.com/ku
1414

1515
**Notes**:
1616
* Weeks are only specified to give some orientation.
17-
* The following is based on the v1.6 release cycle. Modify according to the tracked release cycle.
17+
* The following is based on the v1.4 release cycle. Modify according to the tracked release cycle.
18+
19+
Week -3 to 1:
20+
* [ ] [Release Lead] [Set a tentative release date for the minor release](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#set-a-tentative-release-date-for-the-minor-release)
21+
* [ ] [Release Lead] [Assemble release team](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#assemble-release-team)
1822

1923
Week 1:
2024
* [ ] [Release Lead] [Finalize release schedule and team](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#finalize-release-schedule-and-team)
21-
* [ ] [Release Lead] [Add/remove release team members](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#addremove-release-team-members)
2225
* [ ] [Release Lead] [Prepare main branch for development of the new release](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#prepare-main-branch-for-development-of-the-new-release)
2326
* [ ] [Communications Manager] [Add docs to collect release notes for users and migration notes for provider implementers](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#add-docs-to-collect-release-notes-for-users-and-migration-notes-for-provider-implementers)
2427
* [ ] [Communications Manager] [Update supported versions](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#update-supported-versions)
@@ -27,42 +30,39 @@ Week 1 to 4:
2730
* [ ] [Release Lead] [Track] [Remove previously deprecated code](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#track-remove-previously-deprecated-code)
2831

2932
Week 6:
30-
* [ ] [Release Lead] [Cut the v1.5.1 & v1.4.6 releases](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#repeatedly-cut-a-release)
33+
* [ ] [Release Lead] [Cut the v1.3.1 release](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#repeatedly-cut-a-release)
3134

3235
Week 9:
33-
* [ ] [Release Lead] [Cut the v1.5.2 & v1.4.7 releases](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#repeatedly-cut-a-release)
36+
* [ ] [Release Lead] [Cut the v1.3.2 release](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#repeatedly-cut-a-release)
3437

3538
Week 11 to 12:
3639
* [ ] [Release Lead] [Track] [Bump dependencies](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#track-bump-dependencies)
3740

3841
Week 13:
39-
* [ ] [Release Lead] [Cut the v1.6.0-beta.0 release](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#repeatedly-cut-a-release)
40-
* [ ] [Release Lead] [Cut the v1.5.3 & v1.4.8 releases](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#repeatedly-cut-a-release)
42+
* [ ] [Release Lead] [Cut the v1.4.0-beta.0 release](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#repeatedly-cut-a-release)
43+
* [ ] [Release Lead] [Cut the v1.3.3 release](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#repeatedly-cut-a-release)
4144
* [ ] [Release Lead] [Create a new GitHub milestone for the next release](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#create-a-new-github-milestone-for-the-next-release)
4245
* [ ] [Communications Manager] [Communicate beta to providers](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#communicate-beta-to-providers)
4346

4447
Week 14:
45-
* [ ] [Release Lead] [Cut the v1.6.0-beta.1 release](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#repeatedly-cut-a-release)
46-
* [ ] [Release Lead] [Set a tentative release date for the next minor release](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#set-a-tentative-release-date-for-the-next-minor-release)
47-
* [ ] [Release Lead] [Assemble next release team](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#assemble-next-release-team)
48+
* [ ] [Release Lead] [Cut the v1.4.0-beta.1 release](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#repeatedly-cut-a-release)
4849
* [ ] [Release Lead] Select release lead for the next release cycle
4950

5051
Week 15:
52+
* [ ] [Release Lead] [Create the release-1.4 release branch](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#create-a-release-branch)
53+
* [ ] [Release Lead] [Cut the v1.4.0-rc.0 release](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#repeatedly-cut-a-release)
54+
* [ ] [CI Manager] [Setup jobs and dashboards for the release-1.4 release branch](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#setup-jobs-and-dashboards-for-a-new-release-branch)
55+
* [ ] [Communications Manager] [Ensure the book for the new release is available](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#ensure-the-book-for-the-new-release-is-available)
5156

52-
* KubeCon idle week
57+
Week 15 to 17:
58+
* [ ] [Communications Manager] [Polish release notes](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#polish-release-notes)
5359

5460
Week 16:
55-
* [ ] [Release Lead] [Cut the v1.6.0-rc.0 release](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#repeatedly-cut-a-release)
56-
* [ ] [Release Lead] [Update milestone applier and GitHub Actions](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#update-milestone-applier-and-github-actions)
57-
* [ ] [CI Manager] [Setup jobs and dashboards for the release-1.6 release branch](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#setup-jobs-and-dashboards-for-a-new-release-branch)
58-
* [ ] [Communications Manager] [Ensure the book for the new release is available](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#ensure-the-book-for-the-new-release-is-available)
61+
* [ ] [Release Lead] [Cut the v1.4.0-rc.1 release](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#repeatedly-cut-a-release)
5962

6063
Week 17:
61-
* [ ] [Release Lead] [Cut the v1.6.0-rc.1 release](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#repeatedly-cut-a-release)
62-
63-
Week 18:
64-
* [ ] [Release Lead] [Cut the v1.6.0 release](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#repeatedly-cut-a-release)
65-
* [ ] [Release Lead] [Cut the v1.5.4 & v1.4.9 releases](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#repeatedly-cut-a-release)
64+
* [ ] [Release Lead] [Cut the v1.4.0 release](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#repeatedly-cut-a-release)
65+
* [ ] [Release Lead] [Cut the v1.3.4 release](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#repeatedly-cut-a-release)
6666
* [ ] [Release Lead] Organize release retrospective
6767
* [ ] [Communications Manager] [Change production branch in Netlify to the new release branch](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#change-production-branch-in-netlify-to-the-new-release-branch)
6868
* [ ] [Communications Manager] [Update clusterctl links in the quickstart](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#update-clusterctl-links-in-the-quickstart)
@@ -81,4 +81,3 @@ Continuously:
8181
If and when necessary:
8282
* [ ] [Release Lead] [Track] [Bump the Cluster API apiVersion](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#optional-track-bump-the-cluster-api-apiversion)
8383
* [ ] [Release Lead] [Track] [Bump the Kubernetes version](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#optional-track-bump-the-kubernetes-version)
84-
* [ ] [Release Lead] [Track Release and Improvement tasks](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/release/release-tasks.md#optional-track-release-and-improvement-tasks)

.github/dependabot.yaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@ updates:
3333
- dependency-name: "go.etcd.io/*"
3434
update-types: [ "version-update:semver-major", "version-update:semver-minor" ]
3535
- dependency-name: "google.golang.org/grpc"
36-
update-types: [ "version-update:semver-major", "version-update:semver-minor" ]
37-
# Ignore kind as its upgraded manually.
38-
- dependency-name: "sigs.k8s.io/kind"
3936
update-types: [ "version-update:semver-major", "version-update:semver-minor" ]
4037
# Bumping the kustomize API independently can break compatibility with client-go as they share k8s.io/kube-openapi as a dependency.
4138
- dependency-name: "sigs.k8s.io/kustomize/api"

.github/workflows/dependabot.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: dependabot
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- dependabot/**
7+
push:
8+
branches:
9+
- dependabot/**
10+
workflow_dispatch:
11+
12+
permissions:
13+
contents: write # Allow to update the PR.
14+
15+
jobs:
16+
build:
17+
name: Build
18+
runs-on: ubuntu-latest
19+
steps:
20+
- name: Check out code into the Go module directory
21+
uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3.5.0
22+
- name: Calculate go version
23+
id: vars
24+
run: echo "go_version=$(make go-version)" >> $GITHUB_OUTPUT
25+
- name: Set up Go
26+
uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568 # tag=v3.5.0
27+
with:
28+
go-version: ${{ steps.vars.outputs.go_version }}
29+
- uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # tag=v3.3.1
30+
name: Restore go cache
31+
with:
32+
path: |
33+
~/.cache/go-build
34+
~/go/pkg/mod
35+
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
36+
restore-keys: |
37+
${{ runner.os }}-go-
38+
- name: Update all modules
39+
run: make generate-modules
40+
- name: Update generated code
41+
run: make generate
42+
- uses: EndBug/add-and-commit@61a88be553afe4206585b31aa72387c64295d08b # tag=v9.1.1
43+
name: Commit changes
44+
with:
45+
author_name: dependabot[bot]
46+
author_email: 49699333+dependabot[bot]@users.noreply.github.com
47+
default_author: github_actor
48+
message: 'Update generated code'

.github/workflows/golangci-lint.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: golangci-lint
2+
3+
on:
4+
pull_request:
5+
types: [opened, edited, synchronize, reopened]
6+
7+
# Remove all permissions from GITHUB_TOKEN except metadata.
8+
permissions: {}
9+
10+
jobs:
11+
golangci:
12+
name: lint
13+
runs-on: ubuntu-latest
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
working-directory:
18+
- ""
19+
- test
20+
- hack/tools
21+
steps:
22+
- uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3.5.0
23+
- name: Calculate go version
24+
id: vars
25+
run: echo "go_version=$(make go-version)" >> $GITHUB_OUTPUT
26+
- name: Set up Go
27+
uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568 # tag=v3.5.0
28+
with:
29+
go-version: ${{ steps.vars.outputs.go_version }}
30+
- name: golangci-lint
31+
uses: golangci/golangci-lint-action@08e2f20817b15149a52b5b3ebe7de50aff2ba8c5 # tag=v3.4.0
32+
with:
33+
version: v1.51.1
34+
working-directory: ${{matrix.working-directory}}

.github/workflows/lint-docs-pr.yaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Check PR Markdown links
2+
3+
on:
4+
pull_request:
5+
types: [opened, edited, synchronize, reopened]
6+
paths:
7+
- '**.md'
8+
9+
# Remove all permissions from GITHUB_TOKEN except metadata.
10+
permissions: {}
11+
12+
jobs:
13+
markdown-link-check:
14+
name: Broken Links
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3.5.0
18+
- uses: gaurav-nelson/github-action-markdown-link-check@5c5dfc0ac2e225883c0e5f03a85311ec2830d368 # tag=v1
19+
with:
20+
use-quiet-mode: 'yes'
21+
config-file: .markdownlinkcheck.json
22+
check-modified-files-only: 'yes'
23+
base-branch: release-1.6
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Weekly check all Markdown links
2+
3+
on:
4+
schedule:
5+
# Cron for every Monday at 12:00 UTC.
6+
- cron: "0 12 * * 1"
7+
8+
# Remove all permissions from GITHUB_TOKEN except metadata.
9+
permissions: {}
10+
11+
jobs:
12+
markdown-link-check:
13+
name: Broken Links
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
branch: [ main, release-1.6 ]
18+
runs-on: ubuntu-latest
19+
steps:
20+
- uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # tag=v3.5.0
21+
with:
22+
ref: ${{ matrix.branch }}
23+
- uses: gaurav-nelson/github-action-markdown-link-check@5c5dfc0ac2e225883c0e5f03a85311ec2830d368 # tag=v1
24+
with:
25+
use-quiet-mode: 'yes'
26+
config-file: .markdownlinkcheck.json

0 commit comments

Comments
 (0)