# Generated by Fabric8 CRDGenerator, manual edits might get overwritten!
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: coremediacontentclouds.cmcc.tsystemsmms.com
spec:
  group: cmcc.tsystemsmms.com
  names:
    kind: CoreMediaContentCloud
    plural: coremediacontentclouds
    shortNames:
    - cmcc
    - coremedia
    singular: coremediacontentcloud
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.error
      name: ERROR
      type: string
    - jsonPath: .status.milestone
      name: MILESTONE
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        properties:
          spec:
            properties:
              comment:
                description: An arbitrary comment; can be used to force an update
                  to the object
                type: string
              components:
                description: "List of components (CMS, Solr, CAE, etc.)"
                items:
                  properties:
                    type:
                      description: Type of the component
                      type: string
                    kind:
                      description: "Sub-type ('cms' or 'mls', or 'master' and 'replica',\
                        \ or 'preview' and 'live')"
                      type: string
                    name:
                      description: Name to be used for k8s objects
                      type: string
                    args:
                      description: Args for the main pod container
                      items:
                        type: string
                      type: array
                    env:
                      description: Additional environment variables
                      items:
                        properties:
                          name:
                            type: string
                          value:
                            type: string
                          valueFrom:
                            properties:
                              configMapKeyRef:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                              fieldRef:
                                properties:
                                  apiVersion:
                                    type: string
                                  fieldPath:
                                    type: string
                                type: object
                              resourceFieldRef:
                                properties:
                                  containerName:
                                    type: string
                                  divisor:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  resource:
                                    type: string
                                type: object
                              secretKeyRef:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                            type: object
                        type: object
                      type: array
                    extra:
                      additionalProperties:
                        type: string
                      description: Extra parameters (depends on component)
                      type: object
                    image:
                      description: Image for main pod' main container
                      properties:
                        registry:
                          description: Image registry (default 'coremedia')
                          type: string
                        repository:
                          description: Image repository (default differs between components)
                          type: string
                        tag:
                          description: Image tag (default 'latest')
                          type: string
                        pullPolicy:
                          description: Image pull policy (default 'IfNotPresent')
                          type: string
                      type: object
                    milestone:
                      description: Make available with this milestone
                      enum:
                      - Created
                      - DatabasesReady
                      - ContentServerInitialized
                      - ContentServerReady
                      - ManagementReady
                      - Ready
                      - RunJob
                      - Never
                      - next
                      type: string
                    schemas:
                      additionalProperties:
                        type: string
                      description: "Schema names for JDBC, MongoDB, and/or UAPI"
                      type: object
                  type: object
                type: array
              clientSecretRefs:
                additionalProperties:
                  additionalProperties:
                    properties:
                      secretName:
                        description: resource name of the secret
                        type: string
                      driverKey:
                        description: entry in the secret for the driver class or name
                        type: string
                      hostnameKey:
                        description: entry in the secret for hostname of the server
                        type: string
                      passwordKey:
                        description: entry in the secret for the password to authenticate
                          with
                        type: string
                      schemaKey:
                        description: "entry in the secret for the schema, database\
                          \ or service to use"
                        type: string
                      urlKey:
                        description: entry in the secret for the url to connect to
                        type: string
                      usernameKey:
                        description: entry in the secret for the username to authenticate
                          with
                        type: string
                    type: object
                  type: object
                description: References to existing secrets for components connecting
                  as clients to services
                type: object
              defaultIngressTls:
                description: Ingress TLS defaults
                properties:
                  enabled:
                    description: Enable TLS for this ingress
                    type: boolean
                  secretName:
                    description: Name of secret with the TLS certificate
                    type: string
                type: object
              defaults:
                description: Default values for components
                properties:
                  curlImage:
                    description: Docker image with curl available
                    type: string
                  image:
                    description: Defaults for the image specification
                    properties:
                      registry:
                        description: Image registry (default 'coremedia')
                        type: string
                      repository:
                        description: Image repository (default differs between components)
                        type: string
                      tag:
                        description: Image tag (default 'latest')
                        type: string
                      pullPolicy:
                        description: Image pull policy (default 'IfNotPresent')
                        type: string
                    type: object
                  ingressDomain:
                    description: Default domain name for Ingresses
                    type: string
                  insecureDatabasePassword:
                    description: "Use this password for all database accounts, instead\
                      \ of a random one."
                    type: string
                  resources:
                    description: Default resource declarations
                    properties:
                      limits:
                        additionalProperties:
                          anyOf:
                          - type: integer
                          - type: string
                          x-kubernetes-int-or-string: true
                        type: object
                      requests:
                        additionalProperties:
                          anyOf:
                          - type: integer
                          - type: string
                          x-kubernetes-int-or-string: true
                        type: object
                    type: object
                  namePrefix:
                    description: Prefix resources with this name plus '-'. Empty string
                      means no prefix
                    type: string
                  previewHostname:
                    description: "Hostname of the preview CAE. If short, will be prefixed\
                      \ with the prefix and the ingressDomain appended"
                    type: string
                  storageClass:
                    description: Name of StorageClass to be used for PersistentVolumeClaims
                    type: string
                  studioHostname:
                    description: "Hostname of the Studio. If short, will be prefixed\
                      \ with the prefix and the ingressDomain appended"
                    type: string
                  servletNames:
                    description: List of servlets the CAE serves
                    items:
                      type: string
                    type: array
                type: object
              licenseSecrets:
                description: Names of the secrets containing the license
                properties:
                  CMSLicense:
                    description: Name of the secret that has the license.zip for the
                      Content Management Server
                    type: string
                  MLSLicense:
                    description: Name of the secret that has the license.zip for the
                      Master Live Server
                    type: string
                  RLSLicense:
                    description: Name of the secret that has the license.zip for the
                      Replication Live Server
                    type: string
                type: object
              siteMappings:
                description: Site mappings
                items:
                  properties:
                    additionalSegments:
                      description: Additional segments that are available through
                        this hostname
                      items:
                        type: string
                      type: array
                    fqdn:
                      description: Fully-qualified hostname of the site; defaults
                        to the simple hostname
                      type: string
                    hostname:
                      description: Simple hostname of the site; used as the key for
                        site mappings
                      type: string
                    primarySegment:
                      description: The site segment the root maps to
                      type: string
                    tls:
                      description: TLS settings for this mapping
                      properties:
                        enabled:
                          description: Enable TLS for this ingress
                          type: boolean
                        secretName:
                          description: Name of secret with the TLS certificate
                          type: string
                      type: object
                  type: object
                type: array
              with:
                description: Optional special components and configurations
                properties:
                  contentImport:
                    description: "Import content, users, themes and workflows"
                    type: boolean
                  databases:
                    description: Create databases for CoreMedia
                    type: boolean
                  delivery:
                    description: Create default components for the delivery stage
                    properties:
                      rls:
                        anyOf:
                        - type: integer
                        - type: string
                        description: Number of RLS to create
                        x-kubernetes-int-or-string: true
                      minCae:
                        anyOf:
                        - type: integer
                        - type: string
                        description: Minimum number of CAEs per RLS
                        x-kubernetes-int-or-string: true
                      maxCae:
                        anyOf:
                        - type: integer
                        - type: string
                        description: Maximum number of CAEs per RLS
                        x-kubernetes-int-or-string: true
                    type: object
                  management:
                    description: Create default components for the management stage
                    type: boolean
                type: object
              job:
                description: Run this job component once from Ready
                type: string
            type: object
          status:
            properties:
              error:
                description: "Error indication, or empty string"
                type: string
              errorMessage:
                description: Error message if state is error
                type: string
              flags:
                additionalProperties:
                  type: string
                description: Additional state flags
                type: object
              job:
                description: Currently executing job
                type: string
              milestone:
                description: Which milestone has been reached in configuring all components
                enum:
                - Created
                - DatabasesReady
                - ContentServerInitialized
                - ContentServerReady
                - ManagementReady
                - Ready
                - RunJob
                - Never
                - next
                type: string
              ownedResourceRefs:
                description: Unused
                type: string
              observedGeneration:
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
