openshift_hosted.yml 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. ---
  2. - name: Create persistent volumes
  3. hosts: oo_first_master
  4. tags:
  5. - hosted
  6. vars:
  7. persistent_volumes: "{{ hostvars[groups.oo_first_master.0] | oo_persistent_volumes(groups) }}"
  8. persistent_volume_claims: "{{ hostvars[groups.oo_first_master.0] | oo_persistent_volume_claims }}"
  9. roles:
  10. - role: openshift_persistent_volumes
  11. when: persistent_volumes | length > 0 or persistent_volume_claims | length > 0
  12. - name: Create Hosted Resources
  13. hosts: oo_first_master
  14. tags:
  15. - hosted
  16. pre_tasks:
  17. - set_fact:
  18. openshift_hosted_router_registryurl: "{{ hostvars[groups.oo_first_master.0].openshift.master.registry_url }}"
  19. openshift_hosted_registry_registryurl: "{{ hostvars[groups.oo_first_master.0].openshift.master.registry_url }}"
  20. when: "'master' in hostvars[groups.oo_first_master.0].openshift and 'registry_url' in hostvars[groups.oo_first_master.0].openshift.master"
  21. roles:
  22. - role: openshift_cli
  23. - role: openshift_hosted_facts
  24. - role: openshift_projects
  25. # TODO: Move standard project definitions to openshift_hosted/vars/main.yml
  26. # Vars are not accessible in meta/main.yml in ansible-1.9.x
  27. openshift_projects: "{{ openshift_additional_projects | default({}) | oo_merge_dicts({'default':{'default_node_selector':''},'openshift-infra':{'default_node_selector':''},'logging':{'default_node_selector':''}}) }}"
  28. - role: openshift_serviceaccounts
  29. openshift_serviceaccounts_names:
  30. - router
  31. openshift_serviceaccounts_namespace: default
  32. openshift_serviceaccounts_sccs:
  33. - hostnetwork
  34. when: openshift.common.version_gte_3_2_or_1_2
  35. - role: openshift_serviceaccounts
  36. openshift_serviceaccounts_names:
  37. - router
  38. - registry
  39. openshift_serviceaccounts_namespace: default
  40. openshift_serviceaccounts_sccs:
  41. - privileged
  42. when: not openshift.common.version_gte_3_2_or_1_2
  43. - role: openshift_hosted
  44. - role: openshift_metrics
  45. when: openshift.hosted.metrics.deploy | bool
  46. - role: cockpit-ui
  47. when: openshift.common.deployment_subtype == 'registry'
  48. - name: Configure CA certificate for secure registry
  49. hosts: oo_nodes_to_config
  50. tags:
  51. - hosted
  52. tasks:
  53. - name: Create temp directory for kubeconfig
  54. command: mktemp -d /tmp/openshift-ansible-XXXXXX
  55. register: mktemp
  56. when: openshift.common.deployment_subtype == 'registry'
  57. changed_when: false
  58. delegate_to: "{{ groups.oo_first_master.0 }}"
  59. run_once: true
  60. - set_fact:
  61. openshift_hosted_kubeconfig: "{{ mktemp.stdout }}/admin.kubeconfig"
  62. when: openshift.common.deployment_subtype == 'registry'
  63. delegate_to: "{{ groups.oo_first_master.0 }}"
  64. run_once: true
  65. - name: Copy the admin client config(s)
  66. command: >
  67. cp {{ openshift.common.config_base }}/master/admin.kubeconfig {{ openshift_hosted_kubeconfig }}
  68. when: openshift.common.deployment_subtype == 'registry'
  69. changed_when: false
  70. delegate_to: "{{ groups.oo_first_master.0 }}"
  71. run_once: true
  72. - name: Retrieve docker-registry route
  73. command: >
  74. {{ openshift.common.client_binary }} get route docker-registry
  75. --template='{{ '{{' }} .spec.host {{ '}}' }}'
  76. --config={{ openshift_hosted_kubeconfig }}
  77. -n default
  78. register: docker_registry_route
  79. when: openshift.common.deployment_subtype == 'registry'
  80. changed_when: false
  81. delegate_to: "{{ groups.oo_first_master.0 }}"
  82. run_once: true
  83. - name: Retrieve registry service IP
  84. command: >
  85. {{ openshift.common.client_binary }} get service docker-registry
  86. --template='{{ '{{' }} .spec.clusterIP {{ '}}' }}'
  87. --config={{ openshift_hosted_kubeconfig }}
  88. -n default
  89. register: docker_registry_service_ip
  90. when: openshift.common.deployment_subtype == 'registry'
  91. changed_when: false
  92. delegate_to: "{{ groups.oo_first_master.0 }}"
  93. run_once: true
  94. - name: Create registry CA directories
  95. file:
  96. path: "/etc/docker/certs.d/{{ item }}"
  97. state: directory
  98. with_items:
  99. - "{{ docker_registry_service_ip.stdout }}:5000"
  100. - "{{ docker_registry_route.stdout }}"
  101. - "docker-registry.default.svc.cluster.local:5000"
  102. when: openshift.common.deployment_subtype == 'registry'
  103. - name: Copy CA to registry CA directories
  104. copy:
  105. src: "{{ openshift.common.config_base }}/node/ca.crt"
  106. dest: "/etc/docker/certs.d/{{ item }}"
  107. remote_src: yes
  108. force: yes
  109. with_items:
  110. - "{{ docker_registry_service_ip.stdout }}:5000"
  111. - "{{ docker_registry_route.stdout }}"
  112. - "docker-registry.default.svc.cluster.local:5000"
  113. when: openshift.common.deployment_subtype == 'registry'
  114. notify:
  115. - Restart docker
  116. - name: Delete temp directory
  117. file:
  118. name: "{{ mktemp.stdout }}"
  119. state: absent
  120. when: openshift.common.deployment_subtype == 'registry'
  121. changed_when: False
  122. delegate_to: "{{ groups.oo_first_master.0 }}"
  123. run_once: true
  124. handlers:
  125. - name: Restart docker
  126. service:
  127. name: docker
  128. state: restarted