Skip to content

Commit 4718ddc

Browse files
Merge branch 'kubernetes-sigs:master' into master
2 parents aa5b107 + c00fc9f commit 4718ddc

20 files changed

+189
-74
lines changed

.github/ISSUE_TEMPLATE/bug-report.yaml

+26-2
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,35 @@ body:
3636
attributes:
3737
value: '### Environment'
3838

39-
- type: textarea
39+
- type: dropdown
4040
id: os
4141
attributes:
4242
label: OS
43-
placeholder: 'printf "$(uname -srm)\n$(cat /etc/os-release)\n"'
43+
options:
44+
- 'RHEL 9'
45+
- 'RHEL 8'
46+
- 'Fedora 40'
47+
- 'Ubuntu 24'
48+
- 'Ubuntu 22'
49+
- 'Ubuntu 20'
50+
- 'Debian 12'
51+
- 'Debian 11'
52+
- 'Flatcar Container Linux'
53+
- 'openSUSE Leap'
54+
- 'openSUSE Tumbleweed'
55+
- 'Oracle Linux 9'
56+
- 'Oracle Linux 8'
57+
- 'AlmaLinux 9'
58+
- 'AlmaLinux 8'
59+
- 'Rocky Linux 9'
60+
- 'Rocky Linux 8'
61+
- 'Amazon Linux 2'
62+
- 'Kylin Linux Advanced Server V10'
63+
- 'UOS Linux 20'
64+
- 'openEuler 24'
65+
- 'openEuler 22'
66+
- 'openEuler 20'
67+
- 'Other|Unsupported'
4468
validations:
4569
required: true
4670

.github/workflows/auto-label-os.yml

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Issue labeler
2+
on:
3+
issues:
4+
types: [opened]
5+
6+
permissions:
7+
contents: read
8+
9+
jobs:
10+
label-component:
11+
runs-on: ubuntu-latest
12+
permissions:
13+
issues: write
14+
15+
steps:
16+
- uses: actions/checkout@v3
17+
18+
- name: Parse issue form
19+
uses: stefanbuck/github-issue-parser@v3
20+
id: issue-parser
21+
with:
22+
template-path: .github/ISSUE_TEMPLATE/bug-report.yaml
23+
24+
- name: Set labels based on OS field
25+
uses: redhat-plumbers-in-action/advanced-issue-labeler@v2
26+
with:
27+
issue-form: ${{ steps.issue-parser.outputs.jsonString }}
28+
section: os
29+
block-list: |
30+
None
31+
Other
32+
token: ${{ secrets.GITHUB_TOKEN }}

.gitlab-ci.yml

+5-2
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,13 @@ stages:
66
- deploy-extended
77

88
variables:
9-
KUBESPRAY_VERSION: v2.27.0
109
FAILFASTCI_NAMESPACE: 'kargo-ci'
1110
GITLAB_REPOSITORY: 'kargo-ci/kubernetes-sigs-kubespray'
11+
GIT_CONFIG_COUNT: 1
12+
GIT_CONFIG_KEY_0: user.key
13+
GIT_CONFIG_VALUE_0: "[email protected]"
14+
GIT_CONFIG_KEY_1: user.name
15+
GIT_CONFIG_VALUE_1: "CI"
1216
ANSIBLE_FORCE_COLOR: "true"
1317
MAGIC: "ci check this"
1418
GS_ACCESS_KEY_ID: $GS_KEY
@@ -52,7 +56,6 @@ before_script:
5256
needs:
5357
- pipeline-image
5458
- ci-not-authorized
55-
- check-galaxy-version # lint
5659
- pre-commit # lint
5760
- vagrant-validate # lint
5861

.gitlab-ci/lint.yml

-10
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,3 @@ vagrant-validate:
2424
script:
2525
- ./tests/scripts/vagrant-validate.sh
2626
except: ['triggers', 'master']
27-
28-
29-
# TODO: convert to pre-commit hook
30-
check-galaxy-version:
31-
needs: []
32-
stage: test
33-
tags: [ffci]
34-
image: python:3
35-
script:
36-
- tests/scripts/check_galaxy_version.sh

.gitlab-ci/pre-commit-dynamic-stub.yml

-17
This file was deleted.

.pre-commit-config.yaml

