
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.2.4
  creationTimestamp: null
  name: kubernetesapplications.workload.crossplane.io
spec:
  additionalPrinterColumns:
  - JSONPath: .spec.targetRef.name
    name: CLUSTER
    type: string
  - JSONPath: .status.state
    name: STATUS
    type: string
  - JSONPath: .status.desiredResources
    name: DESIRED
    type: integer
  - JSONPath: .status.submittedResources
    name: SUBMITTED
    type: integer
  group: workload.crossplane.io
  names:
    categories:
    - crossplane
    kind: KubernetesApplication
    listKind: KubernetesApplicationList
    plural: kubernetesapplications
    singular: kubernetesapplication
  scope: Namespaced
  subresources:
    status: {}
  validation:
    openAPIV3Schema:
      description: 'A KubernetesApplication defines an application deployed by Crossplane to a Kubernetes cluster, i.e. a portable KubernetesCluster resource claim. Deprecated: See https://github.com/crossplane/crossplane/issues/1595'
      properties:
        apiVersion:
          description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
          type: string
        kind:
          description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
          type: string
        metadata:
          type: object
        spec:
          description: A KubernetesApplicationSpec specifies the resources of a Kubernetes application.
          properties:
            resourceSelector:
              description: ResourceSelector selects the KubernetesApplicationResources that are managed by this KubernetesApplication. Note that a KubernetesApplication will never adopt orphaned KubernetesApplicationResources, and thus this selector serves only to help match a KubernetesApplication to its KubernetesApplicationResources.
              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
            resourceTemplates:
              description: ResourceTemplates specifies a set of Kubernetes application resources managed by this application.
              items:
                description: A KubernetesApplicationResourceTemplate is used to instantiate new KubernetesApplicationResources.
                properties:
                  metadata:
                    type: object
                  spec:
                    description: KubernetesApplicationResourceSpec specifies the desired state of a KubernetesApplicationResource.
                    properties:
                      secrets:
                        description: Secrets upon which this application resource depends. These secrets will be propagated to the Kubernetes cluster to which this application is scheduled.
                        items:
                          description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
                          properties:
                            name:
                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
                              type: string
                          type: object
                        type: array
                      targetRef:
                        description: Target to which this application has been scheduled.
                        properties:
                          name:
                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                            type: string
                        required:
                        - name
                        type: object
                      template:
                        description: A Template for a Kubernetes resource to be submitted to the KubernetesCluster to which this application resource is scheduled. The resource must be understood by the KubernetesCluster. Crossplane requires only that the resource contains standard Kubernetes type and object metadata.
                        type: object
                    required:
                    - template
                    type: object
                type: object
              type: array
            targetRef:
              description: Target to which this application has been scheduled.
              properties:
                name:
                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                  type: string
              required:
              - name
              type: object
            targetSelector:
              description: TargetSelector selects the targets to which this application may be scheduled. Leave both match labels and expressions empty to match any target.
              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:
          - resourceSelector
          - resourceTemplates
          type: object
        status:
          description: KubernetesApplicationStatus represents the observed state of a KubernetesApplication.
          properties:
            conditionedStatus:
              description: A ConditionedStatus reflects the observed status of a resource. Only one condition of each type may exist.
              properties:
                conditions:
                  description: Conditions of the resource.
                  items:
                    description: A Condition that may apply to a resource.
                    properties:
                      lastTransitionTime:
                        description: LastTransitionTime is the last time this condition transitioned from one status to another.
                        format: date-time
                        type: string
                      message:
                        description: A Message containing details about this condition's last transition from one status to another, if any.
                        type: string
                      reason:
                        description: A Reason for this condition's last transition from one status to another.
                        type: string
                      status:
                        description: Status of this condition; is it currently True, False, or Unknown?
                        type: string
                      type:
                        description: Type of this condition. At most one of each condition type may apply to a resource at any point in time.
                        type: string
                    required:
                    - lastTransitionTime
                    - reason
                    - status
                    - type
                    type: object
                  type: array
              type: object
            desiredResources:
              description: Desired resources of this application, i.e. the number of resources that match this application's resource selector.
              type: integer
            state:
              description: State of the application.
              type: string
            submittedResources:
              description: Submitted resources of this workload, i.e. the subset of desired resources that have been successfully submitted to their scheduled Kubernetes cluster.
              type: integer
          type: object
      type: object
  version: v1alpha1
  versions:
  - name: v1alpha1
    served: true
    storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
