Skip to content

Commit 62c73e7

Browse files
Merge pull request #352 from shiftstack/sync-main
OSASINFRA-3707: ⚠️ Manual sync from release-0.12 on main ⚠️
2 parents a73ce91 + eac62e1 commit 62c73e7

File tree

22,523 files changed

+238284
-5942438
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

22,523 files changed

+238284
-5942438
lines changed

.github/dependabot.yml

Lines changed: 122 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,52 +2,154 @@
22

33
version: 2
44
updates:
5-
5+
## main branch config starts here
66
# github-actions
77
- directory: "/"
88
package-ecosystem: "github-actions"
9-
open-pull-requests-limit: 5
109
schedule:
1110
interval: "weekly"
1211
day: "monday"
12+
target-branch: main
1313
groups:
1414
all-github-actions:
1515
patterns: [ "*" ]
1616
commit-message:
17-
prefix: ":seedling: chore(deps): bump"
17+
prefix: ":seedling:"
1818
include: scope
19+
labels:
20+
- "area/dependency"
21+
- "ok-to-test"
22+
# Go directories
23+
- directories:
24+
- "/"
25+
- "/hack/tools"
26+
package-ecosystem: "gomod"
27+
schedule:
28+
interval: "weekly"
29+
day: "monday"
30+
target-branch: main
31+
groups:
32+
all-go-mod-patch-and-minor:
33+
patterns: [ "*" ]
34+
update-types: [ "patch", "minor" ]
35+
commit-message:
36+
prefix: ":seedling:"
37+
include: scope
38+
ignore:
39+
# Ignore controller-runtime major and minor bumps as its upgraded manually.
40+
- dependency-name: "sigs.k8s.io/controller-runtime"
41+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
42+
# Ignore k8s major and minor bumps and its transitives modules
43+
- dependency-name: "k8s.io/*"
44+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
45+
- dependency-name: "sigs.k8s.io/controller-tools"
46+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
47+
# We will need k8s v0.31.3 to bump structured-merge-diff to v4.4.2 (check git history for details).
48+
- dependency-name: "sigs.k8s.io/structured-merge-diff/*"
1949
labels:
2050
- "area/dependency"
2151
- "ok-to-test"
22-
52+
## main branch config ends here
53+
## release-0.12 branch config starts here
54+
# github-actions
55+
- directory: "/"
56+
package-ecosystem: "github-actions"
57+
schedule:
58+
interval: "weekly"
59+
day: "monday"
60+
target-branch: release-0.12
61+
groups:
62+
all-github-actions:
63+
patterns: [ "*" ]
64+
commit-message:
65+
prefix: ":seedling:"
66+
include: scope
67+
labels:
68+
- "area/dependency"
69+
- "ok-to-test"
2370
# Go directories
2471
- directories:
25-
- "/"
26-
- "/hack/tools"
27-
- "/orc"
72+
- "/"
73+
- "/hack/tools"
2874
package-ecosystem: "gomod"
29-
open-pull-requests-limit: 5
3075
schedule:
3176
interval: "weekly"
3277
day: "monday"
33-
## group all dependencies with a k8s.io prefix into a single PR.
78+
target-branch: release-0.12
3479
groups:
3580
all-go-mod-patch-and-minor:
3681
patterns: [ "*" ]
3782
update-types: [ "patch", "minor" ]
3883
commit-message:
39-
prefix: ":seedling: chore(deps): bump"
84+
prefix: ":seedling:"
4085
include: scope
4186
ignore:
42-
# Ignore controller-runtime as its upgraded manually.
43-
- dependency-name: "sigs.k8s.io/controller-runtime"
44-
update-types: [ "version-update:semver-major", "version-update:semver-minor" ]
45-
# Ignore k8s and its transitives modules as they are upgraded manually together with controller-runtime.
46-
- dependency-name: "k8s.io/*"
47-
update-types: [ "version-update:semver-major", "version-update:semver-minor" ]
48-
- dependency-name: "github.com/prometheus/*"
49-
update-types: [ "version-update:semver-major", "version-update:semver-minor" ]
50-
- dependency-name: "sigs.k8s.io/cluster-api-provider-openstack"
87+
# Ignore CAPI major and minor bumps
88+
- dependency-name: "sigs.k8s.io/cluster-api*"
89+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
90+
# Ignore controller-runtime major and minor bumps as its upgraded manually.
91+
- dependency-name: "sigs.k8s.io/controller-runtime"
92+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
93+
# Ignore k8s major and minor bumps and its transitives modules
94+
- dependency-name: "k8s.io/*"
95+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
96+
- dependency-name: "sigs.k8s.io/controller-tools"
97+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
98+
# We will need k8s v0.31.3 to bump structured-merge-diff to v4.4.2 (check git history for details).
99+
- dependency-name: "sigs.k8s.io/structured-merge-diff/*"
51100
labels:
52101
- "area/dependency"
53-
- "ok-to-test"
102+
- "ok-to-test"
103+
## release-0.12 branch config ends here
104+
## release-0.11 branch config starts here
105+
# github-actions
106+
- directory: "/"
107+
package-ecosystem: "github-actions"
108+
schedule:
109+
interval: "weekly"
110+
day: "monday"
111+
target-branch: release-0.11
112+
groups:
113+
all-github-actions:
114+
patterns: [ "*" ]
115+
commit-message:
116+
prefix: ":seedling:"
117+
include: scope
118+
labels:
119+
- "area/dependency"
120+
- "ok-to-test"
121+
# Go directories
122+
- directories:
123+
- "/"
124+
- "/hack/tools"
125+
- "/orc"
126+
package-ecosystem: "gomod"
127+
schedule:
128+
interval: "weekly"
129+
day: "monday"
130+
target-branch: release-0.11
131+
groups:
132+
all-go-mod-patch-and-minor:
133+
patterns: [ "*" ]
134+
update-types: [ "patch", "minor" ]
135+
commit-message:
136+
prefix: ":seedling:"
137+
include: scope
138+
ignore:
139+
# Ignore CAPI major and minor bumps
140+
- dependency-name: "sigs.k8s.io/cluster-api*"
141+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
142+
# Ignore controller-runtime major and minor bumps as its upgraded manually.
143+
- dependency-name: "sigs.k8s.io/controller-runtime"
144+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
145+
# Ignore k8s major and minor bumps and its transitives modules
146+
- dependency-name: "k8s.io/*"
147+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
148+
- dependency-name: "sigs.k8s.io/controller-tools"
149+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
150+
# We will need k8s v0.31.3 to bump structured-merge-diff to v4.4.2 (check git history for details).
151+
- dependency-name: "sigs.k8s.io/structured-merge-diff/*"
152+
labels:
153+
- "area/dependency"
154+
- "ok-to-test"
155+
## release-0.11 branch config ends here

