Compare commits

...

29 Commits

Author SHA1 Message Date
Jeff Geerling
83e86bb88b
Merge pull request #166 from vivian-hafener/master
Moves apiversions for kubeadm, kubelet, and kubeproxy from kubeadm-kubelet-config.j2 into defaults/main.yml
2025-07-26 20:03:13 -07:00
Vivian Hafener
321375f702 Moves apiversions for kubeadm, kubelet, and proxy
apiVersions for kubeadm, the kubelet, and the kubeproxy are hardcoded in
kubeadm-kubelet-config.j2. This commit parameterizes those values and
moves them to main.yml.
2025-07-26 15:02:37 -06:00
Jeff Geerling
2b2efa7f9f Bump to version 1.32. 2025-01-30 22:35:55 -06:00
Jeff Geerling
63ba1cf471 Update CI status badges. 2025-01-30 21:25:15 -06:00
Jeff Geerling
92a5694f6f Don't use sudo inside molecule CI tests. 2025-01-29 21:39:37 -06:00
Jeff Geerling
6baa5d7838
Merge pull request #153 from ndouglas/nd_patch_1
Adopt `deb822_repository` format.
2024-12-13 12:26:45 -06:00
Jeff Geerling
210a0ab262 Fixup CI versions. Drop all older RHEL releases which are broken. 2024-07-16 14:22:27 -05:00
Nathan Douglas
32292cfd89 Just kidding, adding back in the release channel option. 2024-03-06 15:24:35 -05:00
Nathan Douglas
8bfb1d772f Removed some unnecessary stuff. 2024-03-06 13:57:07 -05:00
Nathan Douglas
d4517950a4 Code style. 2024-03-06 06:41:19 -05:00
Nathan Douglas
e35045cc6c FML 2024-03-06 06:40:49 -05:00
Nathan Douglas
904f5be944 Update apt cache when Kubernetes repo is added. 2024-03-06 06:25:22 -05:00
Nathan Douglas
baadacdb3c Add python3-debian to list of dependencies. 2024-03-06 06:15:42 -05:00
Nathan Douglas
038cda429a Revert "Add debian package to be able to use deb822_repository."
This reverts commit 054af0d977.
2024-03-06 06:13:56 -05:00
Nathan Douglas
054af0d977 Add debian package to be able to use deb822_repository. 2024-03-06 06:11:38 -05:00
Nathan Douglas
a8ed657fb3 deb822_repository format 2024-03-06 06:11:38 -05:00
Jeff Geerling
961ed87fca PR #150 follow-up: Update yum package names. 2024-03-05 22:23:18 -06:00
Jeff Geerling
1ac324792d Fix docs for kubernetes apt variables. 2024-03-05 22:11:54 -06:00
Jeff Geerling
9dec31f3a6 Docs updates for previous commit. 2024-03-05 22:09:31 -06:00
Jeff Geerling
2bd76783dd PR #150 follow-up: Update yum repos to new format as well. 2024-03-05 22:09:22 -06:00
Jeff Geerling
928c143c93
Merge pull request #150 from rdxmb/master
update apt sources, add apt keyring gpg
2024-03-05 13:27:30 -06:00
Jeff Geerling
2f9f167dc3 Fixup CI library versions. 2024-01-24 22:11:56 -06:00
Jeff Geerling
d83e2adff2 Make local dev with molecule a little easier. 2024-01-24 21:53:36 -06:00
Marc Bihlmaier
8a50ed5641 remove trailing spaces 2023-11-07 15:22:11 +01:00
Marc Bihlmaier
78169d1895 remove trailing spaces 2023-11-07 15:18:40 +01:00
Marc Bihlmaier
0b73d150af simplify 2023-11-07 15:11:01 +01:00
Marc Bihlmaier
1eb8be8309 update apt sources, add apt keyring gpg 2023-11-07 04:00:59 +01:00
Jeff Geerling
25e782117c Stale bot is now Stale GitHub Action. 2023-07-10 17:48:09 -05:00
Jeff Geerling
aad2912d90 Remove official support for RHEL. Rocky/Alma/Stream support is best-effort. 2023-06-23 10:56:44 -05:00
15 changed files with 82 additions and 122 deletions

57
.github/stale.yml vendored
View File

