summaryrefslogtreecommitdiffstats
path: root/ansible/roles/rke
diff options
context:
space:
mode:
Diffstat (limited to 'ansible/roles/rke')
-rw-r--r--ansible/roles/rke/defaults/main.yml4
l---------ansible/roles/rke/molecule/default/group_vars1
-rw-r--r--ansible/roles/rke/molecule/default/molecule.yml21
-rw-r--r--ansible/roles/rke/molecule/default/playbook.yml7
-rw-r--r--ansible/roles/rke/molecule/default/tests/test_infrastructure.py2
l---------ansible/roles/rke/molecule/etcd_storage/group_vars1
-rw-r--r--ansible/roles/rke/molecule/etcd_storage/molecule.yml74
-rw-r--r--ansible/roles/rke/tasks/rke_node.yml11
-rw-r--r--ansible/roles/rke/templates/cluster.yml.j27
-rw-r--r--ansible/roles/rke/templates/kubelet-static-config.yml.j23
10 files changed, 107 insertions, 24 deletions
diff --git a/ansible/roles/rke/defaults/main.yml b/ansible/roles/rke/defaults/main.yml
index 71c0c622..1077ee80 100644
--- a/ansible/roles/rke/defaults/main.yml
+++ b/ansible/roles/rke/defaults/main.yml
@@ -3,6 +3,10 @@ rke_binary: rke_linux-amd64
rke_username: rke
rke_bin_dir: /usr/local/bin
kube_config_dir: "{{ ansible_env.HOME }}/.kube"
+kubernetes_config_dir: "/etc/kubernetes"
+kubelet:
+ static_config: "kubelet-static-config.yml"
+ runtime_request_timeout: "2m0s"
cluster_config_dir: "{{ app_data_path }}/cluster"
# Whether dashboard is exposed.
rke_dashboard_exposed: true
diff --git a/ansible/roles/rke/molecule/default/group_vars b/ansible/roles/rke/molecule/default/group_vars
new file mode 120000
index 00000000..e04e088f
--- /dev/null
+++ b/ansible/roles/rke/molecule/default/group_vars
@@ -0,0 +1 @@
+../../../../group_vars/ \ No newline at end of file
diff --git a/ansible/roles/rke/molecule/default/molecule.yml b/ansible/roles/rke/molecule/default/molecule.yml
index 6ae613a9..3078c115 100644
--- a/ansible/roles/rke/molecule/default/molecule.yml
+++ b/ansible/roles/rke/molecule/default/molecule.yml
@@ -44,32 +44,11 @@ platforms:
- name: rke
purge_networks: true
- - name: kubernetes-node-2
- image: molecule-${PREBUILD_PLATFORM_DISTRO:-centos}:${PREBUILD_DISTRO_VERSION:-centos7.6}
- pre_build_image: true
- privileged: true
- override_command: false
- restart_policy: unless-stopped
- env:
- container: docker
- volumes:
- - /var/lib/kubelet
- - /var/lib/docker
- groups:
- - kubernetes
- - kubernetes-node
- networks:
- - name: rke
- purge_networks: true
-
provisioner:
name: ansible
env:
ANSIBLE_ROLES_PATH: ../../../../test/roles
ANSIBLE_LIBRARY: ../../../../library
- inventory:
- links:
- group_vars: ../../../../group_vars
options:
e: "app_data_path=/opt/onap"
lint:
diff --git a/ansible/roles/rke/molecule/default/playbook.yml b/ansible/roles/rke/molecule/default/playbook.yml
index 33345ed9..8db7aef5 100644
--- a/ansible/roles/rke/molecule/default/playbook.yml
+++ b/ansible/roles/rke/molecule/default/playbook.yml
@@ -6,6 +6,13 @@
set_fact:
cluster_ip: "{{ ansible_default_ipv4.address }}"
+- name: Configure etcd (RKE)
+ hosts: kubernetes-etcd
+ roles:
+ - role: rke
+ vars:
+ mode: etcd
+
- name: Configure kubernetes cluster (RKE)
hosts: infrastructure
roles:
diff --git a/ansible/roles/rke/molecule/default/tests/test_infrastructure.py b/ansible/roles/rke/molecule/default/tests/test_infrastructure.py
index 9ba11d6e..731f38bf 100644
--- a/ansible/roles/rke/molecule/default/tests/test_infrastructure.py
+++ b/ansible/roles/rke/molecule/default/tests/test_infrastructure.py
@@ -52,5 +52,5 @@ def test_pods_ready(host):
'metadata']['ownerReferences'][0]['kind'] == 'Job':
continue
assert host.run(
- 'kubectl wait --timeout=120s --for=condition=' + condition + ' -n ' +
+ 'kubectl wait --timeout=240s --for=condition=' + condition + ' -n ' +
namespace + ' pods/' + podname).rc == 0
diff --git a/ansible/roles/rke/molecule/etcd_storage/group_vars b/ansible/roles/rke/molecule/etcd_storage/group_vars
new file mode 120000
index 00000000..e04e088f
--- /dev/null
+++ b/ansible/roles/rke/molecule/etcd_storage/group_vars
@@ -0,0 +1 @@
+../../../../group_vars/ \ No newline at end of file
diff --git a/ansible/roles/rke/molecule/etcd_storage/molecule.yml b/ansible/roles/rke/molecule/etcd_storage/molecule.yml
new file mode 100644
index 00000000..3c915284
--- /dev/null
+++ b/ansible/roles/rke/molecule/etcd_storage/molecule.yml
@@ -0,0 +1,74 @@
+---
+dependency:
+ name: galaxy
+driver:
+ name: docker
+lint:
+ name: yamllint
+platforms:
+ - name: infrastructure-server
+ image: molecule-${PREBUILD_PLATFORM_DISTRO:-centos}:${PREBUILD_DISTRO_VERSION:-centos7.6}
+ pre_build_image: true
+ privileged: true
+ override_command: false
+ restart_policy: unless-stopped
+ volumes:
+ - /var/lib/kubelet
+ - /var/lib/docker
+ env:
+ container: docker
+ groups:
+ - infrastructure
+ - kubernetes-etcd
+ - kubernetes-control-plane
+ - kubernetes
+ networks:
+ - name: rke
+ purge_networks: true
+
+ - name: kubernetes-node-1
+ image: molecule-${PREBUILD_PLATFORM_DISTRO:-centos}:${PREBUILD_DISTRO_VERSION:-centos7.6}
+ pre_build_image: true
+ privileged: true
+ override_command: false
+ restart_policy: unless-stopped
+ env:
+ container: docker
+ volumes:
+ - /var/lib/kubelet
+ - /var/lib/docker
+ groups:
+ - kubernetes
+ - kubernetes-node
+ networks:
+ - name: rke
+ purge_networks: true
+
+provisioner:
+ name: ansible
+ env:
+ ANSIBLE_ROLES_PATH: ../../../../test/roles
+ ANSIBLE_LIBRARY: ../../../../library
+ inventory:
+ group_vars:
+ all:
+ rke_etcd:
+ enabled_custom_etcd_storage: false
+ storage_path: /var/lib/etcd-custom
+ storage_mountpoint: /var/lib/rancher/etcd-custom
+ enabled_unsafe_volatile_storage: true
+ tmpfs_size: 5G
+ playbooks:
+ prepare: ../default/prepare.yml
+ converge: ../default/playbook.yml
+ destroy: ../default/destroy.yml
+ options:
+ e: "app_data_path=/opt/onap"
+ lint:
+ name: ansible-lint
+scenario:
+ name: etcd_storage
+verifier:
+ name: testinfra
+ lint:
+ name: flake8
diff --git a/ansible/roles/rke/tasks/rke_node.yml b/ansible/roles/rke/tasks/rke_node.yml
index 9ec9f073..2f59b18a 100644
--- a/ansible/roles/rke/tasks/rke_node.yml
+++ b/ansible/roles/rke/tasks/rke_node.yml
@@ -9,3 +9,14 @@
authorized_key:
user: "{{ rke_username }}"
key: "{{ hostvars[groups['infrastructure'][0]].cluster_public_key }}"
+
+- name: "Ensure that '{{ kubernetes_config_dir }}' is present"
+ file:
+ path: "{{ kubernetes_config_dir }}"
+ state: directory
+ mode: 0755
+
+- name: Prepare kubelet static config
+ template:
+ src: "kubelet-static-config.yml.j2"
+ dest: "{{ kubernetes_config_dir }}/{{ kubelet.static_config }}"
diff --git a/ansible/roles/rke/templates/cluster.yml.j2 b/ansible/roles/rke/templates/cluster.yml.j2
index 656c1136..53e9a09a 100644
--- a/ansible/roles/rke/templates/cluster.yml.j2
+++ b/ansible/roles/rke/templates/cluster.yml.j2
@@ -67,8 +67,11 @@ services:
extra_env: []
kubelet:
image: ""
- extra_args: {}
- extra_binds: []
+ extra_args:
+ dynamic-config-dir: "/kubelet-dynamic-config-dir"
+ config: "/kubelet-static-config.yml"
+ extra_binds:
+ - "{{ kubernetes_config_dir }}/{{ kubelet.static_config }}:/kubelet-static-config.yml:ro"
extra_env: []
cluster_domain: cluster.local
infra_container_image: ""
diff --git a/ansible/roles/rke/templates/kubelet-static-config.yml.j2 b/ansible/roles/rke/templates/kubelet-static-config.yml.j2
new file mode 100644
index 00000000..71c2854d
--- /dev/null
+++ b/ansible/roles/rke/templates/kubelet-static-config.yml.j2
@@ -0,0 +1,3 @@
+apiVersion: kubelet.config.k8s.io/v1beta1
+kind: KubeletConfiguration
+runtimeRequestTimeout: "{{ kubelet.runtime_request_timeout }}"