diff options
Diffstat (limited to 'playbooks/common/openshift-node')
| -rw-r--r-- | playbooks/common/openshift-node/config.yml | 127 | ||||
| l--------- | playbooks/common/openshift-node/filter_plugins | 1 | ||||
| l--------- | playbooks/common/openshift-node/roles | 1 | 
3 files changed, 129 insertions, 0 deletions
diff --git a/playbooks/common/openshift-node/config.yml b/playbooks/common/openshift-node/config.yml new file mode 100644 index 000000000..5a6c89489 --- /dev/null +++ b/playbooks/common/openshift-node/config.yml @@ -0,0 +1,127 @@ +--- +- name: Gather and set facts for node hosts +  hosts: oo_nodes_to_config +  roles: +  - openshift_facts +  tasks: +  # Since the master is registering the nodes before they are configured, we +  # need to make sure to set the node properties beforehand if we do not want +  # the defaults +  - openshift_facts: +      role: "{{ item.role }}" +      local_facts: "{{ item.local_facts }}" +    with_items: +      - role: common +        local_facts: +          hostname: "{{ openshift_hostname | default(None) }}" +          public_hostname: "{{ openshift_public_hostname | default(None) }}" +      - role: node +        local_facts: +          external_id: "{{ openshift_node_external_id | default(None) }}" +          resources_cpu: "{{ openshift_node_resources_cpu | default(None) }}" +          resources_memory: "{{ openshift_node_resources_memory | default(None) }}" +          pod_cidr: "{{ openshift_node_pod_cidr | default(None) }}" +          labels: "{{ openshift_node_labels | default(None) }}" +          annotations: "{{ openshift_node_annotations | default(None) }}" +          deployment_type: "{{ openshift_deployment_type }}" + + +- name: Create temp directory for syncing certs +  hosts: localhost +  gather_facts: no +  tasks: +  - name: Create local temp directory for syncing certs +    local_action: command mktemp -d /tmp/openshift-ansible-XXXXXXX +    register: mktemp +    changed_when: False + + +- name: Register nodes +  hosts: oo_first_master +  vars: +    openshift_nodes: "{{ hostvars | oo_select_keys(groups['oo_nodes_to_config']) }}" +    sync_tmpdir: "{{ hostvars.localhost.mktemp.stdout }}" +  roles: +  - openshift_register_nodes +  tasks: +  # TODO: update so that we only sync necessary configs/directories, currently +  # we sync for all nodes in oo_nodes_to_config.  We will need to inspect the +  # configs on the nodes to make the determination on whether to sync or not. +  - name: Create the temp directory on the master +    file: +      path: "{{ sync_tmpdir }}" +      owner: "{{ ansible_ssh_user }}" +      mode: 0700 +      state: directory +    changed_when: False + +  - name: Create a tarball of the node config directories +    command: tar -czvf {{ sync_tmpdir }}/{{ item.openshift.common.hostname }}.tgz ./ +    args: +      chdir: "{{ openshift_cert_dir }}/node-{{ item.openshift.common.hostname }}" +    with_items: openshift_nodes +    changed_when: False + +  - name: Retrieve the node config tarballs from the master +    fetch: +      src: "{{ sync_tmpdir }}/{{ item.openshift.common.hostname }}.tgz" +      dest: "{{ sync_tmpdir }}/" +      flat: yes +      fail_on_missing: yes +      validate_checksum: yes +    with_items: openshift_nodes +    changed_when: False + + +- name: Configure node instances +  hosts: oo_nodes_to_config +  gather_facts: no +  vars: +    sync_tmpdir: "{{ hostvars.localhost.mktemp.stdout }}" +    openshift_sdn_master_url: "https://{{ hostvars[groups['oo_first_master'][0]].openshift.common.hostname }}:4001" +  pre_tasks: +  - name: Ensure certificate directory exists +    file: +      path: "{{ openshift_node_cert_dir }}" +      state: directory + +  # TODO: notify restart openshift-node and/or restart openshift-sdn-node, +  # possibly test service started time against certificate/config file +  # timestamps in openshift-node or openshift-sdn-node to trigger notify +  - name: Unarchive the tarball on the node +    unarchive: +      src: "{{ sync_tmpdir }}/{{ openshift.common.hostname }}.tgz" +      dest: "{{ openshift_node_cert_dir }}" +  roles: +  - openshift_node +  - { role: openshift_sdn_node, when: openshift.common.use_openshift_sdn | bool } +  tasks: +  - name: Create group for deployment type +    group_by: key=oo_nodes_deployment_type_{{ openshift.common.deployment_type }} +    changed_when: False + +- name: Delete the temporary directory on the master +  hosts: oo_first_master +  gather_facts: no +  vars: +    sync_tmpdir: "{{ hostvars.localhost.mktemp.stdout }}" +  tasks: +  - file: name={{ sync_tmpdir }} state=absent +    changed_when: False + + +- name: Delete temporary directory on localhost +  hosts: localhost +  gather_facts: no +  tasks: +  - file: name={{ mktemp.stdout }} state=absent +    changed_when: False + + +# Additional config for online type deployments +- name: Additional instance config +  hosts: oo_nodes_deployment_type_online +  gather_facts: no +  roles: +  - os_env_extras +  - os_env_extras_node diff --git a/playbooks/common/openshift-node/filter_plugins b/playbooks/common/openshift-node/filter_plugins new file mode 120000 index 000000000..99a95e4ca --- /dev/null +++ b/playbooks/common/openshift-node/filter_plugins @@ -0,0 +1 @@ +../../../filter_plugins
\ No newline at end of file diff --git a/playbooks/common/openshift-node/roles b/playbooks/common/openshift-node/roles new file mode 120000 index 000000000..e2b799b9d --- /dev/null +++ b/playbooks/common/openshift-node/roles @@ -0,0 +1 @@ +../../../roles/
\ No newline at end of file  | 
