4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
16 - name: concat certs for apiserver part 1
17 shell: "cat {{ caas.cert_path }}/apiserver{{ nodeindex }}.pem > {{ caas.cert_path }}/tls-cert.pem"
20 - name: concat certs for apiserver part 2
21 shell: "cat {{ caas.cert_path }}/ca.pem >> {{ caas.cert_path }}/tls-cert.pem"
24 - name: reducing permission of key file and cert file
26 path: "{{ caas.cert_path }}/tls-cert.pem"
30 - name: adding default acl read to {{ users.admin_user_name }} to {{ caas.cert_path }}/tls-cert.epm
32 name: "{{ caas.cert_path }}/tls-cert.pem"
33 entity: "{{ users.admin_user_name }}"
39 - name: adding default acl read to kube to {{ cert_path }}/tls-cert.epm
41 name: "{{ caas.cert_path }}/tls-cert.pem"
48 - name: set permission ca.pem and ca-key.pem
56 - "/etc/openssl/ca.pem"
57 - "/etc/openssl/ca-key.pem"
60 - name: create directory for kubernetes_audit_log
62 path: /var/log/audit/kube_apiserver
64 owner: "{{ caas.uid.kube }}"
65 group: "{{ caas.uid.kube }}"
70 - name: create directory for audit policy
72 path: "{{ caas.caas_policy_directory }}"
77 - name: template audit policy
79 src: audit-policy.yaml
80 dest: "{{ caas.caas_policy_directory }}/audit-policy.yaml"
84 - name: set permission to audit-policy.yaml
86 name: "{{ caas.caas_policy_directory }}/audit-policy.yaml"
92 - "{{ caas.uid.kube }}"
93 - "{{ users.admin_user_name }}"
96 - name: Ask the audit log disc size
97 shell: df -BM --output=size,target | grep audit | awk '{print $1}' | tr -d 'M'
98 register: audit_disc_size
100 - name: template apiserver
102 apiserver: "{{ ansible_host }}"
103 apiserver_port: "{{ caas.apiserver_secure_port }}"
106 dest: /etc/kubernetes/manifests/apiserver.yml
109 - name: wait for container to start
111 host: "{{ ansible_host }}"
112 port: "{{ caas.apiserver_secure_port }}"
114 timeout: "{{ caas.container_wait_timeout }}"
116 - name: check for namespace
117 command: '/usr/bin/curl -I
118 https://{{ ansible_host }}:{{ caas.apiserver_secure_port }}/api/v1/namespaces/kube-system
119 --key /etc/kubernetes/ssl/kubelet{{ nodeindex }}-key.pem
120 --cert /etc/kubernetes/ssl/kubelet{{ nodeindex }}.pem
121 --cacert /etc/openssl/ca.pem'
122 register: namespace_check
125 - name: insert namespace
126 command: '/usr/bin/curl -i
127 https://{{ ansible_host }}:{{ caas.apiserver_secure_port }}/api/v1/namespaces
129 -H "Content-Type: application/json"
130 --key /etc/kubernetes/ssl/kubelet{{ nodeindex }}-key.pem
131 --cert /etc/kubernetes/ssl/kubelet{{ nodeindex }}.pem
132 --cacert /etc/openssl/ca.pem
133 -d ''{"apiVersion":"v1","kind":"Namespace","metadata":{"name":"kube-system"}}'''
134 when: namespace_check.stdout.find('200 OK') != -1
136 - name: template manifests
138 apiserver: "{{ caas.apiserver_svc_ip }}"
139 apiserver_port: "{{ caas.apiserver_svc_port }}"
142 dest: "/etc/kubernetes/manifests/{{ item }}"