Skip to content
Snippets Groups Projects
  • Maxim Krasilnikov's avatar
    6eb22c5d
    Change single Vault pki mount to multi pki mounts paths for etcd and kube CA`s (#1552) · 6eb22c5d
    Maxim Krasilnikov authored
    * Added update CA trust step for etcd and kube/secrets roles
    
    * Added load_balancer_domain_name to certificate alt names if defined. Reset CA's in RedHat os.
    
    * Rename kube-cluster-ca.crt to vault-ca.crt, we need separated CA`s for vault, etcd and kube.
    
    * Vault role refactoring, remove optional cert vault auth because not not used and worked. Create separate CA`s fro vault and etcd.
    
    * Fixed different certificates set for vault cert_managment
    
    * Update doc/vault.md
    
    * Fixed condition create vault CA, wrong group
    
    * Fixed missing etcd_cert_path mount for rkt deployment type. Distribute vault roles for all vault hosts
    
    * Removed wrong when condition in create etcd role vault tasks.
    6eb22c5d
    History
    Change single Vault pki mount to multi pki mounts paths for etcd and kube CA`s (#1552)
    Maxim Krasilnikov authored
    * Added update CA trust step for etcd and kube/secrets roles
    
    * Added load_balancer_domain_name to certificate alt names if defined. Reset CA's in RedHat os.
    
    * Rename kube-cluster-ca.crt to vault-ca.crt, we need separated CA`s for vault, etcd and kube.
    
    * Vault role refactoring, remove optional cert vault auth because not not used and worked. Create separate CA`s fro vault and etcd.
    
    * Fixed different certificates set for vault cert_managment
    
    * Update doc/vault.md
    
    * Fixed condition create vault CA, wrong group
    
    * Fixed missing etcd_cert_path mount for rkt deployment type. Distribute vault roles for all vault hosts
    
    * Removed wrong when condition in create etcd role vault tasks.
gen_certs_script.yml 6.11 KiB
---
- name: "Gen_certs | Create kubernetes config directory (on {{groups['kube-master'][0]}})"
  file:
    path: "{{ kube_config_dir }}"
    state: directory
    owner: kube
  run_once: yes
  delegate_to: "{{groups['kube-master'][0]}}"
  tags: [kubelet, k8s-secrets, kube-controller-manager, kube-apiserver, bootstrap-os, apps, network, master, node]
  when: gen_certs|default(false)

- name: "Gen_certs | Create kubernetes script directory (on {{groups['kube-master'][0]}})"
  file:
    path: "{{ kube_script_dir }}"
    state: directory
    owner: kube
  run_once: yes
  delegate_to: "{{groups['kube-master'][0]}}"
  tags: [k8s-secrets, bootstrap-os]
  when: gen_certs|default(false)

- name: Gen_certs | write openssl config
  template:
    src: "openssl.conf.j2"
    dest: "{{ kube_config_dir }}/openssl.conf"
  run_once: yes
  delegate_to: "{{groups['kube-master'][0]}}"
  when: gen_certs|default(false)

- name: Gen_certs | copy certs generation script
  copy:
    src: "make-ssl.sh"
    dest: "{{ kube_script_dir }}/make-ssl.sh"
    mode: 0700
  run_once: yes
  delegate_to: "{{groups['kube-master'][0]}}"
  when: gen_certs|default(false)

- name: Gen_certs | run cert generation script
  command: "{{ kube_script_dir }}/make-ssl.sh -f {{ kube_config_dir }}/openssl.conf -d {{ kube_cert_dir }}"
  environment:
    - MASTERS: "{% for m in groups['kube-master'] %}
                  {% if gen_master_certs|default(false) %}
                    {{ m }}
                  {% endif %}
                {% endfor %}"
    - HOSTS: "{% for h in groups['k8s-cluster'] %}
                {% if gen_node_certs[h]|default(true) %}
                    {{ h }}
                {% endif %}
              {% endfor %}"
  run_once: yes
  delegate_to: "{{groups['kube-master'][0]}}"
  when: gen_certs|default(false)
  notify: set secret_changed

- set_fact:
    all_master_certs: "['ca-key.pem',
                       'apiserver.pem',
                       'apiserver-key.pem',
                       'kube-scheduler.pem',
                       'kube-scheduler-key.pem',
                       'kube-controller-manager.pem',
                       'kube-controller-manager-key.pem',
                       {% for node in groups['kube-master'] %}
                       'admin-{{ node }}.pem',
                       'admin-{{ node }}-key.pem',
                      {% endfor %}]"
    my_master_certs: ['ca-key.pem',
                      'admin-{{ inventory_hostname }}.pem',