.github/workflows/pr-dependabot.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
id: vars
2525
run: echo "go_version=$(make go-version)" >> $GITHUB_OUTPUT
2626
- name: Set up Go
27-
uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # tag=v5.2.0
27+
uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # tag=v5.3.0
2828
with:
2929
go-version: ${{ steps.vars.outputs.go_version }}
3030
- uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # tag=v4.2.0

.github/workflows/release.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
- name: Calculate go version
2424
run: echo "go_version=$(make go-version)" >> $GITHUB_ENV
2525
- name: Set up Go
26-
uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # tag=v5.2.0
26+
uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # tag=v5.3.0
2727
with:
2828
go-version: ${{ env.go_version }}
2929
- name: generate release artifacts

.gitignore

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,3 @@ docs/book/book/
191191
!/vendor/**
192192
!/orc/vendor/**
193193
!/hack/tools/vendor/**
194-
# TODO Drop the codegen vendoring after 0.11
195-
!/orc/hack/codegen/vendor/**
196-
!/hack/codegen/vendor/**

.golangci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ issues:
182182
- "zz_generated.*\\.go$"
183183

184184
run:
185-
go: "1.22"
185+
go: "1.23"
186186
timeout: 10m
187187
build-tags:
188188
- e2e

.snyk

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,3 @@ exclude:
88
- "hack/**"
99
- "test/**"
1010
- "**/*_test.go"
11-
# TODO: use the `ignore:` interface to be more specific on what issues we want to ignore but it doesn't seem to work.
12-
#
13-
# This file handle Glance image upload in CAPO.
14-
# This code intentionally supports insecure hash algorithms, because for public images the consumer can't, in practise,
15-
# influence the hash algorithm presented. If the only published hash is MD5 it's more secure to check it than not
16-
# check it, so we support MD5.
17-
# Incidentally, Glance only directly supports SHA512. This is wildly impractical as almost nobody publishes this:
18-
# SHA256 is most common in practise. Also Glance publishes a hash of something that isn't guaranteed to be what it downloaded.
19-
# Also there's no way to determine via the API if it's going to do this. Glance hash verification is unusable.
20-
- 'internal/controllers/image/upload_helpers.go'

