Skip to content

Commit c7169b6

Browse files
authored
25.0.0+1.30.5 (#66)
* update .yamllint * support Ubuntu 24.04 * update Kubernetes v1.30.5 * update CHANGELOG * update README
1 parent ceda28b commit c7169b6

File tree

5 files changed

+43
-48
lines changed

5 files changed

+43
-48
lines changed

.yamllint

+8
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,11 @@ rules:
77
level: warning
88

99
comments-indentation: disable
10+
comments:
11+
min-spaces-from-content: 1
12+
braces:
13+
min-spaces-inside: 0
14+
max-spaces-inside: 1
15+
octal-values:
16+
forbid-implicit-octal: true
17+
forbid-explicit-octal: true

CHANGELOG.md

+15-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
# Changelog
22

3+
## 25.0.0+1.30.5
4+
5+
- **UPDATE**
6+
- update `k8s_ctl_release` to `1.30.5`
7+
8+
- **OTHER CHANGES**
9+
- support Ubuntu 24.04
10+
- update `.yamllint`
11+
312
## 24.0.2+1.29.9
413

514
- **OTHER CHANGES**
@@ -8,23 +17,23 @@
817
## 24.0.1+1.29.9
918

1019
- **UPDATE**
11-
- update `k8s_release` to `1.29.9`
20+
- update `k8s_ctl_release` to `1.29.9`
1221

1322
## 24.0.0+1.29.4
1423

1524
- **UPDATE**
16-
- update `k8s_release` to `1.29.4`
25+
- update `k8s_ctl_release` to `1.29.4`
1726

1827
## 24.0.0+1.29.3
1928

2029
- **UPDATE**
21-
- update `k8s_release` to `1.29.3`
30+
- update `k8s_ctl_release` to `1.29.3`
2231
- Molecule: use `alvistack` instead of `generic` Vagrant boxes
2332

2433
## 23.1.2+1.28.8
2534

2635
- **UPDATE**
27-
- update `k8s_release` to `1.28.8`
36+
- update `k8s_ctl_release` to `1.28.8`
2837

2938
## 23.1.1+1.28.5
3039

@@ -45,7 +54,7 @@
4554
## 23.0.0+1.28.5
4655

4756
- **UPDATE**
48-
- Update `k8s_release` to `1.28.5`
57+
- Update `k8s_ctl_release` to `1.28.5`
4958

5059
- **BREAKING**
5160
- Extend `enable-admission-plugins` in `k8s_apiserver_settings` by: `PodSecurity,Priority,StorageObjectInUseProtection,RuntimeClass,CertificateApproval,CertificateSigning,ClusterTrustBundleAttest,CertificateSubjectRestriction,DefaultIngressClass`. These are enabled by default if this flag is not specified (see [Admission Controllers Reference](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) for more information).
@@ -65,7 +74,7 @@
6574
**Please remove** `/var/lib/kubernetes/admin.kubeconfig` on the K8s controller nodes (if you didn't change the default directory for this file). Older versions of this role created this file. It's no longer needed. It contains the `kubeconfig` (so basically the credentials file) for the `admin` user. This is a very powerful user (actually the user with the most permissions). So use with care and store the file in a secure place! `admin.kubeconfig` should only be used at the very beginning to create a new user with less permissions.
6675

6776
- **UPDATE**
68-
- update `k8s_release` to `1.27.8`
77+
- update `k8s_ctl_release` to `1.27.8`
6978

7079
- **BREAKING**
7180
- Rename variable `k8s_conf_dir` to `k8s_ctl_conf_dir`. Additionally the default value changed from `/usr/lib/kubernetes` to `/etc/kubernetes/controller`.

README.md

+18-41
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,21 @@ This role is used in [Kubernetes the not so hard way with Ansible - Control plan
44

55
## Versions
66

7-
I tag every release and try to stay with [semantic versioning](http://semver.org). If you want to use the role I recommend to checkout the latest tag. The master branch is basically development while the tags mark stable releases. But in general I try to keep master in good shape too. A tag `24.0.1+1.29.9` means this is release `24.0.1` of this role and it's meant to be used with Kubernetes version `1.29.9` (but should work with any K8s 1.29.x release of course). If the role itself changes `X.Y.Z` before `+` will increase. If the Kubernetes version changes `X.Y.Z` after `+` will increase too. This allows to tag bugfixes and new major versions of the role while it's still developed for a specific Kubernetes release. That's especially useful for Kubernetes major releases with breaking changes.
7+
I tag every release and try to stay with [semantic versioning](http://semver.org). If you want to use the role I recommend to checkout the latest tag. The master branch is basically development while the tags mark stable releases. But in general I try to keep master in good shape too. A tag `25.0.0+1.30.5` means this is release `25.0.0` of this role and it's meant to be used with Kubernetes version `1.30.5` (but should work with any K8s 1.30.x release of course). If the role itself changes `X.Y.Z` before `+` will increase. If the Kubernetes version changes `X.Y.Z` after `+` will increase too. This allows to tag bugfixes and new major versions of the role while it's still developed for a specific Kubernetes release. That's especially useful for Kubernetes major releases with breaking changes.
88

99
## Requirements
1010

11-
This role requires that you already created some certificates for Kubernetes API server (see [Kubernetes the not so hard way with Ansible - Certificate authority (CA)](https://www.tauceti.blog/post/kubernetes-the-not-so-hard-way-with-ansible-certificate-authority/)). The role copies the certificates from `k8s_ctl_ca_conf_directory` (which is by default the same as `k8s_ca_conf_directory` used by `githubixx.kubernetes_ca` role) to the destination host. You should also setup a fully meshed VPN with e.g. WireGuard (see [Kubernetes the not so hard way with Ansible - WireGuard](https://www.tauceti.blog/post/kubernetes-the-not-so-hard-way-with-ansible-wireguard/)) and of course an etcd cluster (see [Kubernetes the not so hard way with Ansible - etcd cluster](https://www.tauceti.blog/post/kubernetes-the-not-so-hard-way-with-ansible-etcd/)). The WireGuard VPN Mesh is not a requirement but increases security as all traffic between the K8s hosts is encrypted by default. But as long as all hosts included have an interface where they can communicate with each other it's fine.
11+
This role requires that you already created some certificates for Kubernetes API server (see [Kubernetes the not so hard way with Ansible - Certificate authority (CA)](https://www.tauceti.blog/post/kubernetes-the-not-so-hard-way-with-ansible-certificate-authority/)). The role copies the certificates from `k8s_ctl_ca_conf_directory` (which is by default the same as `k8s_ca_conf_directory` used by `githubixx.kubernetes_ca` role) to the destination host.
12+
13+
Your hosts on which you want to install Kubernetes should be able to communicate with each other of course. To add an additional layer of security you can setup a fully meshed VPN with WireGuard e.g. (see [Kubernetes the not so hard way with Ansible - WireGuard](https://www.tauceti.blog/post/kubernetes-the-not-so-hard-way-with-ansible-wireguard/)). This encrypts every communication between the Kubernetes nodes if the Kubernetes processes use the WireGuard interface. Using WireGuard actually makes it also easily possible to have a Kubernetes cluster that is distributed in various data centers e.g.
14+
15+
And of course an [etcd](https://etcd.io/) cluster (see [Kubernetes the not so hard way with Ansible - etcd cluster](https://www.tauceti.blog/post/kubernetes-the-not-so-hard-way-with-ansible-etcd/)) to store the state of the Kubernetes cluster.
1216

1317
## Supported OS
1418

15-
- Ubuntu 20.04 (Focal Fossa)
19+
- Ubuntu 20.04 (Focal Fossa) (reaches EOL April 2024 - not recommended)
1620
- Ubuntu 22.04 (Jammy Jellyfish)
17-
- Ubuntu 24.04 (Noble Numbat)
21+
- Ubuntu 24.04 (Noble Numbat) (recommended)
1822

1923
## Changelog
2024

@@ -26,6 +30,11 @@ See full [CHANGELOG.md](https://github.com/githubixx/ansible-role-kubernetes-con
2630

2731
**Recent changes:**
2832

33+
## 25.0.0+1.30.5
34+
35+
- **UPDATE**
36+
- update `k8s_ctl_release` to `1.30.5`
37+
2938
## 24.0.2+1.29.9
3039

3140
- **OTHER CHANGES**
@@ -34,51 +43,19 @@ See full [CHANGELOG.md](https://github.com/githubixx/ansible-role-kubernetes-con
3443
## 24.0.1+1.29.9
3544

3645
- **UPDATE**
37-
- update `k8s_release` to `1.29.9`
46+
- update `k8s_ctl_release` to `1.29.9`
3847

3948
## 24.0.0+1.29.4
4049

4150
- **UPDATE**
42-
- update `k8s_release` to `1.29.4`
51+
- update `k8s_ctl_release` to `1.29.4`
4352

4453
## 24.0.0+1.29.3
4554

4655
- **UPDATE**
47-
- update `k8s_release` to `1.29.3`
56+
- update `k8s_ctl_release` to `1.29.3`
4857
- Molecule: use `alvistack` instead of `generic` Vagrant boxes
4958

50-
## 23.1.2+1.28.8
51-
52-
- **UPDATE**
53-
- update `k8s_release` to `1.28.8`
54-
55-
## 23.1.1+1.28.5
56-
57-
- **BUGFIX**
58-
- ClusterRoleBinding `system:kube-apiserver` needs to honor `k8s_apiserver_csr_cn` value for as username
59-
- Because of the previous change move `files/kube-apiserver-to-kubelet_cluster_role.yaml -> templates/rbac/kube-apiserver-to-kubelet_cluster_role.yaml.j2` and `files/kube-apiserver-to-kubelet_cluster_role_binding.yaml -> templates/rbac/kube-apiserver-to-kubelet_cluster_role_binding.yaml.j2` as both files became a Jinja2 template.
60-
61-
## 23.1.0+1.28.5
62-
63-
- **MOLECULE**
64-
- Change to Ubuntu 22.04 for test-assets VM
65-
- Adjust common names for certificates / change algo to ecdsa and algo size
66-
67-
- **OTHER CHANGES**
68-
- Fix permissions for temporary directory
69-
- Adjust Github action because of Ansible Galaxy changes
70-
71-
## 23.0.0+1.28.5
72-
73-
- **UPDATE**
74-
- Update `k8s_release` to `1.28.5`
75-
76-
- **BREAKING**
77-
- Extend `enable-admission-plugins` in `k8s_apiserver_settings` by: `PodSecurity,Priority,StorageObjectInUseProtection,RuntimeClass,CertificateApproval,CertificateSigning,ClusterTrustBundleAttest,CertificateSubjectRestriction,DefaultIngressClass`. These are enabled by default if this flag is not specified (see [Admission Controllers Reference](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) for more information).
78-
79-
- **MOLECULE**
80-
- Change IP addresses
81-
8259
## Installation
8360

8461
- Directly download from Github (Change into Ansible roles directory before cloning. You can figure out the role path by using `ansible-config dump | grep DEFAULT_ROLES_PATH` command):
@@ -95,7 +72,7 @@ See full [CHANGELOG.md](https://github.com/githubixx/ansible-role-kubernetes-con
9572
roles:
9673
- name: githubixx.kubernetes_controller
9774
src: https://github.com/githubixx/ansible-role-kubernetes-controller.git
98-
version: 24.0.1+1.29.9
75+
version: 25.0.0+1.30.5
9976
```
10077
10178
## Role (default) variables
@@ -125,7 +102,7 @@ k8s_ctl_pki_dir: "{{ k8s_ctl_conf_dir }}/pki"
125102
k8s_ctl_bin_dir: "/usr/local/bin"
126103

127104
# The Kubernetes release.
128-
k8s_ctl_release: "1.29.9"
105+
k8s_ctl_release: "1.30.5"
129106

130107
# The interface on which the Kubernetes services should listen on. As all cluster
131108
# communication should use a VPN interface the interface name is

defaults/main.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ k8s_ctl_pki_dir: "{{ k8s_ctl_conf_dir }}/pki"
2323
k8s_ctl_bin_dir: "/usr/local/bin"
2424

2525
# The Kubernetes release.
26-
k8s_ctl_release: "1.29.9"
26+
k8s_ctl_release: "1.30.5"
2727

2828
# The interface on which the Kubernetes services should listen on. As all cluster
2929
# communication should use a VPN interface the interface name is

meta/main.yml

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ galaxy_info:
1111
versions:
1212
- "focal"
1313
- "jammy"
14+
- "noble"
1415
galaxy_tags:
1516
- kubernetes
1617
- scheduler

0 commit comments

Comments
 (0)