main.yml 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. ---
  2. # TODO: support configuration for multiple masters, currently hardcoding
  3. # the info from the first master
  4. # TODO: create a failed_when condition
  5. - name: Create node server certificates
  6. command: >
  7. /usr/bin/openshift admin create-server-cert
  8. --overwrite=false
  9. --cert={{ openshift_cert_dir }}/node-{{ item.openshift_node_hostname }}/server.crt
  10. --key={{ openshift_cert_dir }}/node-{{ item.openshift_node_hostname }}/server.key
  11. --hostnames={{ [openshift_hostname, openshift_public_hostname, openshift_ip, openshift_public_ip]|join(",") }}
  12. args:
  13. chdir: "{{ openshift_cert_dir_parent }}"
  14. creates: "{{ openshift_cert_dir_abs }}/node-{{ item.openshift_node_hostname }}/server.crt"
  15. with_items: openshift_nodes
  16. register: server_cert_result
  17. # TODO: create a failed_when condition
  18. - name: Create node client certificates
  19. command: >
  20. /usr/bin/openshift admin create-node-cert
  21. --overwrite=false
  22. --cert={{ openshift_cert_dir }}/node-{{ item.openshift_node_hostname }}/cert.crt
  23. --key={{ openshift_cert_dir }}/node-{{ item.openshift_node_hostname }}/key.key
  24. --node-name={{ item.openshift_node_hostname }}
  25. args:
  26. chdir: "{{ openshift_cert_dir_parent }}"
  27. creates: "{{ openshift_cert_dir_abs }}/node-{{ item.openshift_node_hostname }}/cert.crt"
  28. with_items: openshift_nodes
  29. register: node_cert_result
  30. # TODO: re-create kubeconfig if certs were regenerated, not just if
  31. # .kubeconfig doesn't exist
  32. # TODO: create a failed_when condition
  33. - name: Create kubeconfigs for nodes
  34. command: >
  35. /usr/bin/openshift admin create-kubeconfig
  36. --client-certificate={{ openshift_cert_dir }}/node-{{ item.openshift_node_hostname }}/cert.crt
  37. --client-key={{ openshift_cert_dir }}/node-{{ item.openshift_node_hostname }}/key.key
  38. --kubeconfig={{ openshift_cert_dir }}/node-{{ item.openshift_node_hostname }}/.kubeconfig
  39. --master={{ openshift_master_urls[0] }}
  40. --public-master={{ openshift_master_public_urls[0] }}
  41. args:
  42. chdir: "{{ openshift_cert_dir_parent }}"
  43. creates: "{{ openshift_cert_dir_abs }}/node-{{ item.openshift_node_hostname }}/.kubeconfig"
  44. with_items: openshift_nodes
  45. register: kubeconfig_result
  46. # TODO: generate the node configs (openshift start node --write-config
  47. # --config='{{ openshift_cert_dir }}/node-{{ item.openshift_node_hostname }}/node.yaml'
  48. # --kubeconfig='{{ openshift_cert_dir }}/node-{{ item.openshift_node_hostname }}/.kubeconfig'
  49. # will need to modify the generated node config as needed
  50. # (servingInfo.{certFile,clientCA,keyFile})
  51. - name: Register unregistered nodes
  52. kubernetes_register_node:
  53. name: "{{ item.openshift_node_name }}"
  54. api_version: "{{ openshift_kube_api_version }}"
  55. cpu: "{{ item.openshift_node_cpu if item.openshift_node_cpu else None }}"
  56. memory: "{{ item.openshift_node_memory if item.openshift_node_memory else None }}"
  57. pod_cidr: "{{ item.openshift_node_pod_cidr if item.openshift_node_pod_cidr else None }}"
  58. host_ip: "{{ item.openshift_node_host_ip }}"
  59. labels: "{{ item.openshift_node_labels if item.openshift_node_labels else {} }}"
  60. annotations: "{{ item.openshift_node_annotations if item.openshift_node_annotations else {} }}"
  61. # TODO: support customizing other attributes such as: client_config,
  62. # client_cluster, client_context, client_user
  63. # TODO: update for v1beta3 changes after rebase: hostnames, external_ips,
  64. # internal_ips, external_id
  65. with_items: openshift_nodes
  66. register: register_result