##---
# Source: olm/templates/08-tectonicocs.configmap.yaml

kind: ConfigMap
apiVersion: v1
metadata:
  name: tectonic-ocs
  namespace: kube-system
  labels:
    tectonic-operators.coreos.com/managed-by: tectonic-x-operator

data:
  customResourceDefinitions: |-
    - apiVersion: apiextensions.k8s.io/v1beta1
      kind: CustomResourceDefinition
      metadata:
        name: alertmanagers.monitoring.coreos.com
      spec:
        group: monitoring.coreos.com
        version: v1
        scope: Namespaced
        names:
          plural: alertmanagers
          singular: alertmanager
          kind: Alertmanager
          listKind: AlertmanagerList
          shortNames:
            - alertman
            - alrtman
      
    - apiVersion: apiextensions.k8s.io/v1beta1
      kind: CustomResourceDefinition
      metadata:
        name: etcdbackups.etcd.database.coreos.com
      spec:
        group: etcd.database.coreos.com
        version: v1beta2
        scope: Namespaced
        names:
          kind: EtcdBackup
          listKind: EtcdBackupList
          plural: etcdbackups
          singular: etcdbackup
      
    - apiVersion: apiextensions.k8s.io/v1beta1
      kind: CustomResourceDefinition
      metadata:
        name: etcdclusters.etcd.database.coreos.com
      spec:
        group: etcd.database.coreos.com
        version: v1beta2
        scope: Namespaced
        validation:
          openAPIv3:
            type: object
            description: Represents a single instance of etcd
            additionalProperties: false
            required:
            - version
            properties:
              version:
                type: string
                description: Version string
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$
                x-descriptors:
                - urn:alm:descriptor:versioning:semver
              size:
                type: number
                description: The size of the etcd cluster
                min: 1
                max: 9
                x-descriptors:
                - urn:alm:descriptor:pod:count
                - urn:alm:descriptor:number:integer
              template:
                type: object
                description: Template for fields of subresources
                labels:
                  type: object
                  description: Labels to apply to associated resources
        names:
          plural: etcdclusters
          singular: etcdcluster
          kind: EtcdCluster
          listKind: EtcdClusterList
          shortNames:
            - etcdclus
            - etcd
      
    - apiVersion: apiextensions.k8s.io/v1beta1
      kind: CustomResourceDefinition
      metadata:
        name: etcdrestores.etcd.database.coreos.com
      spec:
        group: etcd.database.coreos.com
        version: v1beta2
        scope: Namespaced
        names:
          kind: EtcdRestore
          listKind: EtcdRestoreList
          plural: etcdrestores
          singular: etcdrestore
      
    - apiVersion: apiextensions.k8s.io/v1beta1
      kind: CustomResourceDefinition
      metadata:
        name: prometheuses.monitoring.coreos.com
      spec:
        group: monitoring.coreos.com
        version: v1
        scope: Namespaced
        names:
          plural: prometheuses
          singular: prometheus
          kind: Prometheus
          listKind: PrometheusList
          shortNames:
            - prom
            - prm
      
    - apiVersion: apiextensions.k8s.io/v1beta1
      kind: CustomResourceDefinition
      metadata:
        name: servicemonitors.monitoring.coreos.com
      spec:
        group: monitoring.coreos.com
        version: v1
        scope: Namespaced
        names:
          plural: servicemonitors
          singular: servicemonitor
          kind: ServiceMonitor
          listKind: ServiceMonitorList
          shortNames:
            - servicemon
            - svcmon
            - svcmonitor
      
    - apiVersion: apiextensions.k8s.io/v1beta1
      kind: CustomResourceDefinition
      metadata:
        name: vaultservices.vault.security.coreos.com
      spec:
        group: vault.security.coreos.com
        version: v1alpha1
        scope: Namespaced
        validation:
          openAPIv3:
            type: object
            description: Represents a single instance of Vault
            additionalProperties: false
            required:
            - version
            properties:
              version:
                type: string
                description: Version string
                pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$
                x-descriptors:
                - urn:alm:descriptor:versioning:semver
              nodes:
                type: number
                description: The number of nodes in the Vault cluster
                min: 1
                max: 9
                x-descriptors:
                - urn:alm:descriptor:pod:count
                - urn:alm:descriptor:number:integer
              template:
                type: object
                description: Template for fields of subresources
                labels:
                  type: object
                  description: Labels to apply to associated resources
        names:
          plural: vaultservices
          singular: vaultservice
          kind: VaultService
          listKind: VaultServiceList
          shortNames:
            - vault
            - vaultserv
            - vaultsrv
      
  clusterServiceVersions: |-
    - #! validate-crd: deploy/chart/templates/0000_30_02-clusterserviceversion.crd.yaml
      #! parse-kind: ClusterServiceVersion
      apiVersion: app.coreos.com/v1alpha1
      kind: ClusterServiceVersion-v1
      metadata:
        name: etcdoperator.v0.6.1
        namespace: placeholder
        annotations:		
          tectonic-visibility: ocs		
      spec:
        displayName: etcd
        description: |
          etcd is a distributed key value store that provides a reliable way to store data across a cluster of machines. It’s open-source and available on GitHub. etcd gracefully handles leader elections during network partitions and will tolerate machine failure, including the leader. Your applications can read and write data into etcd.
          A simple use-case is to store database connection details or feature flags within etcd as key value pairs. These values can be watched, allowing your app to reconfigure itself when they change. Advanced uses take advantage of the consistency guarantees to implement database leader elections or do distributed locking across a cluster of workers.
      
          _The etcd Open Cloud Service is Public Alpha. The goal before Beta is to fully implement backup features._
      
          ### Reading and writing to etcd
      
          Communicate with etcd though its command line utility `etcdctl` or with the API using the automatically generated Kubernetes Service.
      
          [Read the complete guide to using the etcd Open Cloud Service](https://coreos.com/tectonic/docs/latest/alm/etcd-ocs.html)
      
          ### Supported Features
          **High availability**
          Multiple instances of etcd are networked together and secured. Individual failures or networking issues are transparently handled to keep your cluster up and running.
          **Automated updates**
          Rolling out a new etcd version works like all Kubernetes rolling updates. Simply declare the desired version, and the etcd service starts a safe rolling update to the new version automatically.
          **Backups included**
          Coming soon, the ability to schedule backups to happen on or off cluster.
        keywords: ['etcd', 'key value', 'database', 'coreos', 'open source']
        version: 0.6.1
        maturity: alpha
        maintainers:
        - name: CoreOS, Inc
          email: support@coreos.com
      
        provider:
          name: CoreOS, Inc
        labels:
          alm-status-descriptors: etcdoperator.v0.6.1
          alm-owner-etcd: etcdoperator
          operated-by: etcdoperator
        selector:
          matchLabels:
            alm-owner-etcd: etcdoperator
            operated-by: etcdoperator
        links:
        - name: Blog
          url: https://coreos.com/etcd
        - name: Documentation
          url: https://coreos.com/operators/etcd/docs/latest/
        - name: etcd Operator Source Code
          url: https://github.com/coreos/etcd-operator
      
        icon:
        - base64data: [encoded data, 5840 characters]
          mediatype: image/png
        install:
          strategy: deployment
          spec:
            permissions:
            - serviceAccountName: etcd-operator
              rules:
              - apiGroups:
                - etcd.database.coreos.com
                resources:
                - etcdclusters
                verbs:
                - "*"
              - apiGroups:
                - storage.k8s.io
                resources:
                - storageclasses
                verbs:
                - "*"
              - apiGroups:
                - ""
                resources:
                - pods
                - services
                - endpoints
                - persistentvolumeclaims
                - events
                verbs:
                - "*"
              - apiGroups:
                - apps
                resources:
                - deployments
                verbs:
                - "*"
              - apiGroups:
                - ""
                resources:
                - secrets
                verbs:
                - get
            deployments:
            - name: etcd-operator
              spec:
                replicas: 1
                selector:
                  matchLabels:
                    name: etcd-operator-alm-owned
                template:
                  metadata:
                    name: etcd-operator-alm-owned
                    labels:
                      name: etcd-operator-alm-owned
                  spec:
                    serviceAccountName: etcd-operator
                    containers:
                    - name: etcd-operator
                      command:
                      - etcd-operator
                      - --create-crd=false
                      image: quay.io/coreos/etcd-operator@sha256:bd944a211eaf8f31da5e6d69e8541e7cada8f16a9f7a5a570b22478997819943
                      env:
                      - name: MY_POD_NAMESPACE
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.namespace
                      - name: MY_POD_NAME
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.name
        customresourcedefinitions:
          owned:
          - name: etcdclusters.etcd.database.coreos.com
            version: v1beta2
            kind: EtcdCluster
            displayName: etcd Cluster
            description: Represents a cluster of etcd nodes.
            resources:
              - kind: Service
                version: v1
              - kind: Pod
                version: v1
            specDescriptors:
              - description: The desired number of member Pods for the etcd cluster.
                displayName: Size
                path: size
                x-descriptors:
                  - 'urn:alm:descriptor:com.tectonic.ui:podCount'
            statusDescriptors:
              - description: The status of each of the member Pods for the etcd cluster.
                displayName: Member Status
                path: members
                x-descriptors:
                  - 'urn:alm:descriptor:com.tectonic.ui:podStatuses'
              - description: The service at which the running etcd cluster can be accessed.
                displayName: Service
                path: service
                x-descriptors:
                  - 'urn:alm:descriptor:io.kubernetes:Service'
              - description: The current size of the etcd cluster.
                displayName: Cluster Size
                path: size
              - description: The current version of the etcd cluster.
                displayName: Current Version
                path: currentVersion
              - description: 'The target version of the etcd cluster, after upgrading.'
                displayName: Target Version
                path: targetVersion
              - description: The current status of the etcd cluster.
                displayName: Status
                path: phase
                x-descriptors:
                  - 'urn:alm:descriptor:io.kubernetes.phase'
              - description: Explanation for the current status of the cluster.
                displayName: Status Details
                path: reason
                x-descriptors:
                  - 'urn:alm:descriptor:io.kubernetes.phase:reason'
      
    - #! validate-crd: deploy/chart/templates/0000_30_02-clusterserviceversion.crd.yaml
      #! parse-kind: ClusterServiceVersion
      apiVersion: app.coreos.com/v1alpha1
      kind: ClusterServiceVersion-v1
      metadata:
        name: etcdoperator.v0.9.0
        namespace: placeholder
        annotations:
          tectonic-visibility: ocs
          alm-examples: '[{"apiVersion":"etcd.database.coreos.com/v1beta2","kind":"EtcdCluster","metadata":{"name":"example","namespace":"default"},"spec":{"size":3,"version":"3.2.13"}},{"apiVersion":"etcd.database.coreos.com/v1beta2","kind":"EtcdRestore","metadata":{"name":"example-etcd-cluster"},"spec":{"etcdCluster":{"name":"example-etcd-cluster"},"backupStorageType":"S3","s3":{"path":"<full-s3-path>","awsSecret":"<aws-secret>"}}},{"apiVersion":"etcd.database.coreos.com/v1beta2","kind":"EtcdBackup","metadata":{"name":"example-etcd-cluster-backup"},"spec":{"etcdEndpoints":["<etcd-cluster-endpoints>"],"storageType":"S3","s3":{"path":"<full-s3-path>","awsSecret":"<aws-secret>"}}}]'
      spec:
        displayName: etcd
        description: |
          etcd is a distributed key value store that provides a reliable way to store data across a cluster of machines. It’s open-source and available on GitHub. etcd gracefully handles leader elections during network partitions and will tolerate machine failure, including the leader. Your applications can read and write data into etcd.
          A simple use-case is to store database connection details or feature flags within etcd as key value pairs. These values can be watched, allowing your app to reconfigure itself when they change. Advanced uses take advantage of the consistency guarantees to implement database leader elections or do distributed locking across a cluster of workers.
      
          _The etcd Open Cloud Service is Public Alpha. The goal before Beta is to fully implement backup features._
      
          ### Reading and writing to etcd
      
          Communicate with etcd though its command line utility `etcdctl` or with the API using the automatically generated Kubernetes Service.
      
          [Read the complete guide to using the etcd Open Cloud Service](https://coreos.com/tectonic/docs/latest/alm/etcd-ocs.html)
      
          ### Supported Features
      
      
          **High availability**
      
      
          Multiple instances of etcd are networked together and secured. Individual failures or networking issues are transparently handled to keep your cluster up and running.
      
      
          **Automated updates**
      
      
          Rolling out a new etcd version works like all Kubernetes rolling updates. Simply declare the desired version, and the etcd service starts a safe rolling update to the new version automatically.
      
      
          **Backups included**
      
      
          Coming soon, the ability to schedule backups to happen on or off cluster.
        keywords: ['etcd', 'key value', 'database', 'coreos', 'open source']
        version: 0.9.0
        maturity: alpha
        replaces: etcdoperator.v0.6.1
        maintainers:
        - name: CoreOS, Inc
          email: support@coreos.com
      
        provider:
          name: CoreOS, Inc
        labels:
          alm-owner-etcd: etcdoperator
          operated-by: etcdoperator
        selector:
          matchLabels:
            alm-owner-etcd: etcdoperator
            operated-by: etcdoperator
        links:
        - name: Blog
          url: https://coreos.com/etcd
        - name: Documentation
          url: https://coreos.com/operators/etcd/docs/latest/
        - name: etcd Operator Source Code
          url: https://github.com/coreos/etcd-operator
      
        icon:
        - base64data: [encoded data, 5840 characters]
          mediatype: image/png
        install:
          strategy: deployment
          spec:
            permissions:
            - serviceAccountName: etcd-operator
              rules:
              - apiGroups:
                - etcd.database.coreos.com
                resources:
                - etcdclusters
                - etcdbackups
                - etcdrestores
                verbs:
                - "*"
              - apiGroups:
                - ""
                resources:
                - pods
                - services
                - endpoints
                - persistentvolumeclaims
                - events
                verbs:
                - "*"
              - apiGroups:
                - apps
                resources:
                - deployments
                verbs:
                - "*"
              - apiGroups:
                - ""
                resources:
                - secrets
                verbs:
                - get
            deployments:
            - name: etcd-operator
              spec:
                replicas: 1
                selector:
                  matchLabels:
                    name: etcd-operator-alm-owned
                template:
                  metadata:
                    name: etcd-operator-alm-owned
                    labels:
                      name: etcd-operator-alm-owned
                  spec:
                    serviceAccountName: etcd-operator
                    containers:
                    - name: etcd-operator
                      command:
                      - etcd-operator
                      - --create-crd=false
                      image: quay.io/coreos/etcd-operator@sha256:db563baa8194fcfe39d1df744ed70024b0f1f9e9b55b5923c2f3a413c44dc6b8
                      env:
                      - name: MY_POD_NAMESPACE
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.namespace
                      - name: MY_POD_NAME
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.name
                    - name: etcd-backup-operator
                      image: quay.io/coreos/etcd-operator@sha256:db563baa8194fcfe39d1df744ed70024b0f1f9e9b55b5923c2f3a413c44dc6b8
                      command:
                      - etcd-backup-operator
                      - --create-crd=false
                      env:
                      - name: MY_POD_NAMESPACE
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.namespace
                      - name: MY_POD_NAME
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.name
                    - name: etcd-restore-operator
                      image: quay.io/coreos/etcd-operator@sha256:db563baa8194fcfe39d1df744ed70024b0f1f9e9b55b5923c2f3a413c44dc6b8
                      command:
                      - etcd-restore-operator
                      - --create-crd=false
                      env:
                      - name: MY_POD_NAMESPACE
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.namespace
                      - name: MY_POD_NAME
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.name
        customresourcedefinitions:
          owned:
          - name: etcdclusters.etcd.database.coreos.com
            version: v1beta2
            kind: EtcdCluster
            displayName: etcd Cluster
            description: Represents a cluster of etcd nodes.
            resources:
              - kind: Service
                version: v1
              - kind: Pod
                version: v1
            specDescriptors:
              - description: The desired number of member Pods for the etcd cluster.
                displayName: Size
                path: size
                x-descriptors:
                  - 'urn:alm:descriptor:com.tectonic.ui:podCount'
              - description: Limits describes the minimum/maximum amount of compute resources required/allowed
                displayName: Resource Requirements
                path: pod.resources
                x-descriptors:
                  - 'urn:alm:descriptor:com.tectonic.ui:resourceRequirements'
            statusDescriptors:
              - description: The status of each of the member Pods for the etcd cluster.
                displayName: Member Status
                path: members
                x-descriptors:
                  - 'urn:alm:descriptor:com.tectonic.ui:podStatuses'
              - description: The service at which the running etcd cluster can be accessed.
                displayName: Service
                path: serviceName
                x-descriptors:
                  - 'urn:alm:descriptor:io.kubernetes:Service'
              - description: The current size of the etcd cluster.
                displayName: Cluster Size
                path: size
              - description: The current version of the etcd cluster.
                displayName: Current Version
                path: currentVersion
              - description: 'The target version of the etcd cluster, after upgrading.'
                displayName: Target Version
                path: targetVersion
              - description: The current status of the etcd cluster.
                displayName: Status
                path: phase
                x-descriptors:
                  - 'urn:alm:descriptor:io.kubernetes.phase'
              - description: Explanation for the current status of the cluster.
                displayName: Status Details
                path: reason
                x-descriptors:
                  - 'urn:alm:descriptor:io.kubernetes.phase:reason'
          - name: etcdbackups.etcd.database.coreos.com
            version: v1beta2
            kind: EtcdBackup
            displayName: etcd Backup
            description: Represents the intent to backup an etcd cluster.
            specDescriptors:
              - description: Specifies the endpoints of an etcd cluster.
                displayName: etcd Endpoint(s)
                path: etcdEndpoints
                x-descriptors: 
                  - 'urn:alm:descriptor:etcd:endpoint'
              - description: The full AWS S3 path where the backup is saved.
                displayName: S3 Path
                path: s3.path
                x-descriptors: 
                  - 'urn:alm:descriptor:aws:s3:path'
              - description: The name of the secret object that stores the AWS credential and config files.
                displayName: AWS Secret
                path: s3.awsSecret
                x-descriptors: 
                  - 'urn:alm:descriptor:io.kubernetes:Secret'
            statusDescriptors:
              - description: Indicates if the backup was successful.
                displayName: Succeeded
                path: succeeded
                x-descriptors: 
                  - 'urn:alm:descriptor:text'
              - description: Indicates the reason for any backup related failures.
                displayName: Reason
                path: reason
                x-descriptors: 
                  - 'urn:alm:descriptor:io.kubernetes.phase:reason'
          - name: etcdrestores.etcd.database.coreos.com
            version: v1beta2
            kind: EtcdRestore
            displayName: etcd Restore
            description: Represents the intent to restore an etcd cluster from a backup.
            specDescriptors:
              - description: References the EtcdCluster which should be restored,
                displayName: etcd Cluster
                path: etcdCluster.name
                x-descriptors: 
                  - 'urn:alm:descriptor:io.kubernetes:EtcdCluster'
                  - 'urn:alm:descriptor:text'
              - description: The full AWS S3 path where the backup is saved.
                displayName: S3 Path
                path: s3.path
                x-descriptors: 
                  - 'urn:alm:descriptor:aws:s3:path'
              - description: The name of the secret object that stores the AWS credential and config files.
                displayName: AWS Secret
                path: s3.awsSecret
                x-descriptors: 
                  - 'urn:alm:descriptor:io.kubernetes:Secret'
            statusDescriptors:
              - description: Indicates if the restore was successful.
                displayName: Succeeded
                path: succeeded
                x-descriptors: 
                  - 'urn:alm:descriptor:text'
              - description: Indicates the reason for any restore related failures.
                displayName: Reason
                path: reason
                x-descriptors: 
                  - 'urn:alm:descriptor:io.kubernetes.phase:reason'
      
    - #! validate-crd: deploy/chart/templates/0000_30_02-clusterserviceversion.crd.yaml
      #! parse-kind: ClusterServiceVersion
      apiVersion: app.coreos.com/v1alpha1
      kind: ClusterServiceVersion-v1
      metadata:
        name: etcdoperator.v0.9.2
        namespace: placeholder
        annotations:
          tectonic-visibility: ocs
          alm-examples: '[{"apiVersion":"etcd.database.coreos.com/v1beta2","kind":"EtcdCluster","metadata":{"name":"example","namespace":"default"},"spec":{"size":3,"version":"3.2.13"}},{"apiVersion":"etcd.database.coreos.com/v1beta2","kind":"EtcdRestore","metadata":{"name":"example-etcd-cluster"},"spec":{"etcdCluster":{"name":"example-etcd-cluster"},"backupStorageType":"S3","s3":{"path":"<full-s3-path>","awsSecret":"<aws-secret>"}}},{"apiVersion":"etcd.database.coreos.com/v1beta2","kind":"EtcdBackup","metadata":{"name":"example-etcd-cluster-backup"},"spec":{"etcdEndpoints":["<etcd-cluster-endpoints>"],"storageType":"S3","s3":{"path":"<full-s3-path>","awsSecret":"<aws-secret>"}}}]'
      spec:
        displayName: etcd
        description: |
          etcd is a distributed key value store that provides a reliable way to store data across a cluster of machines. It’s open-source and available on GitHub. etcd gracefully handles leader elections during network partitions and will tolerate machine failure, including the leader. Your applications can read and write data into etcd.
          A simple use-case is to store database connection details or feature flags within etcd as key value pairs. These values can be watched, allowing your app to reconfigure itself when they change. Advanced uses take advantage of the consistency guarantees to implement database leader elections or do distributed locking across a cluster of workers.
      
          _The etcd Open Cloud Service is Public Alpha. The goal before Beta is to fully implement backup features._
      
          ### Reading and writing to etcd
      
          Communicate with etcd though its command line utility `etcdctl` or with the API using the automatically generated Kubernetes Service.
      
          [Read the complete guide to using the etcd Open Cloud Service](https://coreos.com/tectonic/docs/latest/alm/etcd-ocs.html)
      
          ### Supported Features
      
      
          **High availability**
      
      
          Multiple instances of etcd are networked together and secured. Individual failures or networking issues are transparently handled to keep your cluster up and running.
      
      
          **Automated updates**
      
      
          Rolling out a new etcd version works like all Kubernetes rolling updates. Simply declare the desired version, and the etcd service starts a safe rolling update to the new version automatically.
      
      
          **Backups included**
      
      
          Coming soon, the ability to schedule backups to happen on or off cluster.
        keywords: ['etcd', 'key value', 'database', 'coreos', 'open source']
        version: 0.9.2
        maturity: alpha
        replaces: etcdoperator.v0.9.0
        maintainers:
        - name: CoreOS, Inc
          email: support@coreos.com
      
        provider:
          name: CoreOS, Inc
        labels:
          alm-owner-etcd: etcdoperator
          operated-by: etcdoperator
        selector:
          matchLabels:
            alm-owner-etcd: etcdoperator
            operated-by: etcdoperator
        links:
        - name: Blog
          url: https://coreos.com/etcd
        - name: Documentation
          url: https://coreos.com/operators/etcd/docs/latest/
        - name: etcd Operator Source Code
          url: https://github.com/coreos/etcd-operator
      
        icon:
        - base64data: [encoded data, 5840 characters]
          mediatype: image/png
        install:
          strategy: deployment
          spec:
            permissions:
            - serviceAccountName: etcd-operator
              rules:
              - apiGroups:
                - etcd.database.coreos.com
                resources:
                - etcdclusters
                - etcdbackups
                - etcdrestores
                verbs:
                - "*"
              - apiGroups:
                - ""
                resources:
                - pods
                - services
                - endpoints
                - persistentvolumeclaims
                - events
                verbs:
                - "*"
              - apiGroups:
                - apps
                resources:
                - deployments
                verbs:
                - "*"
              - apiGroups:
                - ""
                resources:
                - secrets
                verbs:
                - get
            deployments:
            - name: etcd-operator
              spec:
                replicas: 1
                selector:
                  matchLabels:
                    name: etcd-operator-alm-owned
                template:
                  metadata:
                    name: etcd-operator-alm-owned
                    labels:
                      name: etcd-operator-alm-owned
                  spec:
                    serviceAccountName: etcd-operator
                    containers:
                    - name: etcd-operator
                      command:
                      - etcd-operator
                      - --create-crd=false
                      image: quay.io/coreos/etcd-operator@sha256:c0301e4686c3ed4206e370b42de5a3bd2229b9fb4906cf85f3f30650424abec2
                      env:
                      - name: MY_POD_NAMESPACE
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.namespace
                      - name: MY_POD_NAME
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.name
                    - name: etcd-backup-operator
                      image: quay.io/coreos/etcd-operator@sha256:c0301e4686c3ed4206e370b42de5a3bd2229b9fb4906cf85f3f30650424abec2
                      command:
                      - etcd-backup-operator
                      - --create-crd=false
                      env:
                      - name: MY_POD_NAMESPACE
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.namespace
                      - name: MY_POD_NAME
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.name
                    - name: etcd-restore-operator
                      image: quay.io/coreos/etcd-operator@sha256:c0301e4686c3ed4206e370b42de5a3bd2229b9fb4906cf85f3f30650424abec2
                      command:
                      - etcd-restore-operator
                      - --create-crd=false
                      env:
                      - name: MY_POD_NAMESPACE
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.namespace
                      - name: MY_POD_NAME
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.name
        customresourcedefinitions:
          owned:
          - name: etcdclusters.etcd.database.coreos.com
            version: v1beta2
            kind: EtcdCluster
            displayName: etcd Cluster
            description: Represents a cluster of etcd nodes.
            resources:
              - kind: Service
                version: v1
              - kind: Pod
                version: v1
            specDescriptors:
              - description: The desired number of member Pods for the etcd cluster.
                displayName: Size
                path: size
                x-descriptors:
                  - 'urn:alm:descriptor:com.tectonic.ui:podCount'
              - description: Limits describes the minimum/maximum amount of compute resources required/allowed
                displayName: Resource Requirements
                path: pod.resources
                x-descriptors:
                  - 'urn:alm:descriptor:com.tectonic.ui:resourceRequirements'
            statusDescriptors:
              - description: The status of each of the member Pods for the etcd cluster.
                displayName: Member Status
                path: members
                x-descriptors:
                  - 'urn:alm:descriptor:com.tectonic.ui:podStatuses'
              - description: The service at which the running etcd cluster can be accessed.
                displayName: Service
                path: serviceName
                x-descriptors:
                  - 'urn:alm:descriptor:io.kubernetes:Service'
              - description: The current size of the etcd cluster.
                displayName: Cluster Size
                path: size
              - description: The current version of the etcd cluster.
                displayName: Current Version
                path: currentVersion
              - description: 'The target version of the etcd cluster, after upgrading.'
                displayName: Target Version
                path: targetVersion
              - description: The current status of the etcd cluster.
                displayName: Status
                path: phase
                x-descriptors:
                  - 'urn:alm:descriptor:io.kubernetes.phase'
              - description: Explanation for the current status of the cluster.
                displayName: Status Details
                path: reason
                x-descriptors:
                  - 'urn:alm:descriptor:io.kubernetes.phase:reason'
          - name: etcdbackups.etcd.database.coreos.com
            version: v1beta2
            kind: EtcdBackup
            displayName: etcd Backup
            description: Represents the intent to backup an etcd cluster.
            specDescriptors:
              - description: Specifies the endpoints of an etcd cluster.
                displayName: etcd Endpoint(s)
                path: etcdEndpoints
                x-descriptors: 
                  - 'urn:alm:descriptor:etcd:endpoint'
              - description: The full AWS S3 path where the backup is saved.
                displayName: S3 Path
                path: s3.path
                x-descriptors: 
                  - 'urn:alm:descriptor:aws:s3:path'
              - description: The name of the secret object that stores the AWS credential and config files.
                displayName: AWS Secret
                path: s3.awsSecret
                x-descriptors: 
                  - 'urn:alm:descriptor:io.kubernetes:Secret'
            statusDescriptors:
              - description: Indicates if the backup was successful.
                displayName: Succeeded
                path: succeeded
                x-descriptors: 
                  - 'urn:alm:descriptor:text'
              - description: Indicates the reason for any backup related failures.
                displayName: Reason
                path: reason
                x-descriptors: 
                  - 'urn:alm:descriptor:io.kubernetes.phase:reason'
          - name: etcdrestores.etcd.database.coreos.com
            version: v1beta2
            kind: EtcdRestore
            displayName: etcd Restore
            description: Represents the intent to restore an etcd cluster from a backup.
            specDescriptors:
              - description: References the EtcdCluster which should be restored,
                displayName: etcd Cluster
                path: etcdCluster.name
                x-descriptors: 
                  - 'urn:alm:descriptor:io.kubernetes:EtcdCluster'
                  - 'urn:alm:descriptor:text'
              - description: The full AWS S3 path where the backup is saved.
                displayName: S3 Path
                path: s3.path
                x-descriptors: 
                  - 'urn:alm:descriptor:aws:s3:path'
              - description: The name of the secret object that stores the AWS credential and config files.
                displayName: AWS Secret
                path: s3.awsSecret
                x-descriptors: 
                  - 'urn:alm:descriptor:io.kubernetes:Secret'
            statusDescriptors:
              - description: Indicates if the restore was successful.
                displayName: Succeeded
                path: succeeded
                x-descriptors: 
                  - 'urn:alm:descriptor:text'
              - description: Indicates the reason for any restore related failures.
                displayName: Reason
                path: reason
                x-descriptors: 
                  - 'urn:alm:descriptor:io.kubernetes.phase:reason'
      
    - #! validate-crd: deploy/chart/templates/0000_30_02-clusterserviceversion.crd.yaml
      #! parse-kind: ClusterServiceVersion
      apiVersion: app.coreos.com/v1alpha1
      kind: ClusterServiceVersion-v1
      metadata:
        name: prometheusoperator.0.14.0
        namespace: placeholder
      spec:
        displayName: Prometheus
        description: |
          An open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.
      
          _The Prometheus Open Cloud Service is Public Alpha. The goal before Beta is for additional user testing and minor bug fixes._
      
          ### Monitoring applications
      
          Prometheus scrapes your application metrics based on targets maintained in a ServiceMonitor object. When alerts need to be sent, they are processsed by an AlertManager.
      
          [Read the complete guide to monitoring applications with the Prometheus Open Cloud Service](https://coreos.com/tectonic/docs/latest/alm/prometheus-ocs.html)
      
          ## Supported Features
      
          **High availability**
          Multiple instances are run across failure zones and data is replicated. This keeps your monitoring available during an outage, when you need it most.
          **Updates via automated operations**
          New Prometheus versions are deployed using a rolling update with no downtime, making it easy to stay up to date.
          **Handles the dynamic nature of containers**
          Alerting rules are attached to groups of containers instead of individual instances, which is ideal for the highly dynamic nature of container deployment.
      
        keywords: ['prometheus', 'monitoring', 'tsdb', 'alerting']
      
        maintainers:
        - name: CoreOS, Inc
          email: support@coreos.com
      
        provider:
          name: CoreOS, Inc
      
        links:
        - name: Prometheus
          url: https://www.prometheus.io/
        - name: Documentation
          url: https://coreos.com/operators/prometheus/docs/latest/
        - name: Prometheus Operator Source Code
          url: https://github.com/coreos/prometheus-operator
      
        labels:
          alm-status-descriptors: prometheusoperator.0.14.0
          alm-owner-prometheus: prometheusoperator
      
        selector:
          matchLabels:
            alm-owner-prometheus: prometheusoperator
      
        icon:
        - base64data: PHN2ZyB3aWR0aD0iMjQ5MCIgaGVpZ2h0PSIyNTAwIiB2aWV3Qm94PSIwIDAgMjU2IDI1NyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZD0iTTEyOC4wMDEuNjY3QzU3LjMxMS42NjcgMCA1Ny45NzEgMCAxMjguNjY0YzAgNzAuNjkgNTcuMzExIDEyNy45OTggMTI4LjAwMSAxMjcuOTk4UzI1NiAxOTkuMzU0IDI1NiAxMjguNjY0QzI1NiA1Ny45NyAxOTguNjg5LjY2NyAxMjguMDAxLjY2N3ptMCAyMzkuNTZjLTIwLjExMiAwLTM2LjQxOS0xMy40MzUtMzYuNDE5LTMwLjAwNGg3Mi44MzhjMCAxNi41NjYtMTYuMzA2IDMwLjAwNC0zNi40MTkgMzAuMDA0em02MC4xNTMtMzkuOTRINjcuODQyVjE3OC40N2gxMjAuMzE0djIxLjgxNmgtLjAwMnptLS40MzItMzMuMDQ1SDY4LjE4NWMtLjM5OC0uNDU4LS44MDQtLjkxLTEuMTg4LTEuMzc1LTEyLjMxNS0xNC45NTQtMTUuMjE2LTIyLjc2LTE4LjAzMi0zMC43MTYtLjA0OC0uMjYyIDE0LjkzMyAzLjA2IDI1LjU1NiA1LjQ1IDAgMCA1LjQ2NiAxLjI2NSAxMy40NTggMi43MjItNy42NzMtOC45OTQtMTIuMjMtMjAuNDI4LTEyLjIzLTMyLjExNiAwLTI1LjY1OCAxOS42OC00OC4wNzkgMTIuNTgtNjYuMjAxIDYuOTEuNTYyIDE0LjMgMTQuNTgzIDE0LjggMzYuNTA1IDcuMzQ2LTEwLjE1MiAxMC40Mi0yOC42OSAxMC40Mi00MC4wNTYgMC0xMS43NjkgNy43NTUtMjUuNDQgMTUuNTEyLTI1LjkwNy02LjkxNSAxMS4zOTYgMS43OSAyMS4xNjUgOS41MyA0NS40IDIuOTAyIDkuMTAzIDIuNTMyIDI0LjQyMyA0Ljc3MiAzNC4xMzguNzQ0LTIwLjE3OCA0LjIxMy00OS42MiAxNy4wMTQtNTkuNzg0LTUuNjQ3IDEyLjguODM2IDI4LjgxOCA1LjI3IDM2LjUxOCA3LjE1NCAxMi40MjQgMTEuNDkgMjEuODM2IDExLjQ5IDM5LjYzOCAwIDExLjkzNi00LjQwNyAyMy4xNzMtMTEuODQgMzEuOTU4IDguNDUyLTEuNTg2IDE0LjI4OS0zLjAxNiAxNC4yODktMy4wMTZsMjcuNDUtNS4zNTVjLjAwMi0uMDAyLTMuOTg3IDE2LjQwMS0xOS4zMTQgMzIuMTk3eiIgZmlsbD0iI0RBNEUzMSIvPjwvc3ZnPg==
          mediatype: image/svg+xml
      
        install:
          strategy: deployment
          spec:
            permissions:
            - serviceAccountName: prometheus-k8s
              rules:
              - apiGroups: [""]
                resources:
                - nodes
                - services
                - endpoints
                - pods
                verbs: ["get", "list", "watch"]
              - apiGroups: [""]
                resources:
                - configmaps
                verbs: ["get"]
            - serviceAccountName: prometheus-operator-0-14-0
              rules:
              - apiGroups:
                - apiextensions.k8s.io
                resources:
                - customresourcedefinitions
                verbs: ["get", "list"]
              - apiGroups:
                - monitoring.coreos.com
                resources:
                - alertmanagers
                - prometheuses
                - servicemonitors
                verbs:
                - "*"
              - apiGroups:
                - apps
                resources:
                - statefulsets
                verbs: ["*"]
              - apiGroups: [""]
                resources:
                - configmaps
                - secrets
                verbs: ["*"]
              - apiGroups: [""]
                resources:
                - pods
                verbs: ["list", "delete"]
              - apiGroups: [""]
                resources:
                - services
                - endpoints
                verbs: ["get", "create", "update"]
              - apiGroups: [""]
                resources:
                - nodes
                verbs: ["list", "watch"]
              - apiGroups: [""]
                resources:
                - namespaces
                verbs: ['list']
            deployments:
            - name: prometheus-operator
              spec:
                replicas: 1
                selector:
                  matchLabels:
                    k8s-app: prometheus-operator
                template:
                  metadata:
                    labels:
                      k8s-app: prometheus-operator
                  spec:
                    serviceAccount: prometheus-operator-0-14-0
                    containers:
                    - name: prometheus-operator
                      image: quay.io/coreos/prometheus-operator@sha256:5037b4e90dbb03ebdefaa547ddf6a1f748c8eeebeedf6b9d9f0913ad662b5731
                      command:
                        - sh
                        - -c
                        - >
                          /bin/operator --namespace=$K8S_NAMESPACE --crd-apigroup monitoring.coreos.com
                          --labels alm-status-descriptors=prometheusoperator.0.14.0,alm-owner-prometheus=prometheusoperator
                          --kubelet-service=kube-system/kubelet
                          --config-reloader-image=quay.io/coreos/configmap-reload:v0.0.1
                      env:
                        - name: K8S_NAMESPACE
                          valueFrom:
                            fieldRef:
                              fieldPath: metadata.namespace
                      ports:
                      - containerPort: 8080
                        name: http
                      resources:
                        limits:
                          cpu: 200m
                          memory: 100Mi
                        requests:
                          cpu: 100m
                          memory: 50Mi
        maturity: alpha
        version: 0.14.0
        customresourcedefinitions:
          owned:
          - name: prometheuses.monitoring.coreos.com
            version: v1
            kind: Prometheus
            displayName: Prometheus
            description: A running Prometheus instance
            resources:
              - kind: Pod
                version: v1
            specDescriptors:
            - description: Desired number of Pods for the cluster
              displayName: Size
              path: replicas
              x-descriptors:
                - 'urn:alm:descriptor:com.tectonic.ui:podCount'
            - description: A selector for the ConfigMaps from which to load rule files
              displayName: Rule Config Map Selector
              path: ruleSelector
              x-descriptors:
                - 'urn:alm:descriptor:com.tectonic.ui:selector:ConfigMap'
            - description: ServiceMonitors to be selected for target discovery
              displayName: Service Monitor Selector
              path: serviceMonitorSelector
              x-descriptors:
                - 'urn:alm:descriptor:com.tectonic.ui:selector:ServiceMonitor'
            - description: The ServiceAccount to use to run the Prometheus pods
              displayName: Service Account
              path: serviceAccountName
              x-descriptors:
                - 'urn:alm:descriptor:io.kubernetes:ServiceAccount'
            - description: Define resources requests and limits for single Pods
              displayName: Resource Request
              path: resources.requests
              x-descriptors:
                - 'urn:alm:descriptor:com.tectonic.ui:resourceRequirements'
            statusDescriptors:
              - description: The current number of Pods for the cluster
                displayName: Cluster Size
                path: replicas
              - path: prometheusSelector
                displayName: Prometheus Service Selector
                description: Label selector to find the service that routes to this prometheus
                x-descriptors:
                - 'urn:alm:descriptor:label:selector'
          - name: servicemonitors.monitoring.coreos.com
            version: v1
            kind: ServiceMonitor
            displayName: Service Monitor
            description: Configures prometheus to monitor a particular k8s service
            resources:
              - kind: Pod
                version: v1
            specDescriptors:
            - description: Selector to select which namespaces the Endpoints objects are discovered from
              displayName: Monitoring Namespaces
              path: namespaceSelector
              x-descriptors:
                - 'urn:alm:descriptor:com.tectonic.ui:namespaceSelector'
            - description: The label to use to retrieve the job name from
              displayName: Job Label
              path: jobLabel
              x-descriptors:
                - 'urn:alm:descriptor:com.tectonic.ui:label'
            - description: A list of endpoints allowed as part of this ServiceMonitor
              displayName: Endpoints
              path: endpoints
              x-descriptors:
                - 'urn:alm:descriptor:com.tectonic.ui:endpointList'
          - name: alertmanagers.monitoring.coreos.com
            version: v1
            kind: Alertmanager
            displayName: Alert Manager
            description: Configures an Alert Manager for the namespace
            resources:
              - kind: Pod
                version: v1
            specDescriptors:
            - description: Desired number of Pods for the cluster
              displayName: Size
              path: replicas
              x-descriptors:
              - 'urn:alm:descriptor:com.tectonic.ui:podCount'
      
    - #! validate-crd: deploy/chart/templates/0000_30_02-clusterserviceversion.crd.yaml
      #! parse-kind: ClusterServiceVersion
      apiVersion: app.coreos.com/v1alpha1
      kind: ClusterServiceVersion-v1
      metadata:
        name: prometheusoperator.0.15.0
        namespace: placeholder
        annotations:
          tectonic-visibility: ocs
          alm-examples: '[{"apiVersion":"monitoring.coreos.com/v1","kind":"Prometheus","metadata":{"name":"example","labels":{"prometheus":"k8s"}},"spec":{"replicas":2,"version":"v1.7.0","serviceAccountName":"prometheus-k8s","serviceMonitorSelector":{"matchExpressions":[{"key":"k8s-app","operator":"Exists"}]},"ruleSelector":{"matchLabels":{"role":"prometheus-rulefiles","prometheus":"k8s"}},"resources":{"requests":{"memory":"400Mi"}},"alerting":{"alertmanagers":[{"namespace":"monitoring","name":"alertmanager-main","port":"web"}]}}},{"apiVersion":"monitoring.coreos.com/v1","kind":"ServiceMonitor","metadata":{"name":"example","labels":{"k8s-app":"prometheus"}},"spec":{"selector":{"matchLabels":{"k8s-app":"prometheus","prometheus":"k8s"}},"namespaceSelector":{"matchNames":["monitoring"]},"endpoints":[{"port":"web","interval":"30s"}]}},{"apiVersion":"monitoring.coreos.com/v1","kind":"Alertmanager","metadata":{"name":"alertmanager-main"},"spec":{"replicas":3}}]'
      spec:
        replaces: prometheusoperator.0.14.0
        displayName: Prometheus
        description: |
          An open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.
      
          _The Prometheus Open Cloud Service is Public Alpha. The goal before Beta is for additional user testing and minor bug fixes._
      
          ### Monitoring applications
      
          Prometheus scrapes your application metrics based on targets maintained in a ServiceMonitor object. When alerts need to be sent, they are processsed by an AlertManager.
      
          [Read the complete guide to monitoring applications with the Prometheus Open Cloud Service](https://coreos.com/tectonic/docs/latest/alm/prometheus-ocs.html)
      
          ### Supported Features
      
      
          **High availability**
      
      
          Multiple instances are run across failure zones and data is replicated. This keeps your monitoring available during an outage, when you need it most.
      
      
          **Updates via automated operations**
      
      
          New Prometheus versions are deployed using a rolling update with no downtime, making it easy to stay up to date.
      
      
          **Handles the dynamic nature of containers**
      
      
          Alerting rules are attached to groups of containers instead of individual instances, which is ideal for the highly dynamic nature of container deployment.
      
        keywords: ['prometheus', 'monitoring', 'tsdb', 'alerting']
      
        maintainers:
        - name: CoreOS, Inc
          email: support@coreos.com
      
        provider:
          name: CoreOS, Inc
      
        links:
        - name: Prometheus
          url: https://www.prometheus.io/
        - name: Documentation
          url: https://coreos.com/operators/prometheus/docs/latest/
        - name: Prometheus Operator Source Code
          url: https://github.com/coreos/prometheus-operator
      
        labels:
          alm-status-descriptors: prometheusoperator.0.15.0
          alm-owner-prometheus: prometheusoperator
      
        selector:
          matchLabels:
            alm-owner-prometheus: prometheusoperator
      
        icon:
        - base64data: PHN2ZyB3aWR0aD0iMjQ5MCIgaGVpZ2h0PSIyNTAwIiB2aWV3Qm94PSIwIDAgMjU2IDI1NyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZD0iTTEyOC4wMDEuNjY3QzU3LjMxMS42NjcgMCA1Ny45NzEgMCAxMjguNjY0YzAgNzAuNjkgNTcuMzExIDEyNy45OTggMTI4LjAwMSAxMjcuOTk4UzI1NiAxOTkuMzU0IDI1NiAxMjguNjY0QzI1NiA1Ny45NyAxOTguNjg5LjY2NyAxMjguMDAxLjY2N3ptMCAyMzkuNTZjLTIwLjExMiAwLTM2LjQxOS0xMy40MzUtMzYuNDE5LTMwLjAwNGg3Mi44MzhjMCAxNi41NjYtMTYuMzA2IDMwLjAwNC0zNi40MTkgMzAuMDA0em02MC4xNTMtMzkuOTRINjcuODQyVjE3OC40N2gxMjAuMzE0djIxLjgxNmgtLjAwMnptLS40MzItMzMuMDQ1SDY4LjE4NWMtLjM5OC0uNDU4LS44MDQtLjkxLTEuMTg4LTEuMzc1LTEyLjMxNS0xNC45NTQtMTUuMjE2LTIyLjc2LTE4LjAzMi0zMC43MTYtLjA0OC0uMjYyIDE0LjkzMyAzLjA2IDI1LjU1NiA1LjQ1IDAgMCA1LjQ2NiAxLjI2NSAxMy40NTggMi43MjItNy42NzMtOC45OTQtMTIuMjMtMjAuNDI4LTEyLjIzLTMyLjExNiAwLTI1LjY1OCAxOS42OC00OC4wNzkgMTIuNTgtNjYuMjAxIDYuOTEuNTYyIDE0LjMgMTQuNTgzIDE0LjggMzYuNTA1IDcuMzQ2LTEwLjE1MiAxMC40Mi0yOC42OSAxMC40Mi00MC4wNTYgMC0xMS43NjkgNy43NTUtMjUuNDQgMTUuNTEyLTI1LjkwNy02LjkxNSAxMS4zOTYgMS43OSAyMS4xNjUgOS41MyA0NS40IDIuOTAyIDkuMTAzIDIuNTMyIDI0LjQyMyA0Ljc3MiAzNC4xMzguNzQ0LTIwLjE3OCA0LjIxMy00OS42MiAxNy4wMTQtNTkuNzg0LTUuNjQ3IDEyLjguODM2IDI4LjgxOCA1LjI3IDM2LjUxOCA3LjE1NCAxMi40MjQgMTEuNDkgMjEuODM2IDExLjQ5IDM5LjYzOCAwIDExLjkzNi00LjQwNyAyMy4xNzMtMTEuODQgMzEuOTU4IDguNDUyLTEuNTg2IDE0LjI4OS0zLjAxNiAxNC4yODktMy4wMTZsMjcuNDUtNS4zNTVjLjAwMi0uMDAyLTMuOTg3IDE2LjQwMS0xOS4zMTQgMzIuMTk3eiIgZmlsbD0iI0RBNEUzMSIvPjwvc3ZnPg==
          mediatype: image/svg+xml
      
        install:
          strategy: deployment
          spec:
            permissions:
            - serviceAccountName: prometheus-k8s
              rules:
              - apiGroups: [""]
                resources:
                - nodes
                - services
                - endpoints
                - pods
                verbs: ["get", "list", "watch"]
              - apiGroups: [""]
                resources:
                - configmaps
                verbs: ["get"]
            - serviceAccountName: prometheus-operator-0-14-0
              rules:
              - apiGroups:
                - apiextensions.k8s.io
                resources:
                - customresourcedefinitions
                verbs: ["get", "list"]
              - apiGroups:
                - monitoring.coreos.com
                resources:
                - alertmanagers
                - prometheuses
                - servicemonitors
                verbs:
                - "*"
              - apiGroups:
                - apps
                resources:
                - statefulsets
                verbs: ["*"]
              - apiGroups: [""]
                resources:
                - configmaps
                - secrets
                verbs: ["*"]
              - apiGroups: [""]
                resources:
                - pods
                verbs: ["list", "delete"]
              - apiGroups: [""]
                resources:
                - services
                - endpoints
                verbs: ["get", "create", "update"]
              - apiGroups: [""]
                resources:
                - nodes
                verbs: ["list", "watch"]
              - apiGroups: [""]
                resources:
                - namespaces
                verbs: ['list']
            deployments:
            - name: prometheus-operator
              spec:
                replicas: 1
                selector:
                  matchLabels:
                    k8s-app: prometheus-operator
                template:
                  metadata:
                    labels:
                      k8s-app: prometheus-operator
                  spec:
                    serviceAccount: prometheus-operator-0-14-0
                    containers:
                    - name: prometheus-operator
                      image: quay.io/coreos/prometheus-operator@sha256:0e92dd9b5789c4b13d53e1319d0a6375bcca4caaf0d698af61198061222a576d
                      command:
                        - sh
                        - -c
                        - >
                          /bin/operator --namespace=$K8S_NAMESPACE --crd-apigroup monitoring.coreos.com
                          --labels alm-status-descriptors=prometheusoperator.0.15.0,alm-owner-prometheus=prometheusoperator
                          --kubelet-service=kube-system/kubelet
                          --config-reloader-image=quay.io/coreos/configmap-reload:v0.0.1
                      env:
                        - name: K8S_NAMESPACE
                          valueFrom:
                            fieldRef:
                              fieldPath: metadata.namespace
                      ports:
                      - containerPort: 8080
                        name: http
                      resources:
                        limits:
                          cpu: 200m
                          memory: 100Mi
                        requests:
                          cpu: 100m
                          memory: 50Mi
        maturity: alpha
        version: 0.15.0
        customresourcedefinitions:
          owned:
          - name: prometheuses.monitoring.coreos.com
            version: v1
            kind: Prometheus
            displayName: Prometheus
            description: A running Prometheus instance
            resources:
              - kind: StatefulSet
                version: v1beta2
              - kind: Pod
                version: v1
            specDescriptors:
            - description: Desired number of Pods for the cluster
              displayName: Size
              path: replicas
              x-descriptors:
                - 'urn:alm:descriptor:com.tectonic.ui:podCount'
            - description: A selector for the ConfigMaps from which to load rule files
              displayName: Rule Config Map Selector
              path: ruleSelector
              x-descriptors:
                - 'urn:alm:descriptor:com.tectonic.ui:selector:ConfigMap'
            - description: ServiceMonitors to be selected for target discovery
              displayName: Service Monitor Selector
              path: serviceMonitorSelector
              x-descriptors:
                - 'urn:alm:descriptor:com.tectonic.ui:selector:ServiceMonitor'
            - description: The ServiceAccount to use to run the Prometheus pods
              displayName: Service Account
              path: serviceAccountName
              x-descriptors:
                - 'urn:alm:descriptor:io.kubernetes:ServiceAccount'
            - description: Limits describes the minimum/maximum amount of compute resources required/allowed
              displayName: Resource Requirements
              path: resources
              x-descriptors:
                - 'urn:alm:descriptor:com.tectonic.ui:resourceRequirements'
            statusDescriptors:
              - description: The current number of Pods for the cluster
                displayName: Cluster Size
                path: replicas
              - path: prometheusSelector
                displayName: Prometheus Service Selector
                description: Label selector to find the service that routes to this prometheus
                x-descriptors:
                - 'urn:alm:descriptor:label:selector'
          - name: servicemonitors.monitoring.coreos.com
            version: v1
            kind: ServiceMonitor
            displayName: Service Monitor
            description: Configures prometheus to monitor a particular k8s service
            resources:
              - kind: Pod
                version: v1
            specDescriptors:
            - description: Selector to select which namespaces the Endpoints objects are discovered from
              displayName: Monitoring Namespaces
              path: namespaceSelector
              x-descriptors:
                - 'urn:alm:descriptor:com.tectonic.ui:namespaceSelector'
            - description: The label to use to retrieve the job name from
              displayName: Job Label
              path: jobLabel
              x-descriptors:
                - 'urn:alm:descriptor:com.tectonic.ui:label'
            - description: A list of endpoints allowed as part of this ServiceMonitor
              displayName: Endpoints
              path: endpoints
              x-descriptors:
                - 'urn:alm:descriptor:com.tectonic.ui:endpointList'
          - name: alertmanagers.monitoring.coreos.com
            version: v1
            kind: Alertmanager
            displayName: Alert Manager
            description: Configures an Alert Manager for the namespace
            resources:
              - kind: StatefulSet
                version: v1beta2
              - kind: Pod
                version: v1
            specDescriptors:
            - description: Desired number of Pods for the cluster
              displayName: Size
              path: replicas
              x-descriptors:
              - 'urn:alm:descriptor:com.tectonic.ui:podCount'
            - description: Limits describes the minimum/maximum amount of compute resources required/allowed
              displayName: Resource Requirements
              path: resources
              x-descriptors:
                - 'urn:alm:descriptor:com.tectonic.ui:resourceRequirements'
      
    - #! validate-crd: deploy/chart/templates/0000_30_02-clusterserviceversion.crd.yaml
      #! parse-kind: ClusterServiceVersion
      apiVersion: app.coreos.com/v1alpha1
      kind: ClusterServiceVersion-v1
      metadata:
        name: vault-operator.0.1.9
        namespace: placeholder
        annotations:
          tectonic-visibility: ocs
          alm-examples: '[{"apiVersion":"vault.security.coreos.com/v1alpha1","kind":"VaultService","metadata":{"name":"example"},"spec":{"nodes":2,"version":"0.9.1-0"}}]'
        labels:
          alm-catalog: tectonic-ocs
      spec:
        displayName: Vault
        description: |
          An encrypted, multi-tentant secure secret store. Vault handles the lifecycle of your secrets: leasing, key revocation, key rolling, and auditing.
      
          _The Vault Open Cloud Service is Public Alpha. The goal before Beta is for additional user testing and minor bug fixes._
      
          ### Unsealing and using Vault
      
          Once a Vault instance is running, it must be initalized and "unsealed". Afterwards, your software can use the automatically created Kubernetes Service and Secret to communicate with it.
      
          [Read the complete guide to using the Vault Open Cloud Service](https://coreos.com/tectonic/docs/latest/alm/vault-ocs.html)
      
          ### Supported Features
      
          **Secure by Default**
      
      
          Hands-free automated creation of TLS certificates between all components ensure all best practices are followed for secret security. Further, the API makes unseal operations easy.
      
      
          **Highly available**
      
      
          Multiple instances of Vault are clustered together via an etcd backend and secured.
      
      
          **Safe Upgrades**
      
      
          Rolling out a new Vault version is as easy as updating the Vault Cluster definition. Everything is automatically handled using Vault best practices while pausing for unseal tokens.
      
        keywords: ['vault', 'secret', 'encryption']
        maintainers:
        - name: CoreOS, Inc
          email: support@coreos.com
        provider:
          name: CoreOS, Inc
        links:
        - name: Vault Project
          url: https://www.vaultproject.io/
        labels:
          alm-status-descriptors: vault-operator.0.1.9
          alm-owner-vault: vault-operator
          operated-by: vault-operator
        selector:
          matchLabels:
            alm-owner-vault: vault-operator
            operated-by: vault-operator
        icon:
        - base64data: [encoded data, 27920 characters]
          mediatype: image/png
        install:
          strategy: deployment
          spec:
            permissions:
            - serviceAccountName: vault-operator
              rules:
              - apiGroups:
                - etcd.database.coreos.com
                resources:
                - etcdclusters
                verbs:
                - "*"
              - apiGroups:
                - vault.security.coreos.com
                resources:
                - vaultservices
                verbs:
                - "*"
              - apiGroups:
                - storage.k8s.io
                resources:
                - storageclasses
                verbs:
                - "*"
              - apiGroups:
                - ""
                resources:
                - pods
                - services
                - endpoints
                - persistentvolumeclaims
                - events
                - configmaps
                - secrets
                verbs:
                - "*"
              - apiGroups:
                - apps
                resources:
                - deployments
                verbs:
                - "*"
            deployments:
            - name: vault-operator
              spec:
                replicas: 1
                selector:
                  matchLabels:
                    name: vault-operator
                template:
                  metadata:
                    labels:
                      name: vault-operator
                  spec:
                    serviceAccountName: vault-operator
                    containers:
                    - name: vault-operator
                      image: quay.io/coreos/vault-operator@sha256:945a0a6d88cf6fa2bce9a83019a2a64f74d89fc8281301a4259f3302eabc79e6
                      env:
                      - name: MY_POD_NAMESPACE
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.namespace
                      - name: MY_POD_NAME
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.name
        version: 0.1.9
        replaces: vault-operator.0.1.5
        maturity: alpha
        customresourcedefinitions:
          owned:
          - name: vaultservices.vault.security.coreos.com
            version: v1alpha1
            kind: VaultService
            displayName: Vault Service
            description: A running Vault instance, backed by an Etcd Cluster
            resources:
              - name: etcdclusters.etcd.database.coreos.com
                version: v1beta2
                kind: EtcdCluster
              - kind: Service
                version: v1
              - kind: ConfigMap
                version: v1
              - kind: Secret
                version: v1
              - kind: Deployment
                version: v1beta2
              - kind: ReplicaSet
                version: v1beta2
              - kind: Pod
                version: v1
            specDescriptors:
              - description: The desired number of Pods for the cluster
                displayName: Size
                path: nodes
                x-descriptors:
                  - 'urn:alm:descriptor:com.tectonic.ui:podCount'
            statusDescriptors:
              - description: The service at which the running Vault cluster can be accessed.
                displayName: Service
                path: serviceName
                x-descriptors:
                  - 'urn:alm:descriptor:io.kubernetes:Service'
              - description: The port at which the Vault cluster is running under the service.
                displayName: Client Port
                path: clientPort
          required:
          - name: etcdclusters.etcd.database.coreos.com
            version: v1beta2
            kind: EtcdCluster
            displayName: etcd Cluster
            description: Represents a cluster of etcd nodes.
          - name: etcdbackups.etcd.database.coreos.com
            version: v1beta2
            kind: EtcdBackup
            displayName: etcd Backup
            description: Represents a backup for an etcd cluster
          - name: etcdrestores.etcd.database.coreos.com
            version: v1beta2
            kind: EtcdRestore
            displayName: etcd Restore
            description: Represents one try of restoring etcd cluster from previous backup
      
    - #! validate-crd: deploy/chart/templates/0000_30_02-clusterserviceversion.crd.yaml
      #! parse-kind: ClusterServiceVersion
      apiVersion: app.coreos.com/v1alpha1
      kind: ClusterServiceVersion-v1
      metadata:
        namespace: placeholder
        name: vault-operator.0.1.5
        annotations:
          tectonic-visibility: ocs
      spec:
        displayName: Vault
        description: |
          An encrypted, multi-tentant secure secret store. Vault handles the lifecycle of your secrets: leasing, key revocation, key rolling, and auditing.
      
          _The Vault Open Cloud Service is Public Alpha. The goal before Beta is for additional user testing and minor bug fixes._
      
          ### Unsealing and using Vault
      
          Once a Vault instance is running, it must be initalized and "unsealed". Afterwards, your software can use the automatically created Kubernetes Service and Secret to communicate with it.
      
          [Read the complete guide to using the Vault Open Cloud Service](https://coreos.com/tectonic/docs/latest/alm/vault-ocs.html)
      
          ### Supported Features
      
          **Secure by Default**
          Hands-free automated creation of TLS certificates between all components ensure all best practices are followed for secret security. Further, the API makes unseal operations easy.
          **Highly available**
          Multiple instances of Vault are clustered together via an etcd backend and secured.
          **Safe Upgrades**
          Rolling out a new Vault version is as easy as updating the Vault Cluster definition. Everything is automatically handled using Vault best practices while pausing for unseal tokens.
      
        keywords: ['vault', 'secret', 'encryption']
        maintainers:
        - name: CoreOS, Inc
          email: support@coreos.com
        provider:
          name: CoreOS, Inc
        links:
        - name: Vault Project
          url: https://www.vaultproject.io/
        labels:
          alm-status-descriptors: vault-operator.0.1.5
          alm-owner-vault: vault-operator
          operated-by: vault-operator
        selector:
          matchLabels:
            alm-owner-vault: vault-operator
            operated-by: vault-operator
        icon:
        - base64data: [encoded data, 27920 characters]
          mediatype: image/png
        install:
          strategy: deployment
          spec:
            permissions:
            - serviceAccountName: vault-operator
              rules:
              - apiGroups:
                - etcd.database.coreos.com
                resources:
                - etcdclusters
                verbs:
                - "*"
              - apiGroups:
                - vault.security.coreos.com
                resources:
                - vaultservices
                verbs:
                - "*"
              - apiGroups:
                - storage.k8s.io
                resources:
                - storageclasses
                verbs:
                - "*"
              - apiGroups:
                - ""
                resources:
                - pods
                - services
                - endpoints
                - persistentvolumeclaims
                - events
                - configmaps
                - secrets
                verbs:
                - "*"
              - apiGroups:
                - apps
                resources:
                - deployments
                verbs:
                - "*"
            deployments:
            - name: vault-operator
              spec:
                replicas: 1
                selector:
                  matchLabels:
                    name: vault-operator
                template:
                  metadata:
                    labels:
                      name: vault-operator
                  spec:
                    serviceAccountName: vault-operator
                    containers:
                    - name: vault-operator
                      image: quay.io/coreos/vault-operator@sha256:74036811bc5d6cc1a136d8cc6d5577db67f29ba95eba02fbf0c3a8d2357dc8fe
                      env:
                      - name: MY_POD_NAMESPACE
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.namespace
                      - name: MY_POD_NAME
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.name
        version: 0.1.5
        maturity: alpha
        customresourcedefinitions:
          owned:
          - name: vaultservices.vault.security.coreos.com
            version: v1alpha1
            kind: VaultService
            displayName: Vault Service
            description: A running Vault instance, backed by an Etcd Cluster
            resources:
              - name: etcdclusters.etcd.database.coreos.com
                version: v1beta2
                kind: EtcdCluster
              - kind: Service
                version: v1
              - kind: ConfigMap
                version: v1
              - kind: Secret
                version: v1
              - kind: Pod
                version: v1
            specDescriptors:
              - description: The desired number of Pods for the cluster
                displayName: Size
                path: nodes
                x-descriptors:
                  - 'urn:alm:descriptor:com.tectonic.ui:podCount'
            statusDescriptors:
              - description: The status of each of the node Pods for the Vault cluster.
                displayName: Node Status
                path: nodes
                x-descriptors:
                  - 'urn:alm:descriptor:com.tectonic.ui:podStatuses'
              - description: The service at which the running Vault cluster can be accessed.
                displayName: Service
                path: serviceName
                x-descriptors:
                  - 'urn:alm:descriptor:io.kubernetes:Service'
              - description: The port at which the Vault cluster is running under the service.
                displayName: Client Port
                path: clientPort
          required:
          - name: etcdclusters.etcd.database.coreos.com
            version: v1beta2
            kind: EtcdCluster
            displayName: etcd Cluster
            description: Represents a cluster of etcd nodes.
      
  packages: |-
    - #! package-manifest: ./deploy/chart/catalog_resources/ocs/etcdoperator.v0.9.2.clusterserviceversion.yaml
      packageName: etcd
      channels:
      - name: alpha
        currentCSV: etcdoperator.v0.9.2
      
    - #! package-manifest: ./deploy/chart/catalog_resources/ocs/prometheusoperator.0.15.0.clusterserviceversion.yaml
      packageName: prometheus
      channels:
      - name: alpha
        currentCSV: prometheusoperator.0.15.0
      
    - #! package-manifest: ./deploy/chart/catalog_resources/ocs/vaultoperator.0.1.9.clusterserviceversion.yaml
      packageName: vault
      channels:
      - name: alpha
        currentCSV: vault-operator.0.1.9
      

