main.yml 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. ---
  2. # TODO: support new create-config command to generate node certs and config
  3. # TODO: recreate master/node configs if settings that affect the configs
  4. # change (hostname, public_hostname, ip, public_ip, etc)
  5. # TODO: use a template lookup here
  6. # TODO: create a failed_when condition
  7. - name: Use enterprise default for openshift_registry_url if not set
  8. set_fact:
  9. openshift_registry_url: "openshift3_beta/ose-${component}:${version}"
  10. when: openshift.common.deployment_type == 'enterprise' and openshift_registry_url is not defined
  11. - name: Use online default for openshift_registry_url if not set
  12. set_fact:
  13. openshift_registry_url: "docker-registry.ops.rhcloud.com/openshift3_beta/ose-${component}:${version}"
  14. when: openshift.common.deployment_type == 'online' and openshift_registry_url is not defined
  15. - name: Create node config
  16. command: >
  17. /usr/bin/openshift admin create-node-config
  18. --node-dir={{ openshift_cert_dir }}/node-{{ item.openshift.common.hostname }}
  19. --node={{ item.openshift.common.hostname }}
  20. --hostnames={{ [item.openshift.common.hostname, item.openshift.common.public_hostname]|unique|join(",") }}
  21. --dns-domain={{ openshift.dns.domain }}
  22. --dns-ip={{ openshift.dns.ip }}
  23. --master={{ openshift.master.api_url }}
  24. --signer-key={{ openshift_master_ca_key }}
  25. --signer-cert={{ openshift_master_ca_cert }}
  26. --certificate-authority={{ openshift_master_ca_cert }}
  27. --signer-serial={{ openshift_master_ca_dir }}/serial.txt
  28. --node-client-certificate-authority={{ openshift_master_ca_cert }}
  29. {{ ('--images=' ~ openshift_registry_url) if openshift_registry_url is defined else '' }}
  30. --listen=https://0.0.0.0:10250
  31. args:
  32. chdir: "{{ openshift_cert_parent_dir }}"
  33. creates: "{{ openshift_cert_dir }}/node-{{ item.openshift.common.hostname }}"
  34. with_items: openshift_nodes
  35. - name: Register unregistered nodes
  36. kubernetes_register_node:
  37. kubectl_cmd: ['osc']
  38. default_client_config: '~/.config/openshift/.config'
  39. name: "{{ item.openshift.common.hostname }}"
  40. api_version: "{{ openshift_kube_api_version }}"
  41. cpu: "{{ item.openshift.node.resources_cpu | default(None) }}"
  42. memory: "{{ item.openshift.node.resources_memory | default(None) }}"
  43. pod_cidr: "{{ item.openshift.node.pod_cidr | default(None) }}"
  44. host_ip: "{{ item.openshift.common.ip }}"
  45. labels: "{{ item.openshift.node.labels | default({}) }}"
  46. annotations: "{{ item.openshift.node.annotations | default({}) }}"
  47. external_id: "{{ item.openshift.node.external_id }}"
  48. # TODO: support customizing other attributes such as: client_config,
  49. # client_cluster, client_context, client_user
  50. with_items: openshift_nodes
  51. register: register_result