+8
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,14 @@ repos:
7070
- pathlib
7171
- pyaml
7272

73+
- id: check-galaxy-version
74+
name: Verify correct version for galaxy.yml
75+
entry: scripts/galaxy_version.py
76+
language: python
77+
pass_filenames: false
78+
additional_dependencies:
79+
- ruamel.yaml
80+
7381
- id: jinja-syntax-check
7482
name: jinja-syntax-check
7583
entry: tests/scripts/check-templates.py

Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ RUN --mount=type=bind,source=requirements.txt,target=requirements.txt \
3535
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
3636

3737
RUN OS_ARCHITECTURE=$(dpkg --print-architecture) \
38-
&& curl -L "https://dl.k8s.io/release/v1.32.2/bin/linux/${OS_ARCHITECTURE}/kubectl" -o /usr/local/bin/kubectl \
39-
&& echo "$(curl -L "https://dl.k8s.io/release/v1.32.2/bin/linux/${OS_ARCHITECTURE}/kubectl.sha256")" /usr/local/bin/kubectl | sha256sum --check \
38+
&& curl -L "https://dl.k8s.io/release/v1.32.3/bin/linux/${OS_ARCHITECTURE}/kubectl" -o /usr/local/bin/kubectl \
39+
&& echo "$(curl -L "https://dl.k8s.io/release/v1.32.3/bin/linux/${OS_ARCHITECTURE}/kubectl.sha256")" /usr/local/bin/kubectl | sha256sum --check \
4040
&& chmod a+x /usr/local/bin/kubectl
4141

4242
COPY *.yml ./

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ Note:
111111
<!-- BEGIN ANSIBLE MANAGED BLOCK -->
112112

