---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: secretpropagations.examples.metacontroller.io
spec:
  group: examples.metacontroller.io
  scope: Cluster
  names:
    plural: secretpropagations
    singular: secretpropagation
    kind: SecretPropagation
    shortNames: ["cp"]
  versions:
  - name: v1alpha1
    served: true
    storage: true
    schema:
      openAPIV3Schema:
        type: object
        properties:
          spec:
            type: object
            properties:
              sourceName:
                description: 'Name of secret to propagate'
                type: string
              sourceNamespace:
                description: 'Namespace in which secret to propagate is located'
                type: string
              targetNamespaceLabelSelector:
                description: Selector to select target namespaces.
                properties:
                  matchExpressions:
                    description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                    items:
                      description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
                      properties:
                        key:
                          description: key is the label key that the selector applies to.
                          type: string
                        operator:
                          description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
                          type: string
                        values:
                          description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
                          items:
                            type: string
                          type: array
                      required:
                      - key
                      - operator
                      type: object
                    type: array
                  matchLabels:
                    additionalProperties:
                      type: string
                    description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
                    type: object
                type: object
            required:
            - sourceName
            - sourceNamespace
            - targetNamespaceLabelSelector
          status:
            type: object
            properties:
              working:
                type: string
        required:
        - spec
    subresources:
      status: {}