Skip to content

Commit db9099b

Browse files
Merge pull request #59 from cybozu-go/k8s-1.30
Bump supported kubernetes from 1.29 to 1.30
2 parents 350f259 + 9e25d40 commit db9099b

16 files changed

+237
-685
lines changed

.github/workflows/ci.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,16 @@ jobs:
2929
name: End-to-End Tests
3030
strategy:
3131
matrix:
32-
k8s-version: ["1.27.13", "1.28.9", "1.29.4"]
32+
k8s-version: ["1.28.13", "1.29.8", "1.30.4"]
3333
runs-on: ubuntu-22.04
3434
steps:
3535
- uses: actions/checkout@v4
3636
- uses: actions/setup-go@v5
3737
with:
3838
go-version-file: go.mod
39-
- uses: aquaproj/aqua-installer@4551ec64e21bf0f557c2525135ff0bd2cba40ec7 # v3.0.0
39+
- uses: aquaproj/aqua-installer@6ce1f8848ec8e61f14d57bd5d7597057a6dd187c # v3.0.1
4040
with:
41-
aqua_version: v2.27.3
41+
aqua_version: v2.34.0
4242
env:
4343
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4444
- run: make setup E2ETEST_K8S_VERSION=${{ matrix.k8s-version }}

.github/workflows/release.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ jobs:
99
runs-on: ubuntu-22.04
1010
steps:
1111
- uses: actions/checkout@v4
12-
- uses: docker/setup-buildx-action@v2
12+
- uses: docker/setup-buildx-action@v3
1313
- run: make docker-build
1414
- name: Login to ghcr.io
15-
uses: docker/login-action@v2
15+
uses: docker/login-action@v3
1616
with:
1717
registry: ghcr.io
1818
username: ${{ github.repository_owner }}

Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Build the manager binary
2-
FROM ghcr.io/cybozu/golang:1.22-jammy as builder
2+
FROM ghcr.io/cybozu/golang:1.23-jammy as builder
33

44
WORKDIR /workspace
55
# Copy the Go Modules manifests
@@ -20,7 +20,7 @@ COPY pkg/ pkg/
2020
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -o manager cmd/nyamber-controller/main.go
2121

2222
FROM ghcr.io/cybozu/ubuntu:22.04
23-
LABEL org.opencontainers.image.source https://github.com/cybozu-go/nyamber
23+
LABEL org.opencontainers.image.source=https://github.com/cybozu-go/nyamber
2424

2525
WORKDIR /
2626
COPY --from=builder /workspace/manager .

Dockerfile.runner

+26-26
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Build the manager binary
2-
FROM ghcr.io/cybozu/golang:1.22-jammy as builder
2+
FROM ghcr.io/cybozu/golang:1.23-jammy as builder
33

44
WORKDIR /workspace
55
# Copy the Go Modules manifests
@@ -19,10 +19,10 @@ RUN --mount=type=cache,target=/go/pkg/mod \
1919
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o entrypoint cmd/entrypoint/main.go
2020

2121
FROM ghcr.io/cybozu/ubuntu:22.04
22-
LABEL org.opencontainers.image.source https://github.com/cybozu-go/nyamber
22+
LABEL org.opencontainers.image.source=https://github.com/cybozu-go/nyamber
2323

24-
ENV GO_VERSION=1.22.3
25-
ENV PLACEMAT_VERSION=2.4.5
24+
ENV GO_VERSION=1.23.1
25+
ENV PLACEMAT_VERSION=2.4.6
2626

2727
ENV HOME=/home/nyamber
2828
ENV GOPATH=${HOME}/go
@@ -37,36 +37,36 @@ COPY include-bird /etc/dpkg/dpkg.cfg.d/
3737