CONTRIBUTING.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,63 @@ Kubernetes projects require that you sign a Contributor License Agreement (CLA)
1212
1. Fork the desired repo, develop and test your code changes.
1313
1. Submit a pull request.
1414
1. All code PR must be labeled with ⚠️ (:warning:, major or breaking changes), ✨ (:sparkles:, feature additions), 🐛 (:bug:, patch and bugfixes), 📖 (:book:, documentation or proposals), or 🌱 (:seedling:, minor or other)
15+
16+
## Branches
17+
18+
Cluster API Provider OpenStack has two types of branches: the *main* branch and
19+
*release-X* branches.
20+
21+
The *main* branch is where development happens. All the latest and
22+
greatest code, including breaking changes, happens on main.
23+
24+
The *release-X* branches contain stable, backwards compatible code. On every
25+
major or minor release, a new branch is created. It is from these
26+
branches that minor and patch releases are tagged. In some cases, it may
27+
be necessary to open PRs for bugfixes directly against stable branches, but
28+
this should generally not be the case.
29+
30+
### Support and guarantees
31+
32+
Cluster API Provider OpenStack maintains the most recent release/releases for all supported API and contract versions. Support for this section refers to the ability to backport and release patch versions.
33+
34+
- The API version is determined from the GroupVersion defined in the top-level `api/` package.
35+
- The EOL date of each API Version is determined from the last release available once a new API version is published.
36+
37+
| API Version | Supported Until |
38+
|--------------|-----------------------|
39+
| **v1beta1** | TBD (current stable) |
40+
41+
- For the current stable API version (v1beta1) we support the two most recent minor releases; older minor releases are immediately unsupported when a new major/minor release is available.
42+
- For older API versions we only support the most recent minor release until the API version reaches EOL.
43+
- We will maintain test coverage for all supported minor releases and for one additional release for the current stable API version in case we have to do an emergency patch release.
44+
For example, if v0.11 and v0.12 are currently supported, we will also maintain test coverage for v0.10 for one additional release cycle. When v0.13 is released, tests for v0.10 will be removed.
45+
46+
| Minor Release | API Version | Supported Until |
47+
|---------------|--------------|------------------------------------------------|
48+
| v0.12.x | **v1beta1** | when v0.14.0 will be released |
49+
| v0.11.x | **v1beta1** | when v0.13.0 will be released |
50+
| v0.10.x | **v1beta1** | EOL to be defined (v0.12.0 release date) |
51+
| v0.9.x | **v1alpha7** | EOL since 2024-10-24 - v0.11.0 release date |
52+
| v0.8.x | **v1alpha7** | EOL since 2024-04-17 - v0.10.0 release date |
53+
54+
- Exceptions can be filed with maintainers and taken into consideration on a case-by-case basis.
55+
56+
### Removal of v1alpha apiVersions
57+
58+
| Minor Release | v1beta1 | v1alpha7 | v1alpha6 | v1alpha5 |
59+
|---------------|---------------|------------|------------|------------|
60+
| v0.12.x | **supported** | not served | | |
61+
| v0.11.x | **supported** | deprecated | not served | |
62+
| v0.10.x | **supported** | supported | deprecated | not served |
63+
| v0.9.x | | supported | supported | deprecated |
64+
| v0.8.x | | supported | supported | deprecated |
65+
66+
Note: Removal of a deprecated APIVersion in Kubernetes [can cause issues with garbage collection by the kube-controller-manager](https://github.com/kubernetes/kubernetes/issues/102641)
67+
This means that some objects which rely on garbage collection for cleanup - e.g. MachineSets and their descendent objects, like Machines and InfrastructureMachines, may not be cleaned up properly if those
68+
objects were created with an APIVersion which is no longer served.
69+
To avoid these issues it's advised to ensure a restart to the kube-controller-manager is done after upgrading to a version of which drops support for an APIVersion.
70+
This can be accomplished with any Kubernetes control-plane rollout, including a Kubernetes version upgrade, or by manually stopping and restarting the kube-controller-manager.
71+
72+
Note: We have introduced experimental APIs separate from the "main" API mentioned here.
73+
They do not follow the support cycle described here.
74+
The goal is to mature them separately so that they can be quickly iterated on, dropped or eventually included in the stable API.

Dockerfile

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,17 @@
1313
# limitations under the License.
1414

1515
# Build the manager binary
16-
FROM golang:1.22.0 as builder
16+
ARG GO_VERSION
17+
FROM golang:${GO_VERSION} AS builder
1718
WORKDIR /workspace
1819

1920
# Run this with docker build --build_arg goproxy=$(go env GOPROXY) to override the goproxy
2021
ARG goproxy=https://proxy.golang.org
2122
ENV GOPROXY=$goproxy
2223

2324
# Copy the Go Modules manifests
24-
RUN mkdir orc
2525
COPY go.mod go.mod
2626
COPY go.sum go.sum
27-
COPY orc/go.mod orc/go.mod
28-
COPY orc/go.sum orc/go.sum
2927

3028
# Cache deps before building and copying source so that we don't need to re-download as much
3129
# and so that source changes don't invalidate our downloaded layer

0 commit comments

Comments
 (0)