install.yaml 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. ---
  2. - name: Create temp directory for doing work in on target
  3. command: mktemp -td openshift-metering-ansible-XXXXXX
  4. register: mktemp
  5. changed_when: False
  6. - name: Ensures {{ mktemp.stdout }}/metering-manifests directories exists
  7. file:
  8. path: "{{ item }}"
  9. state: directory
  10. with_items:
  11. - "{{ mktemp.stdout }}/metering-manifests/operator"
  12. - name: Copy operator files to temp directory
  13. copy:
  14. src: "{{ item }}"
  15. dest: "{{ mktemp.stdout }}/metering-manifests/operator/{{ item | basename }}"
  16. with_fileglob:
  17. - "files/operator/*.yaml"
  18. register: temp_operator_files
  19. - name: Update Metering Helm Operator deployment image
  20. yedit:
  21. src: "{{ mktemp.stdout }}/metering-manifests/operator/metering-helm-operator-deployment.yaml"
  22. edits:
  23. - key: spec.template.spec.containers[0].image
  24. value: "{{ openshift_metering_operator_image }}"
  25. - key: spec.template.spec.containers[1].image
  26. value: "{{ openshift_metering_operator_image }}"
  27. when: openshift_metering_operator_image != ""
  28. - name: Update Metering config
  29. yedit:
  30. src: "{{ mktemp.stdout }}/metering-manifests/operator/metering.yaml"
  31. edits:
  32. - key: spec
  33. value: "{{ openshift_metering_config }}"
  34. when: openshift_metering_config != None
  35. - name: Fetch updated operator manifests
  36. fetch:
  37. src: "{{ item.dest }}"
  38. dest: "/tmp/updated_manifests/"
  39. flat: true
  40. with_items: "{{ temp_operator_files.results }}"
  41. register: updated_operator_manifests
  42. loop_control:
  43. label: "{{ item.dest }}"
  44. - name: "Create {{ __openshift_metering_namespace }} project"
  45. oc_project:
  46. state: present
  47. name: "{{ __openshift_metering_namespace }}"
  48. description: Openshift Metering
  49. node_selector: ""
  50. - name: Create metering namespace viewer cluster role
  51. oc_clusterrole:
  52. state: present
  53. name: "openshift-metering-namespace-viewer-{{ __openshift_metering_namespace }}"
  54. rules:
  55. - apiGroups: [""]
  56. resources: ["namespaces"]
  57. verbs: ["get"]
  58. - name: Create namespace viewer clusterrolebinding
  59. oc_obj:
  60. state: present
  61. kind: ClusterRoleBinding
  62. name: "openshift-metering-namespace-viewer-{{ __openshift_metering_namespace }}"
  63. content:
  64. path: "{{ mktemp.stdout }}/openshift-metering-namespace-viewer-{{ __openshift_metering_namespace }}"
  65. data:
  66. apiVersion: v1
  67. kind: ClusterRoleBinding
  68. metadata:
  69. name: "openshift-metering-namespace-viewer-{{ __openshift_metering_namespace }}"
  70. roleRef:
  71. apiGroup: rbac.authorization.k8s.io
  72. kind: ClusterRole
  73. name: "openshift-metering-namespace-viewer-{{ __openshift_metering_namespace }}"
  74. subjects:
  75. - kind: ServiceAccount
  76. name: metering
  77. namespace: "{{ __openshift_metering_namespace }}"
  78. - name: Install Metering CRDs
  79. oc_obj:
  80. state: present
  81. kind: "{{ obj.kind }}"
  82. name: "{{ obj.metadata.name }}"
  83. namespace: "{{ __openshift_metering_namespace }}"
  84. content:
  85. path: "/tmp/{{ obj.kind }}-{{ obj.metadata.name }}.yaml"
  86. data: "{{ obj }}"
  87. vars:
  88. obj: "{{ lookup('file', item) | from_yaml }}"
  89. with_fileglob:
  90. - "files/crds/*.yaml"
  91. - name: Install Metering Helm Operator
  92. oc_obj:
  93. state: present
  94. kind: "{{ obj.kind }}"
  95. name: "{{ obj.metadata.name }}"
  96. namespace: "{{ __openshift_metering_namespace }}"
  97. content:
  98. path: "/tmp/{{ obj.kind }}-{{ obj.metadata.name }}.yaml"
  99. data: "{{ obj }}"
  100. vars:
  101. obj: "{{ lookup('file', item.dest) | from_yaml }}"
  102. with_items: "{{ updated_operator_manifests.results }}"
  103. loop_control:
  104. label: "{{ item.dest }}"
  105. - name: Delete temp directory
  106. file:
  107. name: "{{ mktemp.stdout }}"
  108. state: absent
  109. changed_when: False