bootstrap.yml 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. ---
  2. # TODO: create a module for this command.
  3. # oc_serviceaccounts_kubeconfig
  4. - name: create service account kubeconfig with csr rights
  5. command: "oc serviceaccounts create-kubeconfig node-bootstrapper -n openshift-infra"
  6. register: kubeconfig_out
  7. until: kubeconfig_out.rc == 0
  8. retries: 24
  9. delay: 5
  10. - name: put service account kubeconfig into a file on disk for bootstrap
  11. copy:
  12. content: "{{ kubeconfig_out.stdout }}"
  13. dest: "{{ openshift_master_config_dir }}/bootstrap.kubeconfig"
  14. - name: create a temp dir for this work
  15. command: mktemp -d /tmp/openshift_node_config-XXXXXX
  16. register: mktempout
  17. run_once: true
  18. # This generate is so that we do not have to maintain
  19. # our own copy of the template. This is generated by
  20. # the product and the following settings will be
  21. # generated by the master
  22. - name: generate a node-config dynamically
  23. command: >
  24. {{ openshift_master_client_binary }} adm create-node-config
  25. --node-dir={{ mktempout.stdout }}/
  26. --node=CONFIGMAP
  27. --hostnames=test
  28. --dns-ip=0.0.0.0
  29. --certificate-authority={{ openshift_master_config_dir }}/ca.crt
  30. --signer-cert={{ openshift_master_config_dir }}/ca.crt
  31. --signer-key={{ openshift_master_config_dir }}/ca.key
  32. --signer-serial={{ openshift_master_config_dir }}/ca.serial.txt
  33. --node-client-certificate-authority={{ openshift_master_config_dir }}/ca.crt
  34. register: configgen
  35. run_once: true
  36. - name: remove the default settings
  37. yedit:
  38. state: "{{ item.state | default('present') }}"
  39. src: "{{ mktempout.stdout }}/node-config.yaml"
  40. key: "{{ item.key }}"
  41. value: "{{ item.value | default(omit) }}"
  42. with_items: "{{ openshift_master_node_config_default_edits }}"
  43. run_once: true
  44. - name: copy the generated config into each group
  45. copy:
  46. src: "{{ mktempout.stdout }}/node-config.yaml"
  47. remote_src: true
  48. dest: "{{ mktempout.stdout }}/node-config-{{ item.type }}.yaml"
  49. with_items: "{{ openshift_master_node_configs }}"
  50. run_once: true
  51. - name: "specialize the generated configs for node-config-{{ item.type }}"
  52. yedit:
  53. src: "{{ mktempout.stdout }}/node-config-{{ item.type }}.yaml"
  54. edits: "{{ item.edits }}"
  55. with_items: "{{ openshift_master_node_configs }}"
  56. run_once: true
  57. - name: create node-config.yaml configmap
  58. oc_configmap:
  59. name: "node-config-{{ item.type }}"
  60. namespace: "{{ openshift_master_bootstrap_namespace }}"
  61. from_file:
  62. node-config.yaml: "{{ mktempout.stdout }}/node-config-{{ item.type }}.yaml"
  63. with_items: "{{ openshift_master_node_configs }}"
  64. run_once: true
  65. - name: remove templated files
  66. file:
  67. dest: "{{ mktempout.stdout }}/"
  68. state: absent
  69. with_items: "{{ openshift_master_node_configs }}"
  70. run_once: true