@ -1,57 +0,0 @@
# Configuration for probot-stale - https://github.com/probot/stale
# Number of days of inactivity before an Issue or Pull Request becomes stale
daysUntilStale: 90
# Number of days of inactivity before an Issue or Pull Request with the stale label is closed.
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
daysUntilClose: 30
# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled)
onlyLabels: []
# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
exemptLabels:
- bug
- pinned
- security
- planned
# Set to true to ignore issues in a project (defaults to false)
exemptProjects: false
# Set to true to ignore issues in a milestone (defaults to false)
exemptMilestones: false
# Set to true to ignore issues with an assignee (defaults to false)
exemptAssignees: false
# Label to use when marking as stale
staleLabel: stale
# Limit the number of actions per hour, from 1-30. Default is 30
limitPerRun: 30
pulls:
markComment: |-
This pull request has been marked 'stale' due to lack of recent activity. If there is no further activity, the PR will be closed in another 30 days. Thank you for your contribution!
Please read [this blog post](https://www.jeffgeerling.com/blog/2020/enabling-stale-issue-bot-on-my-github-repositories) to see the reasons why I mark pull requests as stale.
unmarkComment: >-
This pull request is no longer marked for closure.
closeComment: >-
This pull request has been closed due to inactivity. If you feel this is in error, please reopen the pull request or file a new PR with the relevant details.
issues:
markComment: |-
This issue has been marked 'stale' due to lack of recent activity. If there is no further activity, the issue will be closed in another 30 days. Thank you for your contribution!
Please read [this blog post](https://www.jeffgeerling.com/blog/2020/enabling-stale-issue-bot-on-my-github-repositories) to see the reasons why I mark issues as stale.
unmarkComment: >-
This issue is no longer marked for closure.
closeComment: >-
This issue has been closed due to inactivity. If you feel this is in error, please reopen the issue or file a new issue with the relevant details.

View File

@ -19,12 +19,12 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Check out the codebase. - name: Check out the codebase.
uses: actions/checkout@v2 uses: actions/checkout@v4
with: with:
path: 'geerlingguy.kubernetes' path: 'geerlingguy.kubernetes'
- name: Set up Python 3. - name: Set up Python 3.
uses: actions/setup-python@v2 uses: actions/setup-python@v5
with: with:
python-version: '3.x' python-version: '3.x'
@ -41,7 +41,7 @@ jobs:
strategy: strategy:
matrix: matrix:
include: include:
- distro: rockylinux8 - distro: rockylinux9
playbook: converge.yml playbook: converge.yml
- distro: ubuntu2004 - distro: ubuntu2004
playbook: converge.yml playbook: converge.yml
@ -53,12 +53,12 @@ jobs:
steps: steps:
- name: Check out the codebase. - name: Check out the codebase.
uses: actions/checkout@v2 uses: actions/checkout@v4
with: with:
path: 'geerlingguy.kubernetes' path: 'geerlingguy.kubernetes'
- name: Set up Python 3. - name: Set up Python 3.
uses: actions/setup-python@v2 uses: actions/setup-python@v5
with: with:
python-version: '3.x' python-version: '3.x'

View File

@ -22,12 +22,12 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Check out the codebase. - name: Check out the codebase.
uses: actions/checkout@v2 uses: actions/checkout@v4
with: with:
path: 'geerlingguy.kubernetes' path: 'geerlingguy.kubernetes'
- name: Set up Python 3. - name: Set up Python 3.
uses: actions/setup-python@v2 uses: actions/setup-python@v5
with: with:
python-version: '3.x' python-version: '3.x'

34
.github/workflows/stale.yml vendored Normal file
View File

@ -0,0 +1,34 @@
---
name: Close inactive issues
'on':
schedule:
- cron: "55 3 * * 0" # semi-random time
jobs:
close-issues:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v8
with:
days-before-stale: 120
days-before-close: 60
exempt-issue-labels: bug,pinned,security,planned
exempt-pr-labels: bug,pinned,security,planned
stale-issue-label: "stale"
stale-pr-label: "stale"
stale-issue-message: |
This issue has been marked 'stale' due to lack of recent activity. If there is no further activity, the issue will be closed in another 30 days. Thank you for your contribution!
Please read [this blog post](https://www.jeffgeerling.com/blog/2020/enabling-stale-issue-bot-on-my-github-repositories) to see the reasons why I mark issues as stale.
close-issue-message: |
This issue has been closed due to inactivity. If you feel this is in error, please reopen the issue or file a new issue with the relevant details.
stale-pr-message: |
This pr has been marked 'stale' due to lack of recent activity. If there is no further activity, the issue will be closed in another 30 days. Thank you for your contribution!
Please read [this blog post](https://www.jeffgeerling.com/blog/2020/enabling-stale-issue-bot-on-my-github-repositories) to see the reasons why I mark issues as stale.
close-pr-message: |
This pr has been closed due to inactivity. If you feel this is in error, please reopen the issue or file a new issue with the relevant details.
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@ -7,5 +7,4 @@ rules:
level: warning level: warning
ignore: | ignore: |
.github/stale.yml .github/workflows/stale.yml
.travis.yml

View File

@ -1,6 +1,6 @@
# Ansible Role: Kubernetes # Ansible Role: Kubernetes
[![CI](https://github.com/geerlingguy/ansible-role-kubernetes/workflows/CI/badge.svg?event=push)](https://github.com/geerlingguy/ansible-role-kubernetes/actions?query=workflow%3ACI) [![CI](https://github.com/geerlingguy/ansible-role-kubernetes/actions/workflows/ci.yml/badge.svg)](https://github.com/geerlingguy/ansible-role-kubernetes/actions/workflows/ci.yml)
An Ansible Role that installs [Kubernetes](https://kubernetes.io) on Linux. An Ansible Role that installs [Kubernetes](https://kubernetes.io) on Linux.
@ -27,8 +27,8 @@ kubernetes_packages:
Kubernetes packages to be installed on the server. You can either provide a list of package names, or set `name` and `state` to have more control over whether the package is `present`, `absent`, `latest`, etc. Kubernetes packages to be installed on the server. You can either provide a list of package names, or set `name` and `state` to have more control over whether the package is `present`, `absent`, `latest`, etc.
```yaml ```yaml
kubernetes_version: '1.25' kubernetes_version: '1.32'
kubernetes_version_rhel_package: '1.25.1' kubernetes_version_rhel_package: '1.32'
``` ```
The minor version of Kubernetes to install. The plain `kubernetes_version` is used to pin an apt package version on Debian, and as the Kubernetes version passed into the `kubeadm init` command (see `kubernetes_version_kubeadm`). The `kubernetes_version_rhel_package` variable must be a specific Kubernetes release, and is used to pin the version on Red Hat / CentOS servers. The minor version of Kubernetes to install. The plain `kubernetes_version` is used to pin an apt package version on Debian, and as the Kubernetes version passed into the `kubeadm init` command (see `kubernetes_version_kubeadm`). The `kubernetes_version_rhel_package` variable must be a specific Kubernetes release, and is used to pin the version on Red Hat / CentOS servers.
@ -140,19 +140,15 @@ kubernetes_ignore_preflight_errors: 'all'
Options passed to `kubeadm init` when initializing the Kubernetes control plane. The `kubernetes_apiserver_advertise_address` defaults to `ansible_default_ipv4.address` if it's left empty. Options passed to `kubeadm init` when initializing the Kubernetes control plane. The `kubernetes_apiserver_advertise_address` defaults to `ansible_default_ipv4.address` if it's left empty.
```yaml ```yaml
kubernetes_apt_release_channel: main kubernetes_apt_release_channel: "stable"
kubernetes_apt_repository: "deb http://apt.kubernetes.io/ kubernetes-xenial {{ kubernetes_apt_release_channel }}" kubernetes_apt_repository: "https://pkgs.k8s.io/core:/{{ kubernetes_apt_release_channel }}:/v{{ kubernetes_version }}/deb/"
kubernetes_apt_ignore_key_error: false
``` ```
Apt repository options for Kubernetes installation. Apt repository options for Kubernetes installation.
```yaml ```yaml
kubernetes_yum_arch: x86_64 kubernetes_yum_base_url: "https://pkgs.k8s.io/core:/stable:/v{{ kubernetes_version }}/rpm/"
kubernetes_yum_base_url: "https://packages.cloud.google.com/yum/repos/kubernetes-el7-{{ kubernetes_yum_arch }}" kubernetes_yum_gpg_key: "https://pkgs.k8s.io/core:/stable:/v{{ kubernetes_version }}/rpm/repodata/repomd.xml.key"
kubernetes_yum_gpg_key:
- https://packages.cloud.google.com/yum/doc/yum-key.gpg
- https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
kubernetes_yum_gpg_check: true kubernetes_yum_gpg_check: true
kubernetes_yum_repo_gpg_check: true kubernetes_yum_repo_gpg_check: true
``` ```

View File

@ -9,8 +9,8 @@ kubernetes_packages:
- name: kubernetes-cni - name: kubernetes-cni
state: present state: present
kubernetes_version: '1.25' kubernetes_version: '1.32'
kubernetes_version_rhel_package: '1.25.1' kubernetes_version_rhel_package: '1.32'
kubernetes_role: control_plane kubernetes_role: control_plane
@ -29,6 +29,11 @@ kubernetes_pod_network:
# cidr: '192.168.0.0/16' # cidr: '192.168.0.0/16'
kubernetes_kubeadm_kubelet_config_file_path: '/etc/kubernetes/kubeadm-kubelet-config.yaml' kubernetes_kubeadm_kubelet_config_file_path: '/etc/kubernetes/kubeadm-kubelet-config.yaml'
kubernetes_config_kubeadm_apiversion: v1beta3
kubenetes_config_kubelet_apiversion: v1beta1
kubernetes_config_kubeproxy_apiversion: v1alpha1
kubernetes_config_kubelet_configuration: kubernetes_config_kubelet_configuration:
cgroupDriver: "systemd" cgroupDriver: "systemd"
@ -51,17 +56,11 @@ kubernetes_apiserver_advertise_address: ''
kubernetes_version_kubeadm: 'stable-{{ kubernetes_version }}' kubernetes_version_kubeadm: 'stable-{{ kubernetes_version }}'
kubernetes_ignore_preflight_errors: 'all' kubernetes_ignore_preflight_errors: 'all'
kubernetes_apt_release_channel: main kubernetes_apt_release_channel: "stable"
# Note that xenial repo is used for all Debian derivatives at this time. kubernetes_apt_repository: "https://pkgs.k8s.io/core:/{{ kubernetes_apt_release_channel }}:/v{{ kubernetes_version }}/deb/"
kubernetes_apt_repository: "deb http://apt.kubernetes.io/ kubernetes-xenial {{ kubernetes_apt_release_channel }}"
kubernetes_apt_ignore_key_error: false
kubernetes_yum_arch: '$basearch'
kubernetes_yum_base_url: "https://packages.cloud.google.com/yum/repos/kubernetes-el7-{{ kubernetes_yum_arch }}"
kubernetes_yum_gpg_key:
- https://packages.cloud.google.com/yum/doc/yum-key.gpg
- https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
kubernetes_yum_base_url: "https://pkgs.k8s.io/core:/stable:/v{{ kubernetes_version }}/rpm/"
kubernetes_yum_gpg_key: "https://pkgs.k8s.io/core:/stable:/v{{ kubernetes_version }}/rpm/repodata/repomd.xml.key"
kubernetes_yum_gpg_check: true kubernetes_yum_gpg_check: true
kubernetes_yum_repo_gpg_check: true kubernetes_yum_repo_gpg_check: true

View File

@ -9,11 +9,6 @@ galaxy_info:
license: "license (BSD, MIT)" license: "license (BSD, MIT)"
min_ansible_version: 2.10 min_ansible_version: 2.10
platforms: platforms:
- name: EL
versions:
- 7
- 8
- 9
- name: Debian - name: Debian
versions: versions:
- stretch - stretch

View File

@ -1,7 +1,7 @@
--- ---
- name: Converge - name: Converge
hosts: all hosts: all
become: true #become: true
vars: vars:
kubernetes_pod_network: kubernetes_pod_network:

View File

@ -1,7 +1,7 @@
--- ---
- name: Converge - name: Converge
hosts: all hosts: all
become: true #become: true
vars: vars:
# Allow swap in test environments (hard to control in some envs). # Allow swap in test environments (hard to control in some envs).

View File

@ -2,11 +2,13 @@
role_name_check: 1 role_name_check: 1
dependency: dependency:
name: galaxy name: galaxy
options:
ignore-errors: true
driver: driver:
name: docker name: docker
platforms: platforms:
- name: instance - name: instance
image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest" image: "geerlingguy/docker-${MOLECULE_DISTRO:-rockylinux9}-ansible:latest"
command: ${MOLECULE_DOCKER_COMMAND:-""} command: ${MOLECULE_DOCKER_COMMAND:-""}
volumes: volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:rw - /sys/fs/cgroup:/sys/fs/cgroup:rw

View File

@ -4,20 +4,22 @@
name: name:
- apt-transport-https - apt-transport-https
- ca-certificates - ca-certificates
- python3-debian
state: present state: present
- name: Add Kubernetes apt key.
apt_key:
url: https://packages.cloud.google.com/apt/doc/apt-key.gpg
state: present
register: add_repository_key
ignore_errors: "{{ kubernetes_apt_ignore_key_error }}"
- name: Add Kubernetes repository. - name: Add Kubernetes repository.
apt_repository: deb822_repository:
repo: "{{ kubernetes_apt_repository }}" name: kubernetes
state: present types: deb
uris: "{{ kubernetes_apt_repository }}"
suites: /
signed_by: "{{ kubernetes_apt_repository }}/Release.key"
register: kubernetes_repository
- name: Update Apt cache.
apt:
update_cache: true update_cache: true
when: kubernetes_repository.changed
- name: Add Kubernetes apt preferences file to pin a version. - name: Add Kubernetes apt preferences file to pin a version.
template: template:

View File

@ -11,10 +11,9 @@
- name: Add Kubernetes GPG keys. - name: Add Kubernetes GPG keys.
rpm_key: rpm_key:
key: "{{ item }}" key: "{{ kubernetes_yum_gpg_key }}"
state: present state: present
register: kubernetes_rpm_key register: kubernetes_rpm_key
with_items: "{{ kubernetes_yum_gpg_key }}"
- name: Make cache if Kubernetes GPG key changed. - name: Make cache if Kubernetes GPG key changed.
command: "yum -q makecache -y --disablerepo='*' --enablerepo='kubernetes'" command: "yum -q makecache -y --disablerepo='*' --enablerepo='kubernetes'"

View File

@ -1,20 +1,20 @@
--- ---
apiVersion: kubeadm.k8s.io/v1beta3 apiVersion: kubeadm.k8s.io/{{ kubernetes_config_kubeadm_apiversion }}
kind: InitConfiguration kind: InitConfiguration
{{ kubernetes_config_init_configuration | to_nice_yaml }} {{ kubernetes_config_init_configuration | to_nice_yaml }}
--- ---
apiVersion: kubeadm.k8s.io/v1beta3 apiVersion: kubeadm.k8s.io/{{ kubernetes_config_kubeadm_apiversion }}
kind: ClusterConfiguration kind: ClusterConfiguration
{{ kubernetes_config_cluster_configuration | to_nice_yaml }} {{ kubernetes_config_cluster_configuration | to_nice_yaml }}
{% if kubernetes_config_kubelet_configuration|length > 0 %} {% if kubernetes_config_kubelet_configuration|length > 0 %}
--- ---
apiVersion: kubelet.config.k8s.io/v1beta1 apiVersion: kubelet.config.k8s.io/{{ kubenetes_config_kubelet_apiversion }}
kind: KubeletConfiguration kind: KubeletConfiguration
{{ kubernetes_config_kubelet_configuration | to_nice_yaml }} {{ kubernetes_config_kubelet_configuration | to_nice_yaml }}
{% endif %} {% endif %}
{% if kubernetes_config_kube_proxy_configuration|length > 0 %} {% if kubernetes_config_kube_proxy_configuration|length > 0 %}
--- ---
apiVersion: kubeproxy.config.k8s.io/v1alpha1 apiVersion: kubeproxy.config.k8s.io/{{ kubernetes_config_kubeproxy_apiversion }}
kind: KubeProxyConfiguration kind: KubeProxyConfiguration
{{ kubernetes_config_kube_proxy_configuration | to_nice_yaml }} {{ kubernetes_config_kube_proxy_configuration | to_nice_yaml }}
{% endif %} {% endif %}

View File

@ -1,12 +1,3 @@
--- ---
procps_package: procps-ng procps_package: procps-ng
kubelet_environment_file_path: /etc/sysconfig/kubelet kubelet_environment_file_path: /etc/sysconfig/kubelet
kubernetes_packages:
- name: kubelet-{{ kubernetes_version_rhel_package }}-0
state: present
- name: kubectl-{{ kubernetes_version_rhel_package }}-0
state: present
- name: kubeadm-{{ kubernetes_version_rhel_package }}-0
state: present
- name: kubernetes-cni
state: present