Skip to content

Commit daab543

Browse files
authored
Merge pull request #25 from giantswarm/giantswarm-stuff-1-7
Giantswarm stuff 1 7
2 parents b13114e + 85e9e6f commit daab543

20 files changed

+462
-128
lines changed

.circleci/config.yml

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
version: 2.1
2+
3+
4+
jobs:
5+
build:
6+
machine:
7+
image: "ubuntu-2204:2022.10.2"
8+
environment:
9+
ALL_ARCH: "amd64 arm64"
10+
REGISTRY_AZURE: gsoci.azurecr.io/giantswarm
11+
REGISTRY_QUAY: quay.io/giantswarm
12+
REGISTRY_CHINA: giantswarm-registry.cn-shanghai.cr.aliyuncs.com/giantswarm
13+
14+
# We don't build all components, e.g. not CAPD or clusterctl
15+
ALL_DOCKER_BUILD: "core kubeadm-bootstrap kubeadm-control-plane"
16+
resource_class: xlarge # building several Docker images for multiple architectures is otherwise slow
17+
steps:
18+
- checkout
19+
20+
- run:
21+
name: Build the CAPI docker images
22+
command: |
23+
# Non-interactive logs (much shorter)
24+
export DOCKER_BUILDKIT=1
25+
export BUILDKIT_PROGRESS=plain
26+
27+
for registry in $REGISTRY_AZURE $REGISTRY_QUAY $REGISTRY_CHINA; do
28+
make docker-build-all ALL_ARCH="$ALL_ARCH" ALL_DOCKER_BUILD="$ALL_DOCKER_BUILD" TAG=$CIRCLE_SHA1 REGISTRY=$registry
29+
30+
if [ -n "$CIRCLE_TAG" ]; then
31+
echo "Building tag $CIRCLE_TAG"
32+
make docker-build-all ALL_ARCH="$ALL_ARCH" ALL_DOCKER_BUILD="$ALL_DOCKER_BUILD" TAG="$CIRCLE_TAG" REGISTRY=$registry
33+
fi
34+
done
35+
36+
docker images
37+
38+
- run:
39+
name: Push to Azure
40+
command: |
41+
docker login --username $ACR_GSOCI_USERNAME --password $ACR_GSOCI_PASSWORD "${REGISTRY_AZURE%%/*}"
42+
43+
make docker-push-all ALL_ARCH="$ALL_ARCH" ALL_DOCKER_BUILD="$ALL_DOCKER_BUILD" TAG=$CIRCLE_SHA1 REGISTRY=$REGISTRY_AZURE
44+
45+
if [ -n "$CIRCLE_TAG" ]; then
46+
echo "Pushing tag $CIRCLE_TAG"
47+
make docker-push-all ALL_ARCH="$ALL_ARCH" ALL_DOCKER_BUILD="$ALL_DOCKER_BUILD" TAG="$CIRCLE_TAG" REGISTRY=$REGISTRY_AZURE
48+
fi
49+
50+
- run:
51+
name: Push to quay
52+
command: |
53+
docker login --username $QUAY_USERNAME --password $QUAY_PASSWORD quay.io
54+
55+
make docker-push-all ALL_ARCH="$ALL_ARCH" ALL_DOCKER_BUILD="$ALL_DOCKER_BUILD" TAG=$CIRCLE_SHA1 REGISTRY=$REGISTRY_QUAY
56+
57+
if [ -n "$CIRCLE_TAG" ]; then
58+
echo "Pushing tag $CIRCLE_TAG"
59+
make docker-push-all ALL_ARCH="$ALL_ARCH" ALL_DOCKER_BUILD="$ALL_DOCKER_BUILD" TAG="$CIRCLE_TAG" REGISTRY=$REGISTRY_QUAY
60+
fi
61+
62+
- run:
63+
name: Push to aliyun
64+
command: |
65+
for n in $(seq 1 5); do
66+
(
67+
set -eu
68+
docker login --username $ALIYUN_USERNAME --password $ALIYUN_PASSWORD giantswarm-registry.cn-shanghai.cr.aliyuncs.com
69+
70+
make docker-push-all ALL_ARCH="$ALL_ARCH" ALL_DOCKER_BUILD="$ALL_DOCKER_BUILD" TAG=$CIRCLE_SHA1 REGISTRY=$REGISTRY_CHINA
71+
72+
if [ -n "${CIRCLE_TAG:-}" ]; then
73+
echo "Pushing tag $CIRCLE_TAG"
74+
make docker-push-all ALL_ARCH="$ALL_ARCH" ALL_DOCKER_BUILD="$ALL_DOCKER_BUILD" TAG="$CIRCLE_TAG" REGISTRY=$REGISTRY_CHINA
75+
fi
76+
) || { echo "Failed attempt ${n}"; sleep 30; continue; }
77+
78+
echo "Succeeded in attempt ${n}"
79+
exit 0
80+
done
81+
82+
exit 1
83+
84+
workflows:
85+
version: 2
86+
build_and_update:
87+
jobs:
88+
- build:
89+
context:
90+
- architect
91+
filters:
92+
tags:
93+
only: /^v.*/

.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"

0 commit comments

Comments
 (0)