From c8169105bd8c382f12029b69be89be35e70ead65 Mon Sep 17 00:00:00 2001 From: Yanis Guenane Date: Wed, 20 Jan 2021 14:57:28 +0100 Subject: [PATCH] Provide clusterserviceversion --- .../awx-operator.clusterserviceversion.yaml | 225 ++++++++++++++++++ .../manifests/awx.ansible.com_awxs_crd.yaml | 62 +++++ .../awx-operator/metadata/annotations.yaml | 11 + 3 files changed, 298 insertions(+) create mode 100644 deploy/olm-catalog/awx-operator/manifests/awx-operator.clusterserviceversion.yaml create mode 100644 deploy/olm-catalog/awx-operator/manifests/awx.ansible.com_awxs_crd.yaml create mode 100644 deploy/olm-catalog/awx-operator/metadata/annotations.yaml diff --git a/deploy/olm-catalog/awx-operator/manifests/awx-operator.clusterserviceversion.yaml b/deploy/olm-catalog/awx-operator/manifests/awx-operator.clusterserviceversion.yaml new file mode 100644 index 00000000..ca12ffe5 --- /dev/null +++ b/deploy/olm-catalog/awx-operator/manifests/awx-operator.clusterserviceversion.yaml @@ -0,0 +1,225 @@ +--- +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "awx.ansible.com/v1beta1", + "kind": "AWX", + "metadata": { + "name": "example-awx", + "namespace": "example-awx" + }, + "spec": { + "deployment_type": "awx", + "tower_admin_email": "test@example.com", + "tower_admin_password": "changeme", + "tower_admin_user": "test", + "tower_broadcast_websocket_secret": "changeme", + "tower_create_preload_data": true, + "tower_hostname": "example-awx.test", + "tower_ingress_type": "none", + "tower_memcached_image": "memcached:alpine", + "tower_postgres_storage_class": "", + "tower_postgres_storage_request": "8Gi", + "tower_redis_image": "redis:latest", + "tower_task_cpu_request": "500m", + "tower_task_image": "ansible/awx:15.0.0", + "tower_task_mem_request": "1Gi", + "tower_task_privileged": false, + "tower_web_cpu_request": "1000m", + "tower_web_image": "ansible/awx:15.0.0", + "tower_web_mem_request": "2Gi" + } + }, + { + "apiVersion": "awx.ansible.com/v1beta1", + "kind": "AWX", + "metadata": { + "name": "example-awx", + "namespace": "example-awx" + }, + "spec": { + "deployment_type": "awx", + "tower_admin_email": "test@example.com", + "tower_admin_password": "changeme", + "tower_admin_user": "test", + "tower_broadcast_websocket_secret": "changeme", + "tower_create_preload_data": true, + "tower_hostname": "example-awx.test", + "tower_ingress_type": "ingress", + "tower_memcached_image": "memcached:alpine", + "tower_postgres_image": "postgres:10", + "tower_postgres_pass": "awxpass", + "tower_postgres_storage_class": "", + "tower_postgres_storage_request": "8Gi", + "tower_redis_image": "redis:latest", + "tower_task_cpu_request": "500m", + "tower_task_image": "ansible/awx:15.0.0", + "tower_task_mem_request": "128M", + "tower_task_privileged": false, + "tower_web_cpu_request": "500m", + "tower_web_image": "ansible/awx:15.0.0", + "tower_web_mem_request": "128M" + } + } + ] + capabilities: Basic Install + operators.operatorframework.io/builder: operator-sdk-v0.19.4 + operators.operatorframework.io/project_layout: ansible + name: awx-operator.v0.0.1 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - kind: AWX + name: awxs.awx.ansible.com + version: v1beta1 + description: AWX operator + displayName: AWX + icon: + - base64data: "" + mediatype: "" + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - route.openshift.io + resources: + - routes + verbs: + - '*' + - apiGroups: + - "" + resources: + - pods + - services + - services/finalizers + - endpoints + - persistentvolumeclaims + - events + - configmaps + - secrets + verbs: + - '*' + - apiGroups: + - apps + - extensions + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + - ingresses + verbs: + - '*' + - apiGroups: + - monitoring.coreos.com + resources: + - servicemonitors + verbs: + - get + - create + - apiGroups: + - apps + resourceNames: + - awx-operator + resources: + - deployments/finalizers + verbs: + - update + - apiGroups: + - "" + resources: + - pods/exec + verbs: + - create + - get + - apiGroups: + - apps + resources: + - replicasets + verbs: + - get + - apiGroups: + - awx.ansible.com + resources: + - '*' + verbs: + - '*' + serviceAccountName: awx-operator + deployments: + - name: awx-operator + spec: + replicas: 1 + selector: + matchLabels: + name: awx-operator + strategy: {} + template: + metadata: + labels: + name: awx-operator + spec: + containers: + - command: + - /usr/local/bin/ao-logs + - /tmp/ansible-operator/runner + - stdout + image: ansible/awx-operator:0.5.0 + imagePullPolicy: Always + name: ansible + resources: {} + volumeMounts: + - mountPath: /tmp/ansible-operator/runner + name: runner + readOnly: true + - env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: OPERATOR_NAME + value: awx-operator + image: ansible/awx-operator:0.5.0 + imagePullPolicy: Always + name: operator + resources: {} + volumeMounts: + - mountPath: /tmp/ansible-operator/runner + name: runner + serviceAccountName: awx-operator + volumes: + - emptyDir: {} + name: runner + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - awx + links: + - name: Awx Operator + url: https://github.com/ansible/awx-operator + maintainers: + - email: yguenane@redhat.com + name: Yanis Guenane + maturity: alpha + provider: + name: AWX Community + url: https://github.com/ansible/awx-operator + version: 0.0.1 diff --git a/deploy/olm-catalog/awx-operator/manifests/awx.ansible.com_awxs_crd.yaml b/deploy/olm-catalog/awx-operator/manifests/awx.ansible.com_awxs_crd.yaml new file mode 100644 index 00000000..cc72af22 --- /dev/null +++ b/deploy/olm-catalog/awx-operator/manifests/awx.ansible.com_awxs_crd.yaml @@ -0,0 +1,62 @@ +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: awxs.awx.ansible.com +spec: + group: awx.ansible.com + names: + kind: AWX + listKind: AWXList + plural: awxs + singular: awx + scope: Namespaced + subresources: + status: {} + validation: + openAPIV3Schema: + description: Schema validation for the AWX CRD + properties: + spec: + properties: + deployment_type: + pattern: ^(tower|awx)(-)?.*$ + type: string + external_database: + description: | + If true you must supply a secret containing the location and credentials for + connecting to the external database by a user who has permission to create + and apply a schema. + + The secret should have the name: -postgres-configuration and + should look like: + + apiVersion: v1 + kind: Secret + metadata: + name: -postgres-configuration + namespace: + stringData: + host: + port: + database: + username: + password: + type: Opaque + type: boolean + required: + - deployment_type + type: object + type: object + version: v1beta1 + versions: + - name: v1beta1 + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/deploy/olm-catalog/awx-operator/metadata/annotations.yaml b/deploy/olm-catalog/awx-operator/metadata/annotations.yaml new file mode 100644 index 00000000..18d6cd2e --- /dev/null +++ b/deploy/olm-catalog/awx-operator/metadata/annotations.yaml @@ -0,0 +1,11 @@ +--- +annotations: + operators.operatorframework.io.bundle.channel.default.v1: alpha + operators.operatorframework.io.bundle.channels.v1: alpha + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: awx-operator + operators.operatorframework.io.metrics.builder: operator-sdk-v0.19.4 + operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 + operators.operatorframework.io.metrics.project_layout: ansible