3838
RUN apt-get update \
3939
&& apt-get -y install --no-install-recommends \
40-
git \
40+
bash-completion \
41+
bird2 \
4142
build-essential \
43+
cloud-utils \
44+
dbus \
45+
dnsmasq \
46+
fakeroot \
47+
freeipmi-tools \
48+
git \
49+
iproute2 \
50+
iptables \
51+
jq \
52+
kmod \
4253
less \
43-
wget \
44-
systemd-container \
54+
libgpgme11 \
4555
lldpd \
56+
lsb-release \
4657
qemu \
4758
qemu-kvm \
48-
socat \
59+
openssh-client \
4960
picocom \
50-
swtpm \
51-
cloud-utils \
52-
bird2 \
61+
socat \
5362
squid \
54-
dnsmasq \
55-
xauth \
56-
bash-completion \
57-
dbus \
58-
jq \
59-
libgpgme11 \
60-
freeipmi-tools \
61-
unzip \
62-
fakeroot \
63-
time \
64-
kmod \
65-
iptables \
66-
iproute2 \
67-
openssh-client \
6863
sudo \
69-
lsb-release \
64+
swtpm \
65+
systemd-container \
66+
time \
67+
unzip \
68+
wget \
69+
xauth \
7070
&& rm -rf /var/lib/apt/lists/* \
7171
&& curl -sSLf https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz | tar -C /usr/local -xzf - \
7272
&& curl -sfL https://github.com/cybozu-go/placemat/releases/download/v${PLACEMAT_VERSION}/placemat2_${PLACEMAT_VERSION}_amd64.deb -o placemat2_${PLACEMAT_VERSION}_amd64.deb \

Makefile

+3-3
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@ STATICCHECK = $(LOCALBIN)/staticcheck
2424
CRD_TO_MARKDOWN ?= $(LOCALBIN)/crd-to-markdown
2525

2626
## Tool Versions
27-
CONTROLLER_TOOLS_VERSION ?= v0.15.0
27+
CONTROLLER_TOOLS_VERSION ?= v0.16.3
2828

2929
# ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary.
3030
# the kubebuilder version of the ready-to-use can get by "./bin/setup-envtest list" command.
31-
ENVTEST_K8S_VERSION = 1.29.5
31+
ENVTEST_K8S_VERSION = 1.30.3
3232

3333
# KUSTOMIZE_VERSION can be found at https://github.com/kubernetes-sigs/kustomize/releases
34-
KUSTOMIZE_VERSION ?= v5.4.2
34+
KUSTOMIZE_VERSION ?= v5.4.3
3535

3636
# Setting SHELL to bash allows bash commands to be executed by recipes.
3737
# This is a requirement for 'setup-envtest.sh' in the test target.

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Nyamber is a custom controller to create Neco environment
1515
- Create dctest pods on the specified schedule
1616

1717
## Supported Software
18-
- Kubernetes: 1.27, 1.28, 1.29
18+
- Kubernetes: 1.28, 1.29, 1.30
1919

2020
## Documentation
2121

aqua.yaml

+8-8
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@
33
# https://aquaproj.github.io/
44
registries:
55
- type: standard
6-
ref: v4.195.0 # renovate: depName=aquaproj/aqua-registry
6+
ref: v4.226.0 # renovate: depName=aquaproj/aqua-registry
77
- type: local
88
name: local
99
path: registry.yaml
1010
packages:
11-
- name: kubernetes/kubectl@v1.29.6
12-
- name: kubernetes-sigs/kubebuilder@v4.0.0
13-
- name: kubernetes-sigs/kustomize@kustomize/v5.4.2
14-
- name: kubernetes-sigs/kind@v0.23.0
15-
- name: tilt-dev/[email protected].17
16-
- name: tilt-dev/[email protected].29
17-
- name: mikefarah/[email protected].2
11+
- name: kubernetes/kubectl@v1.30.5
12+
- name: kubernetes-sigs/kubebuilder@v4.2.0
13+
- name: kubernetes-sigs/kustomize@kustomize/v5.4.3
14+
- name: kubernetes-sigs/kind@v0.24.0
15+
- name: tilt-dev/[email protected].20
16+
- name: tilt-dev/[email protected].34
17+
- name: mikefarah/[email protected].3
1818
- name: clamoriniere/[email protected]
1919
registry: local

cluster.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ apiVersion: ctlptl.dev/v1alpha1
77
kind: Cluster
88
name: kind-nyamber-dev
99
product: kind
10-
kubernetesVersion: v1.29.4
10+
kubernetesVersion: v1.30.4
1111
registry: nyamber-registry

config/crd/bases/nyamber.cybozu.io_autovirtualdcs.yaml

+10-21
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
33
kind: CustomResourceDefinition
44
metadata:
55
annotations:
6-
controller-gen.kubebuilder.io/version: v0.15.0
6+
controller-gen.kubebuilder.io/version: v0.16.3
77
name: autovirtualdcs.nyamber.cybozu.io
88
spec:
99
group: nyamber.cybozu.io
@@ -97,11 +97,9 @@ spec:
9797
Claims lists the names of resources, defined in spec.resourceClaims,
9898
that are used by this container.
9999
100-
101100
This is an alpha field and requires enabling the
102101
DynamicResourceAllocation feature gate.
103102
104-
105103
This field is immutable. It can only be set for containers.
106104
items:
107105
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
@@ -112,6 +110,12 @@ spec:
112110
the Pod where this field is used. It makes that resource available
113111
inside a container.
114112
type: string
113+
request:
114+
description: |-
115+
Request is the name chosen for a request in the referenced claim.
116+
If empty, everything from the claim is made available, otherwise
117+
only the result of this request.
118+
type: string
115119
required:
116120
- name
117121
type: object
@@ -154,18 +158,8 @@ spec:
154158
conditions:
155159
description: Conditions is an array of conditions.
156160
items:
157-
description: "Condition contains details for one aspect
158-
of the current state of this API Resource.\n---\nThis
159-
struct is intended for direct use as an array at the field
160-
path .status.conditions. For example,\n\n\n\ttype FooStatus
161-
struct{\n\t // Represents the observations of a foo's
162-
current state.\n\t // Known .status.conditions.type
163-
are: \"Available\", \"Progressing\", and \"Degraded\"\n\t
164-
\ // +patchMergeKey=type\n\t // +patchStrategy=merge\n\t
165-
\ // +listType=map\n\t // +listMapKey=type\n\t Conditions
166-
[]metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\"
167-
patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
168-
\ // other fields\n\t}"
161+
description: Condition contains details for one aspect of
162+
the current state of this API Resource.
169163
properties:
170164
lastTransitionTime:
171165
description: |-
@@ -207,12 +201,7 @@ spec:
207201
- Unknown
208202
type: string
209203
type:
210-
description: |-
211-
type of condition in CamelCase or in foo.example.com/CamelCase.
212-
---
213-
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
214-
useful (see .node.status.conditions), the ability to deconflict is important.
215-
The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
204+
description: type of condition in CamelCase or in foo.example.com/CamelCase.
216205
maxLength: 316
217206
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
218207
type: string

config/crd/bases/nyamber.cybozu.io_virtualdcs.yaml

+10-19
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
33
kind: CustomResourceDefinition
44
metadata:
55
annotations:
6-
controller-gen.kubebuilder.io/version: v0.15.0
6+
controller-gen.kubebuilder.io/version: v0.16.3
77
name: virtualdcs.nyamber.cybozu.io
88
spec:
99
group: nyamber.cybozu.io
@@ -75,11 +75,9 @@ spec:
7575
Claims lists the names of resources, defined in spec.resourceClaims,
7676
that are used by this container.
7777
78-
7978
This is an alpha field and requires enabling the
8079
DynamicResourceAllocation feature gate.
8180
82-
8381
This field is immutable. It can only be set for containers.
8482
items:
8583
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
@@ -90,6 +88,12 @@ spec:
9088
the Pod where this field is used. It makes that resource available
9189
inside a container.
9290
type: string
91+
request:
92+
description: |-
93+
Request is the name chosen for a request in the referenced claim.
94+
If empty, everything from the claim is made available, otherwise
95+
only the result of this request.
96+
type: string
9397
required:
9498
- name
9599
type: object
@@ -132,16 +136,8 @@ spec:
132136
conditions:
133137
description: Conditions is an array of conditions.
134138
items:
135-
description: "Condition contains details for one aspect of the current
136-
state of this API Resource.\n---\nThis struct is intended for
137-
direct use as an array at the field path .status.conditions. For
138-
example,\n\n\n\ttype FooStatus struct{\n\t // Represents the
139-
observations of a foo's current state.\n\t // Known .status.conditions.type
140-
are: \"Available\", \"Progressing\", and \"Degraded\"\n\t //
141-
+patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t
142-
\ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\"
143-
patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
144-
\ // other fields\n\t}"
139+
description: Condition contains details for one aspect of the current
140+
state of this API Resource.
145141
properties:
146142
lastTransitionTime:
147143
description: |-
@@ -182,12 +178,7 @@ spec:
182178
- Unknown
183179
type: string
184180
type:
185-
description: |-
186-
type of condition in CamelCase or in foo.example.com/CamelCase.
187-
---
188-
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
189-
useful (see .node.status.conditions), the ability to deconflict is important.
190-
The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
181+
description: type of condition in CamelCase or in foo.example.com/CamelCase.
191182
maxLength: 316
192183
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
193184
type: string

config/rbac/role.yaml

+2-42
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,7 @@ rules:
88
- ""
99
resources:
1010
- configmaps
11-
verbs:
12-
- create
13-
- delete
14-
- get
15-
- list
16-
- patch
17-
- update
18-
- watch
19-
- apiGroups:
20-
- ""
21-
resources:
2211
- pods
23-
verbs:
24-
- create
25-
- delete
26-
- get
27-
- list
28-
- patch
29-
- update
30-
- watch
31-
- apiGroups:
32-
- ""
33-
resources:
3412
- services
3513
verbs:
3614
- create
@@ -44,6 +22,7 @@ rules:
4422
- nyamber.cybozu.io
4523
resources:
4624
- autovirtualdcs
25+
- virtualdcs
4726
verbs:
4827
- create
4928
- delete
@@ -56,33 +35,14 @@ rules:
5635
- nyamber.cybozu.io
5736
resources:
5837
- autovirtualdcs/status
38+
- virtualdcs/status
5939
verbs:
6040
- get
6141
- patch
6242
- update
63-
- apiGroups:
64-
- nyamber.cybozu.io
65-
resources:
66-
- virtualdcs
67-
verbs:
68-
- create
69-
- delete
70-
- get
71-
- list
72-
- patch
73-
- update
74-
- watch
7543
- apiGroups:
7644
- nyamber.cybozu.io
7745
resources:
7846
- virtualdcs/finalizers
7947
verbs:
8048
- update
81-
- apiGroups:
82-
- nyamber.cybozu.io
83-
resources:
84-
- virtualdcs/status
85-
verbs:
86-
- get
87-
- patch
88-
- update

0 commit comments

Comments
 (0)