--- # Setup OpenShift Serverless via operator - name: Create OpenShift Objects for serverless k8s: state: present merge_type: - strategic-merge - merge definition: "{{ lookup('file', item ) | from_yaml }}" loop: - ./files/serverless_subscription.yaml - ./files/serverless_eventing_subscription.yaml # wait for serverless CRDs - name: Wait for knative-serving CRD k8s_facts: api_version: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition name: knativeservings.serving.knative.dev register: r_knserving_crd retries: 200 delay: 10 ignore_errors: yes until: r_knserving_crd.resources | list | length == 1 - name: Notify user if serverless deployment failed when: not r_knserving_crd.resources | list | length == 1 debug: msg: "user.info: *** Knative-serving could not be installed ***" - name: create knative projects k8s: state: present kind: Project api_version: project.openshift.io/v1 definition: metadata: name: "{{ item }}" loop: - "knative-serving" - "knative-eventing" - name: wait for serving project to exist k8s_facts: kind: Project api_version: project.openshift.io/v1 name: "knative-serving" register: r_serving_proj retries: 200 delay: 10 ignore_errors: yes until: r_serving_proj.resources | list | length == 1 - name: create knative serving CR k8s: state: present merge_type: - strategic-merge - merge definition: "{{ lookup('file', item ) | from_yaml }}" loop: - ./files/knative_serving_cr.yaml - name: Wait for knative-eventing CRD k8s_facts: api_version: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition name: knativeeventings.eventing.knative.dev register: r_kneventing_crd retries: 200 delay: 10 ignore_errors: yes until: r_kneventing_crd.resources | list | length == 1 - name: Notify user if serverless eventing deployment failed when: not r_kneventing_crd.resources | list | length == 1 debug: msg: "user.info: *** Knative-eventing could not be installed ***" - name: Wait for knative-eventing project to exist k8s_facts: api_version: project.openshift.io/v1 kind: Project name: "knative-eventing" register: r_kneventing_project retries: 200 delay: 10 ignore_errors: yes until: r_kneventing_project.resources | list | length == 1 - name: Notify user if serverless eventing project deployment failed when: not r_kneventing_project.resources | list | length == 1 debug: msg: "user.info: *** knative-eventing project not created by operator ***" - name: Add view role for users to knative-serving project include_tasks: add_role.yaml vars: user: "{{ item }}" role: "view" namespace: "knative-serving" with_list: "{{ users }}"