Compare commits

...

35 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
Jeff Geerling
4271daa2d7 Fix Molecule CI workflow since docker plugin has moved. 2023-06-21 22:21:02 -05:00
Jeff Geerling
82caba3ee1
Merge pull request #148 from speechmatics/fix_networking_retries
add missing 'until' condition in control plane setup
2023-06-21 22:20:54 -05:00
Waldek Maleska
3355986a18
increase networking tasks timeouts 2023-06-21 09:18:21 +01:00
Waldek Maleska
0627acda44
add missing 'until' condition in control plane setup 2023-06-20 17:34:33 +01:00
Jeff Geerling
fc69029f16
Merge pull request #144 from rfranks-securenet/retry-networking-setup
Added retry to networking setup
2023-04-20 17:10:51 -05:00
Richard Franks
270d38ea72 Added retry to networking setup for when the kubelet isn't quite ready yet 2023-04-20 10:54:44 +01:00
16 changed files with 92 additions and 123 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
steps:
- name: Check out the codebase.
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
path: 'geerlingguy.kubernetes'
- name: Set up Python 3.
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: '3.x'
@ -41,7 +41,7 @@ jobs:
strategy:
matrix:
include:
- distro: rockylinux8
- distro: rockylinux9
playbook: converge.yml
- distro: ubuntu2004
playbook: converge.yml
@ -53,17 +53,17 @@ jobs:
steps:
- name: Check out the codebase.
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
path: 'geerlingguy.kubernetes'
- name: Set up Python 3.
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install test dependencies.
run: pip3 install ansible molecule[docker] docker
run: pip3 install ansible molecule molecule-plugins[docker] docker
- name: Run Molecule tests.
run: molecule test

View File

@ -22,12 +22,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out the codebase.
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
path: 'geerlingguy.kubernetes'
- name: Set up Python 3.
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
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
ignore: |
.github/stale.yml
.travis.yml
.github/workflows/stale.yml

View File

@ -1,6 +1,6 @@
# 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.
@ -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.
```yaml
kubernetes_version: '1.25'
kubernetes_version_rhel_package: '1.25.1'
kubernetes_version: '1.32'
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.
@ -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.
```yaml
kubernetes_apt_release_channel: main
kubernetes_apt_repository: "deb http://apt.kubernetes.io/ kubernetes-xenial {{ kubernetes_apt_release_channel }}"
kubernetes_apt_ignore_key_error: false
kubernetes_apt_release_channel: "stable"
kubernetes_apt_repository: "https://pkgs.k8s.io/core:/{{ kubernetes_apt_release_channel }}:/v{{ kubernetes_version }}/deb/"
```
Apt repository options for Kubernetes installation.
```yaml
kubernetes_yum_arch: x86_64
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_repo_gpg_check: true
```

View File

@ -9,8 +9,8 @@ kubernetes_packages:
- name: kubernetes-cni
state: present
kubernetes_version: '1.25'
kubernetes_version_rhel_package: '1.25.1'
kubernetes_version: '1.32'
kubernetes_version_rhel_package: '1.32'
kubernetes_role: control_plane
@ -29,6 +29,11 @@ kubernetes_pod_network:
# cidr: '192.168.0.0/16'
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:
cgroupDriver: "systemd"
@ -51,17 +56,11 @@ kubernetes_apiserver_advertise_address: ''
kubernetes_version_kubeadm: 'stable-{{ kubernetes_version }}'
kubernetes_ignore_preflight_errors: 'all'
kubernetes_apt_release_channel: main
# Note that xenial repo is used for all Debian derivatives at this time.
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_apt_release_channel: "stable"
kubernetes_apt_repository: "https://pkgs.k8s.io/core:/{{ kubernetes_apt_release_channel }}:/v{{ kubernetes_version }}/deb/"
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_repo_gpg_check: true

View File

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

View File

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

View File

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

View File

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

View File

@ -50,18 +50,27 @@
register: flannel_result
changed_when: "'created' in flannel_result.stdout"
when: kubernetes_pod_network.cni == 'flannel'
until: flannel_result is not failed
retries: 12
delay: 5
- name: Configure Calico networking.
command: "kubectl apply -f {{ kubernetes_calico_manifest_file }}"
register: calico_result
changed_when: "'created' in calico_result.stdout"
when: kubernetes_pod_network.cni == 'calico'
until: calico_result is not failed
retries: 12
delay: 5
- name: Get Kubernetes version for Weave installation.
shell: kubectl version | base64 | tr -d '\n'
changed_when: false
register: kubectl_version
when: kubernetes_pod_network.cni == 'weave'
until: kubectl_version is not failed
retries: 12
delay: 5
- name: Configure Weave networking.
command: "{{ item }}"

View File

@ -4,20 +4,22 @@
name:
- apt-transport-https
- ca-certificates
- python3-debian
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.
apt_repository:
repo: "{{ kubernetes_apt_repository }}"
state: present
deb822_repository:
name: kubernetes
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
when: kubernetes_repository.changed
- name: Add Kubernetes apt preferences file to pin a version.
template:

View File

@ -11,10 +11,9 @@
- name: Add Kubernetes GPG keys.
rpm_key:
key: "{{ item }}"
key: "{{ kubernetes_yum_gpg_key }}"
state: present
register: kubernetes_rpm_key
with_items: "{{ kubernetes_yum_gpg_key }}"
- name: Make cache if Kubernetes GPG key changed.
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
{{ kubernetes_config_init_configuration | to_nice_yaml }}
---
apiVersion: kubeadm.k8s.io/v1beta3
apiVersion: kubeadm.k8s.io/{{ kubernetes_config_kubeadm_apiversion }}
kind: ClusterConfiguration
{{ kubernetes_config_cluster_configuration | to_nice_yaml }}
{% if kubernetes_config_kubelet_configuration|length > 0 %}
---
apiVersion: kubelet.config.k8s.io/v1beta1
apiVersion: kubelet.config.k8s.io/{{ kubenetes_config_kubelet_apiversion }}
kind: KubeletConfiguration
{{ kubernetes_config_kubelet_configuration | to_nice_yaml }}
{% endif %}
{% 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
{{ kubernetes_config_kube_proxy_configuration | to_nice_yaml }}
{% endif %}

View File

@ -1,12 +1,3 @@
---
procps_package: procps-ng
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