113113
- Core
114-
- [kubernetes](https://github.com/kubernetes/kubernetes) 1.32.2
114+
- [kubernetes](https://github.com/kubernetes/kubernetes) 1.32.3
115115
- [etcd](https://github.com/etcd-io/etcd) 3.5.16
116116
- [docker](https://www.docker.com/) 26.1
117117
- [containerd](https://containerd.io/) 2.0.3

RELEASE.md

-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ The Kubespray Project is released on an as-needed basis. The process is as follo
1212
1. (For major releases) On the `master` branch: bump the version in `galaxy.yml` to the next expected major release (X.y.0 with y = Y + 1), make a Pull Request.
1313
1. (For minor releases) On the `release-X.Y` branch: bump the version in `galaxy.yml` to the next expected minor release (X.Y.z with z = Z + 1), make a Pull Request.
1414
1. The corresponding version of [quay.io/kubespray/kubespray:vX.Y.Z](https://quay.io/repository/kubespray/kubespray) and [quay.io/kubespray/vagrant:vX.Y.Z](https://quay.io/repository/kubespray/vagrant) container images are built and tagged. See the following `Container image creation` section for the details.
15-
1. (Only for major releases) The `KUBESPRAY_VERSION` in `.gitlab-ci.yml` is upgraded to the version we just released # TODO clarify this, this variable is for testing upgrades.
1615
1. The release issue is closed
1716
1. An announcement email is sent to `[email protected]` with the subject `[ANNOUNCE] Kubespray $VERSION is released`
1817
1. The topic of the #kubespray channel is updated with `vX.Y.Z is released! | ...`

Vagrantfile

+15-5
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,22 @@ $inventories ||= []
6363
$multi_networking ||= "False"
6464
$download_run_once ||= "True"
6565
$download_force_cache ||= "False"
66+
# Modify those to have separate groups (for instance, to test separate etcd:)
67+
# first_control_plane = 1
68+
# first_etcd = 4
69+
# control_plane_instances = 3
70+
# etcd_instances = 3
71+
$first_node ||= 1
72+
$first_control_plane ||= 1
73+
$first_etcd ||= 1
74+
6675
# The first three nodes are etcd servers
6776
$etcd_instances ||= [$num_instances, 3].min
6877
# The first two nodes are kube masters
69-
$kube_master_instances ||= [$num_instances, 2].min
78+
$control_plane_instances ||= [$num_instances, 2].min
7079
# All nodes are kube nodes
71-
$kube_node_instances ||= $num_instances
80+
$kube_node_instances ||= $num_instances - $first_node + 1
81+
7282
# The following only works when using the libvirt provider
7383
$kube_node_instances_with_disks ||= false
7484
$kube_node_instances_with_disks_size ||= "20G"
@@ -297,9 +307,9 @@ Vagrant.configure("2") do |config|
297307
ansible.tags = [$ansible_tags]
298308
end
299309
ansible.groups = {
300-
"etcd" => ["#{$instance_name_prefix}-[1:#{$etcd_instances}]"],
301-
"kube_control_plane" => ["#{$instance_name_prefix}-[1:#{$kube_master_instances}]"],
302-
"kube_node" => ["#{$instance_name_prefix}-[1:#{$kube_node_instances}]"],
310+
"etcd" => ["#{$instance_name_prefix}-[#{$first_etcd}:#{$etcd_instances + $first_etcd - 1}]"],
311+
"kube_control_plane" => ["#{$instance_name_prefix}-[#{$first_control_plane}:#{$control_plane_instances + $first_control_plane - 1}]"],
312+
"kube_node" => ["#{$instance_name_prefix}-[#{$first_node}:#{$kube_node_instances + $first_node - 1}]"],
303313
"k8s_cluster:children" => ["kube_control_plane", "kube_node"],
304314
}
305315
end

pipeline.Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 1 \
4747
&& pip install --no-compile --no-cache-dir pip -U \
4848
&& pip install --no-compile --no-cache-dir -r tests/requirements.txt \
4949
&& pip install --no-compile --no-cache-dir -r requirements.txt \
50-
&& curl -L https://dl.k8s.io/release/v1.32.2/bin/linux/$(dpkg --print-architecture)/kubectl -o /usr/local/bin/kubectl \
51-
&& echo $(curl -L https://dl.k8s.io/release/v1.32.2/bin/linux/$(dpkg --print-architecture)/kubectl.sha256) /usr/local/bin/kubectl | sha256sum --check \
50+
&& curl -L https://dl.k8s.io/release/v1.32.3/bin/linux/$(dpkg --print-architecture)/kubectl -o /usr/local/bin/kubectl \
51+
&& echo $(curl -L https://dl.k8s.io/release/v1.32.3/bin/linux/$(dpkg --print-architecture)/kubectl.sha256) /usr/local/bin/kubectl | sha256sum --check \
5252
&& chmod a+x /usr/local/bin/kubectl \
5353
# Install Vagrant
5454
&& curl -LO https://releases.hashicorp.com/vagrant/${VAGRANT_VERSION}/vagrant_${VAGRANT_VERSION}-1_$(dpkg --print-architecture).deb \

roles/kubernetes/preinstall/tasks/0040-verify-settings.yml

+12-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
- not cinder_csi_plugin_version.startswith('v')
2323
- not cni_version.startswith('v')
2424
- not dnsautoscaler_version.startswith('v')
25-
- not etcd_version.startswith('v')
2625
- not flannel_cni_version.startswith('v')
2726
- not flannel_version.startswith('v')
2827
- gateway_api_version is not defined or not gateway_api_version.startswith('v')
@@ -38,12 +37,23 @@
3837
- not metrics_server_version.startswith('v')
3938
- not multus_version.startswith('v')
4039
- not netcheck_version.startswith('v')
41-
- not pod_infra_version.startswith('v')
4240
- not rbd_provisioner_version.startswith('v')
4341
- not runc_version.startswith('v')
4442
- not skopeo_version.startswith('v')
4543
- not yq_version.startswith('v')
4644

45+
- name: Stop if some derived versions have a 'v' left at the start
46+
# TODO: drop this task after 2.28.0 is released
47+
# The 'not defined' tests are exception for applications which version in not defined
48+
# in kubespray-defaults, only in their own roles.
49+
assert:
50+
msg: |
51+
All version string used in kubespray have been normalized to not use a leading 'v'.
52+
This check will be dropped in the next minor release.
53+
that:
54+
- not etcd_version.startswith('v')
55+
- not pod_infra_version.startswith('v')
56+
4757
- name: Stop if any host not in '--limit' does not have a fact cache
4858
vars:
4959
uncached_hosts: "{{ hostvars | dict2items | selectattr('value.ansible_default_ipv6', 'undefined') | selectattr('value.ansible_default_ipv4', 'undefined') | map(attribute='key') }}"

0 commit comments

Comments
 (0)