noheat: deploy kubernetes 07/123007/3
authorMaciej Wereski <m.wereski@partner.samsung.com>
Wed, 28 Jul 2021 13:31:56 +0000 (13:31 +0000)
committerMorgan Richomme <morgan.richomme@orange.com>
Tue, 24 Aug 2021 13:41:02 +0000 (13:41 +0000)
Issue-ID: INT-1601
Signed-off-by: Maciej Wereski <m.wereski@partner.samsung.com>
Change-Id: Ia9e567b867e6cd0f7988be7c53c034f3335f0320

deployment/noheat/cluster-rke/ansible/create.yml
deployment/noheat/cluster-rke/ansible/roles/setup_k8s/defaults/main.yml [new file with mode: 0644]
deployment/noheat/cluster-rke/ansible/roles/setup_k8s/tasks/main.yml [new file with mode: 0644]
deployment/noheat/cluster-rke/ansible/roles/setup_k8s/templates/cluster.yml.j2 [new file with mode: 0644]

index 00e5f23..49a48d4 100644 (file)
@@ -25,3 +25,7 @@
   hosts: control,workers
   roles:
     - role: setup_docker
+- name: Deploy k8s
+  hosts: operator0
+  roles:
+    - role: setup_k8s
diff --git a/deployment/noheat/cluster-rke/ansible/roles/setup_k8s/defaults/main.yml b/deployment/noheat/cluster-rke/ansible/roles/setup_k8s/defaults/main.yml
new file mode 100644 (file)
index 0000000..527238d
--- /dev/null
@@ -0,0 +1,3 @@
+---
+rke_version: "1.2.11"
+k8s_version: "v1.19.13-rancher1-1"
diff --git a/deployment/noheat/cluster-rke/ansible/roles/setup_k8s/tasks/main.yml b/deployment/noheat/cluster-rke/ansible/roles/setup_k8s/tasks/main.yml
new file mode 100644 (file)
index 0000000..53d7b81
--- /dev/null
@@ -0,0 +1,33 @@
+- name: Download RKE
+  get_url:
+    url: "https://github.com/rancher/rke/releases/download/v{{ rke_version }}/rke_linux-amd64"
+    dest: "{{ ansible_user_dir }}/rke"
+    mode: '0700'
+
+- name: Prepare RKE configuration
+  template:
+    src: "cluster.yml.j2"
+    dest: "{{ ansible_user_dir }}/cluster.yml"
+    mode: '0400'
+
+- name: Run RKE
+  command:
+    cmd: "./rke up"
+    chdir: "{{ ansible_user_dir }}"
+    creates: "{{ ansible_user_dir }}/kube_config_cluster.yml"
+
+- name: Create k8s directory
+  file:
+    name: "{{ ansible_user_dir }}/.kube"
+    state: directory
+    mode: '0700'
+
+- name: Set k8s config
+  command: "mv {{ ansible_user_dir }}/kube_config_cluster.yml {{ ansible_user_dir }}/.kube/config"
+
+- name: Get kubectl
+  become: yes
+  get_url:
+    url: "https://dl.k8s.io/release/{{ k8s_version.split('-')[0] }}/bin/linux/amd64/kubectl"
+    dest: "/usr/local/bin/"
+    mode: '0555'
diff --git a/deployment/noheat/cluster-rke/ansible/roles/setup_k8s/templates/cluster.yml.j2 b/deployment/noheat/cluster-rke/ansible/roles/setup_k8s/templates/cluster.yml.j2
new file mode 100644 (file)
index 0000000..9928052
--- /dev/null
@@ -0,0 +1,52 @@
+# An example of an HA Kubernetes cluster for ONAP
+nodes:
+{% for host in (groups['control'] | list() ) %}
+- address: "{{ hostvars[host]['ansible_host'] }}"
+  port: "22"
+  role:
+  - controlplane
+  - etcd
+  hostname_override: "onap-control-{{ loop.index }}"
+  user: {{ ansible_user_id }}
+  ssh_key_path: "{{ ansible_ssh_private_key_file }}"
+{% endfor %}
+{% for host in (groups['workers'] | list()) %}
+- address: "{{ hostvars[host]['ansible_host'] }}"
+  port: "22"
+  role:
+  - worker
+  hostname_override: "onap-k8s-{{ loop.index }}"
+  user: {{ ansible_user_id }}
+  ssh_key_path: "{{ ansible_ssh_private_key_file }}"
+{% endfor %}
+services:
+  kube-api:
+    service_cluster_ip_range: 10.43.0.0/16
+    pod_security_policy: false
+    always_pull_images: false
+  kube-controller:
+    cluster_cidr: 10.42.0.0/16
+    service_cluster_ip_range: 10.43.0.0/16
+  kubelet:
+    cluster_domain: cluster.local
+    cluster_dns_server: 10.43.0.10
+    fail_swap_on: false
+network:
+  plugin: canal
+authentication:
+  strategy: x509
+ssh_key_path: "{{ ansible_ssh_private_key_file }}"
+ssh_agent_auth: false
+authorization:
+  mode: rbac
+ignore_docker_version: false
+kubernetes_version: "{{ k8s_version }}"
+private_registries:
+- url: nexus3.onap.org:10001
+  user: docker
+  password: docker
+  is_default: true
+cluster_name: "onap"
+restore:
+  restore: false
+  snapshot_name: ""