123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- ---
- - name: Create temp directory for doing work in on target
- command: mktemp -td openshift-metering-ansible-XXXXXX
- register: mktemp
- changed_when: False
- - name: Ensures {{ mktemp.stdout }}/metering-manifests directories exists
- file:
- path: "{{ item }}"
- state: directory
- with_items:
- - "{{ mktemp.stdout }}/metering-manifests/operator"
- - name: Copy operator files to temp directory
- copy:
- src: "{{ item }}"
- dest: "{{ mktemp.stdout }}/metering-manifests/operator/{{ item | basename }}"
- with_fileglob:
- - "files/operator/*.yaml"
- register: temp_operator_files
- - name: Update Metering Helm Operator deployment image
- yedit:
- src: "{{ mktemp.stdout }}/metering-manifests/operator/metering-helm-operator-deployment.yaml"
- edits:
- - key: spec.template.spec.containers[0].image
- value: "{{ openshift_metering_operator_image }}"
- - key: spec.template.spec.containers[1].image
- value: "{{ openshift_metering_operator_image }}"
- when: openshift_metering_operator_image != ""
- - name: Update Metering config
- yedit:
- src: "{{ mktemp.stdout }}/metering-manifests/operator/metering.yaml"
- edits:
- - key: spec
- value: "{{ openshift_metering_config }}"
- when: openshift_metering_config != None
- - name: Fetch updated operator manifests
- fetch:
- src: "{{ item.dest }}"
- dest: "/tmp/updated_manifests/"
- flat: true
- with_items: "{{ temp_operator_files.results }}"
- register: updated_operator_manifests
- loop_control:
- label: "{{ item.dest }}"
- - name: "Create {{ __openshift_metering_namespace }} project"
- oc_project:
- state: present
- name: "{{ __openshift_metering_namespace }}"
- description: Openshift Metering
- node_selector: ""
- - name: Create metering namespace viewer cluster role
- oc_clusterrole:
- state: present
- name: "openshift-metering-namespace-viewer-{{ __openshift_metering_namespace }}"
- rules:
- - apiGroups: [""]
- resources: ["namespaces"]
- verbs: ["get"]
- - name: Create namespace viewer clusterrolebinding
- oc_obj:
- state: present
- kind: ClusterRoleBinding
- name: "openshift-metering-namespace-viewer-{{ __openshift_metering_namespace }}"
- content:
- path: "{{ mktemp.stdout }}/openshift-metering-namespace-viewer-{{ __openshift_metering_namespace }}"
- data:
- apiVersion: v1
- kind: ClusterRoleBinding
- metadata:
- name: "openshift-metering-namespace-viewer-{{ __openshift_metering_namespace }}"
- roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: "openshift-metering-namespace-viewer-{{ __openshift_metering_namespace }}"
- subjects:
- - kind: ServiceAccount
- name: metering
- namespace: "{{ __openshift_metering_namespace }}"
- - name: Install Metering CRDs
- oc_obj:
- state: present
- kind: "{{ obj.kind }}"
- name: "{{ obj.metadata.name }}"
- namespace: "{{ __openshift_metering_namespace }}"
- content:
- path: "/tmp/{{ obj.kind }}-{{ obj.metadata.name }}.yaml"
- data: "{{ obj }}"
- vars:
- obj: "{{ lookup('file', item) | from_yaml }}"
- with_fileglob:
- - "files/crds/*.yaml"
- - name: Install Metering Helm Operator
- oc_obj:
- state: present
- kind: "{{ obj.kind }}"
- name: "{{ obj.metadata.name }}"
- namespace: "{{ __openshift_metering_namespace }}"
- content:
- path: "/tmp/{{ obj.kind }}-{{ obj.metadata.name }}.yaml"
- data: "{{ obj }}"
- vars:
- obj: "{{ lookup('file', item.dest) | from_yaml }}"
- with_items: "{{ updated_operator_manifests.results }}"
- loop_control:
- label: "{{ item.dest }}"
- - name: Delete temp directory
- file:
- name: "{{ mktemp.stdout }}"
- state: absent
- changed_when: False
|