Skip to content

Commit fad8281

Browse files
committed
Issue geerlingguy#18: Attempt to fix version pinning issues on RedHat and Debian.
1 parent 0bb0604 commit fad8281

File tree

8 files changed

+43
-3
lines changed

8 files changed

+43
-3
lines changed

.travis.yml

+2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ env:
99
- MOLECULE_DISTRO: centos7
1010
MOLECULE_DOCKER_COMMAND: /usr/lib/systemd/systemd
1111
- MOLECULE_DISTRO: ubuntu1604
12+
MOLECULE_DOCKER_COMMAND: /lib/systemd/systemd
1213
- MOLECULE_DISTRO: debian9
14+
MOLECULE_DOCKER_COMMAND: /lib/systemd/systemd
1315

1416
install:
1517
# Install test dependencies.

README.md

+8-1
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,20 @@ Available variables are listed below, along with default values (see `defaults/m
1515
kubernetes_packages:
1616
- name: kubelet
1717
state: present
18+
- name: kubectl
19+
state: present
1820
- name: kubeadm
1921
state: present
2022
- name: kubernetes-cni
2123
state: present
2224

2325
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.
2426

27+
kubernetes_version: '1.11'
28+
kubernetes_version_rhel_package: '1.11.3'
29+
30+
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.
31+
2532
kubernetes_role: master
2633

2734
Whether the particular server will serve as a Kubernetes `master` (default) or `node`. The master will have `kubeadm init` run on it to intialize the entire K8s control plane, while `node`s will have `kubeadm join` run on them to join them to the `master`.
@@ -45,7 +52,7 @@ Whether to show extra debug info in Ansible's logs (e.g. the output of the `kube
4552

4653
kubernetes_pod_network_cidr: '10.244.0.0/16'
4754
kubernetes_apiserver_advertise_address: ''
48-
kubernetes_version: 'stable-1.11'
55+
kubernetes_version_kubeadm: 'stable-{{ kubernetes_version }}'
4956
kubernetes_ignore_preflight_errors: 'all'
5057

5158
Options passed to `kubeadm init` when initializing the Kubernetes master. The `apiserver_advertise_address` defaults to `ansible_default_ipv4.address` if it's left empty.

defaults/main.yml

+4-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ kubernetes_packages:
99
- name: kubernetes-cni
1010
state: present
1111

12+
kubernetes_version: '1.11'
13+
kubernetes_version_rhel_package: '1.11.3'
14+
1215
kubernetes_role: master
1316

1417
kubernetes_kubelet_extra_args: ""
@@ -19,7 +22,7 @@ kuberenetes_debug: false
1922

2023
kubernetes_pod_network_cidr: '10.244.0.0/16'
2124
kubernetes_apiserver_advertise_address: ''
22-
kubernetes_version: 'stable-1.11'
25+
kubernetes_version_kubeadm: 'stable-{{ kubernetes_version }}'
2326
kubernetes_ignore_preflight_errors: 'all'
2427

2528
kubernetes_apt_release_channel: main

molecule/default/molecule.yml

+3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ platforms:
1111
- name: instance
1212
image: geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible
1313
command: ${MOLECULE_DOCKER_COMMAND:-"sleep infinity"}
14+
volumes:
15+
- /sys/fs/cgroup:/sys/fs/cgroup:ro
16+
- /var/lib/docker
1417
privileged: true
1518
pre_build_image: true
1619
provisioner:

tasks/master-setup.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
kubeadm init
55
--pod-network-cidr={{ kubernetes_pod_network_cidr }}
66
--apiserver-advertise-address={{ kubernetes_apiserver_advertise_address | default(ansible_default_ipv4.address) }}
7-
--kubernetes-version {{ kubernetes_version }}
7+
--kubernetes-version {{ kubernetes_version_kubeadm }}
88
--ignore-preflight-errors={{ kubernetes_ignore_preflight_errors }}
99
register: kubeadmin_init
1010
failed_when: false

tasks/setup-Debian.yml

+5
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,8 @@
1818
repo: "{{ kubernetes_apt_repository }}"
1919
state: present
2020
update_cache: false
21+
22+
- name: Add Kubernetes apt preferences file to pin a version.
23+
template:
24+
src: apt-preferences-kubernetes.j2
25+
dest: /etc/apt/preferences.d/kubernetes
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Package: kubectl
2+
Pin: version {{ kubernetes_version }}.*
3+
Pin-Priority: 1000
4+
5+
Package: kubeadm
6+
Pin: version {{ kubernetes_version }}.*
7+
Pin-Priority: 1000
8+
9+
Package: kubelet
10+
Pin: version {{ kubernetes_version }}.*
11+
Pin-Priority: 1000

vars/RedHat.yml

+9
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,11 @@
11
---
22
kubelet_environment_file_path: /etc/sysconfig/kubelet
3+
kubernetes_packages:
4+
- name: kubelet-{{ kubernetes_version_rhel_package }}-0
5+
state: present
6+
- name: kubectl-{{ kubernetes_version_rhel_package }}-0
7+
state: present
8+
- name: kubeadm-{{ kubernetes_version_rhel_package }}-0
9+
state: present
10+
- name: kubernetes-cni
11+
state: present

0 commit comments

Comments
 (0)