apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: containermomdeployments.containermom.io
spec:
  group: containermom.io
  names:
    kind: ContainerMomDeployment
    listKind: ContainerMomDeploymentList
    plural: containermomdeployments
    singular: containermomdeployment
    shortNames:
      - cmd
  scope: Namespaced
  versions:
    - name: v1alpha1
      served: true
      storage: true
      schema:
        openAPIV3Schema:
          type: object
          properties:
            spec:
              type: object
              required: ["source", "clusters", "resources"]
              properties:
                source:
                  type: object
                  properties:
                    gitUrl:
                      type: string
                    buildConfig:
                      type: object
                      properties:
                        builderImage:
                          type: string
                        buildArgs:
                          type: object
                          additionalProperties:
                            type: string
                    image:
                      type: string
                clusters:
                  type: array
                  items:
                    type: string
                domain:
                  type: object
                  properties:
                    customDomain:
                      type: string
                    useWildcard:
                      type: boolean
                    tls:
                      type: object
                      properties:
                        autoCert:
                          type: boolean
                        secretName:
                          type: string
                        email:
                          type: string
                    dnsProvider:
                      type: object
                      properties:
                        provider:
                          type: string
                        secretName:
                          type: string
                resources:
                  type: object
                  properties:
                    cpu:
                      type: string
                    memory:
                      type: string
                env:
                  type: array
                  items:
                    type: object
                    required: ["name", "value"]
                    properties:
                      name:
                        type: string
                      value:
                        type: string
                billingTier:
                  type: string 