apiVersion: releases.vmsp.vmware.com/v1alpha1
kind: Schema
metadata:
  labels:
    packages.vcf.vmware.com/packaging: bundle
  name: configuration-vmsp-platform-9.1.0.0.25288349
  namespace: vmsp-platform
spec:
  context:
    name: vmsp-platform
    type: configuration
    version: 9.1.0.0.25288349
  schema:
    openAPIV3Schema:
      description: Configuration schema for the vmsp-platform-9.1.0.0.25288349 package
      properties:
        values:
          properties:
            backups:
              properties:
                destination:
                  description: backup destination
                  enum:
                  - sftp
                  - nfs
                  - s3
                  - ""
                  type: string
                encryptionPassphrase:
                  description: Encryption Passphrase
                  format: password
                  type: string
                etcd:
                  properties:
                    enable:
                      description: Enable/disable etcd backups
                      type: boolean
                    retention:
                      properties:
                        maxAgeDays:
                          description: Maximum age of etcd backups in days
                          type: string
                        maxBackups:
                          description: Maximum number of etcd backups to keep on SFTP
                          type: string
                      type: object
                    scheduleHour:
                      description: Etcd backup frequency in hours (every N hours)
                      type: string
                  type: object
                full:
                  properties:
                    enable:
                      description: specify to set a default value for enabling scheduled
                        backups for all components
                      type: boolean
                    schedule:
                      description: default full backup schedule in crontab format
                        for all components
                      type: string
                  type: object
                incremental:
                  properties:
                    enable:
                      description: specify to set a default value for enabling incremental
                        backups for all components
                      type: boolean
                    fallbackToFull:
                      description: specify to set a default value for all components
                        to run full backup instead of incremental if previous full
                        does not exist
                      type: boolean
                    schedule:
                      description: default incremental backup schedule in crontab
                        format for all components
                      type: string
                  type: object
                retention:
                  properties:
                    maxAgeDays:
                      description: number of day to keep backups, -1 means keep all
                      type: integer
                    maxBackups:
                      description: max number of backups to keep, -1 means keep all
                      type: integer
                  type: object
                storage:
                  properties:
                    nfs:
                      properties:
                        path:
                          description: NFS server path for backups
                          type: string
                        server:
                          description: NFS server for backup
                          type: string
                      type: object
                    s3:
                      properties:
                        acl:
                          description: S3 ACL for backups
                          enum:
                          - ""
                          - private
                          - public-read
                          - public-read-write
                          - authenticated-read
                          - bucket-owner-read
                          - bucket-owner-full-control
                          type: string
                        bucket:
                          description: S3 bucket for backups
                          type: string
                        endpoint:
                          description: S3 server hostname for backups
                          type: string
                        region:
                          description: S3 region for backups
                          type: string
                        sse:
                          description: S3 server-side encryption for backup objects
                          enum:
                          - ""
                          - AES256
                          type: string
                      type: object
                    sftp:
                      properties:
                        directory:
                          description: SFTP directory
                          type: string
                        fingerprint:
                          description: SSH fingerprint for the SFTP host
                          type: string
                        host:
                          description: SFTP Host
                          type: string
                        password:
                          description: SFTP password
                          format: password
                          type: string
                        port:
                          description: SFTP address port
                          type: string
                        username:
                          description: SFTP Username
                          type: string
                      type: object
                  type: object
              type: object
            ceip:
              properties:
                enabled:
                  description: If true, opt-in for the Customer Experience Improvement
                    Program
                  type: boolean
              type: object
            cluster:
              properties:
                controlPlane:
                  properties:
                    machineType:
                      description: control plane node VM size
                      enum:
                      - cp.small
                      - cp.medium
                      - cp.large
                      - gp.2xlarge
                      - gp.3xlarge
                      - gp.4xlarge
                      - gp.9large
                      - gp.5xlarge
                      - gp.6xlarge
                      - gp.7xlarge
                      - gp.8xlarge
                      - gp.9xlarge
                      - gp.10xlarge
                      - co.2xlarge
                      - co.3xlarge
                      - co.4xlarge
                      - co.5xlarge
                      - co.6xlarge
                      - co.7xlarge
                      - co.8xlarge
                      - co.9xlarge
                      - co.10xlarge
                      - mo.2xlarge
                      - mo.3xlarge
                      - mo.4xlarge
                      - mo.5xlarge
                      - mo.6xlarge
                      - mo.7xlarge
                      - mo.8xlarge
                      - mo.9xlarge
                      - mo.10xlarge
                      type: string
                  type: object
                ha:
                  description: specify whether to deploy an HA control plane (3 replicas)
                    or non HA control plane (1 replica)
                  type: string
                name:
                  description: bootstrapped cluster name, DNS compliant
                  maxLength: 240
                  type: string
                nodes:
                  properties:
                    prefix:
                      description: Prefix for the cluster nodes VM name
                      type: string
                    ssh:
                      properties:
                        publicKey:
                          description: node ssh key
                          type: string
                      type: object
                    systemPassword:
                      type: string
                    workers:
                      properties:
                        max:
                          description: Maximum number of replicas for shared worker
                            node group
                          type: integer
                        min:
                          description: Minimum number of replicas for shared worker
                            node group
                          type: integer
                        size:
                          description: worker node size preset
                          enum:
                          - ""
                          - small
                          - medium
                          - large
                          - xlarge
                          type: string
                      type: object
                  type: object
                type:
                  description: Cluster type - management or consumption
                  enum:
                  - management
                  - consumption
                  type: string
              type: object
            depot:
              properties:
                url:
                  description: Fleet Depot Service Endpoint
                  type: string
              type: object
            infrastructure:
              properties:
                vsphere:
                  properties:
                    cluster:
                      description: vCenter Cluster MoID (e.g., "domain-c123"). Takes
                        precedence over cluster path if set
                      type: string
                    clusterName:
                      description: vCenter Cluster
                      type: string
                    datacenter:
                      description: vSphere datacenter MoID (e.g., "datacenter-123").
                        Takes precedence over datacenter path if set
                      type: string
                    datacenterName:
                      description: the vSphere datacenter to deploy the VMSP cluster
                        on
                      type: string
                    datastore:
                      description: vSphere datastore MoID (e.g., "datastore-123").
                        Takes precedence over datastore path if set
                      type: string
                    datastoreName:
                      description: the vSphere datastore to deploy the VMSP cluster
                        on
                      type: string
                    folder:
                      description: vSphere folder MoID (e.g., "group-v123"). Takes
                        precedence over folder path if set
                      type: string
                    folderName:
                      description: the vSphere VM folder the VMSP cluster VMs are
                        added to. When set to "" the root vSphere folder is used
                      type: string
                    network:
                      description: vSphere network MoID (e.g., "dvportgroup-123").
                        Takes precedence over network path if set
                      type: string
                    networkName:
                      description: the VM network to deploy the VMSP cluster on
                      type: string
                    resourcePool:
                      description: vSphere resource pool MoID (e.g., "resgroup-123").
                        Takes precedence over resourcePool path if set
                      type: string
                    resourcePoolName:
                      description: the vSphere resource pool for VMSP clusters VMs
                      type: string
                    server:
                      description: the vCenter server IP or FQDN
                      type: string
                    templateFolder:
                      description: vSphere template folder MoID (e.g., "group-v123").
                        Takes precedence over templateFolder path if set
                      type: string
                    templateFolderName:
                      description: the vSphere VM templateFolder the VMSP cluster
                        VMs are added to. When set to "" the root vSphere templateFolder
                        is used
                      type: string
                    templateId:
                      description: vSphere VM template MoID (e.g., "VirtualMachine:vm-123").
                        Takes precedence over template path construction if set
                      type: string
                    thumbprint:
                      description: the SHA1 thumbprint of the vCenter certificate
                      type: string
                    vmGroup:
                      description: VMGroup Name
                      type: string
                  type: object
              type: object
            ingress:
              properties:
                fleet:
                  properties:
                    fqdn:
                      description: fqdn
                      type: string
                    tls:
                      properties:
                        ca:
                          description: Fleet ingress CA certificates
                          format: string
                          type: string
                        cert:
                          description: Fleet ingress certificate
                          format: string
                          type: string
                        key:
                          description: Fleet ingress private key
                          format: string
                          type: string
                      type: object
                    vips:
                      properties:
                        ipv4:
                          description: ipv4 addresses
                          items:
                            type: string
                          type: array
                        ipv6:
                          description: ipv6 addresses
                          items:
                            type: string
                          type: array
                      type: object
                  type: object
                instance:
                  properties:
                    fqdn:
                      description: fqdn
                      type: string
                    tls:
                      properties:
                        ca:
                          description: Instance ingress CA certificates
                          format: string
                          type: string
                        cert:
                          description: Instance ingress certificate
                          format: string
                          type: string
                        key:
                          description: Instance ingress private key
                          format: string
                          type: string
                      type: object
                    vips:
                      properties:
                        ipv4:
                          description: ipv4 addresses
                          items:
                            type: string
                          type: array
                        ipv6:
                          description: ipv6 addresses
                          items:
                            type: string
                          type: array
                      type: object
                  type: object
                platform:
                  properties:
                    fqdn:
                      description: fqdn
                      type: string
                    tls:
                      properties:
                        ca:
                          description: Platform ingress CA certificates
                          format: string
                          type: string
                        cert:
                          description: Platform ingress certificate
                          format: string
                          type: string
                        key:
                          description: Platform ingress private key
                          format: string
                          type: string
                      type: object
                    vips:
                      properties:
                        ipv4:
                          description: ipv4 addresses
                          items:
                            type: string
                          type: array
                        ipv6:
                          description: ipv6 addresses
                          items:
                            type: string
                          type: array
                      type: object
                  type: object
              type: object
            logs:
              properties:
                ops:
                  properties:
                    cacert:
                      description: CA certificate in PEM format for Log Insight server
                        SSL validation
                      type: string
                    host:
                      description: Log Insight server host, e.g. 10.0.0.1
                      type: string
                    port:
                      description: Log Insight port value
                      type: integer
                    scheme:
                      description: HTTP scheme any of http, https with default https
                      enum:
                      - http
                      - https
                      type: string
                    sslVerify:
                      description: SSL verification flag
                      type: boolean
                  type: object
                syslog:
                  properties:
                    cacert:
                      description: CA certificate in PEM format for Syslog server
                        TLS validation
                      type: string
                    host:
                      description: Syslog destination server host e.g. localhost
                      type: string
                    insecure:
                      description: Skip TLS validation
                      type: boolean
                    port:
                      description: Syslog destination server port value
                      type: integer
                    transport:
                      description: Transport Protocol. One of tls, tcp, or udp with
                        default tcp
                      enum:
                      - tls
                      - tcp
                      - udp
                      type: string
                  type: object
                type:
                  description: The type of logging output to enable. One of loginsight,
                    syslog, or none
                  enum:
                  - loginsight
                  - syslog
                  - none
                  type: string
              type: object
            network:
              properties:
                addressFamily:
                  description: specify the ip address family
                  type: string
                dnsServers:
                  description: list of DNS nameservers
                  items:
                    type: string
                  maxLength: 3
                  properties:
                    x-vmsp-depends-on:
                      enum:
                      - dhcp4Enabled
                      type: object
                  type: array
                internal:
                  properties:
                    cidr:
                      description: IPv4 CIDR for cluster internal network
                      type: string
                    cidrv6:
                      description: IPv6 CIDR for cluster internal network
                      type: string
                  type: object
                ipPool:
                  properties:
                    addresses:
                      description: global list of cluster nodes IP addresses, with
                        accepted format examples "10.220.75.186,10.220.75.187", "10.0.0.0/24",
                        "10.0.1.10-10.0.1.100"
                      items:
                        type: string
                      properties:
                        x-vmsp-depends-on:
                          enum:
                          - dhcp4Enabled
                          type: object
                      type: array
                    excludedAddresses:
                      description: exclude addresses, with accepted format examples
                        "10.220.75.186,10.220.75.187", "10.0.0.0/24", "10.0.1.10-10.0.1.100"
                      items:
                        type: string
                      properties:
                        x-vmsp-depends-on:
                          enum:
                          - dhcp4Enabled
                          type: object
                      type: array
                    gateway:
                      description: global address pool network gateway
                      properties:
                        x-vmsp-depends-on:
                          enum:
                          - dhcp4Enabled
                          type: object
                      type: string
                    prefix:
                      description: global address pool network prefix
                      properties:
                        x-vmsp-depends-on:
                          enum:
                          - dhcp4Enabled
                          type: object
                      type: string
                  type: object
                ipPoolv6:
                  properties:
                    addresses:
                      description: global list of cluster nodes IPv6 addresses, with
                        accepted format examples "2604:b040:518:116::14e,2604:b040:518:116::7d",
                        "2602:275:518:402::/64"
                      items:
                        type: string
                      properties:
                        x-vmsp-depends-on:
                          enum:
                          - dhcp6Enabled
                          type: object
                      type: array
                    excludedAddresses:
                      description: list of IPs to be excluded from the global IPv6
                        pool addresses
                      items:
                        type: string
                      properties:
                        x-vmsp-depends-on:
                          enum:
                          - dhcp6Enabled
                          type: object
                      type: array
                    gateway:
                      description: global address IPv6 pool network gateway
                      properties:
                        x-vmsp-depends-on:
                          enum:
                          - dhcp6Enabled
                          type: object
                      type: string
                    prefix:
                      description: global address IPv6 pool network prefix
                      properties:
                        x-vmsp-depends-on:
                          enum:
                          - dhcp6Enabled
                          type: object
                      type: string
                  type: object
                ntpServers:
                  description: '"node''s NTP servers"'
                  items:
                    type: string
                  type: array
                peerProxy:
                  properties:
                    credentialsEnabled:
                      description: Enable credentials for Internet Proxy Server (use
                        "true" or "false")
                      type: string
                    encodedCertificate:
                      description: base64 encoded Server certificate for Internet
                        Proxy Server
                      type: string
                    excludeDomains:
                      description: List of Domains to exclude from Internet proxy
                        server
                      type: string
                    excludeIpAddresses:
                      description: List of IP Addresses to exclude from Internet proxy
                        server
                      type: string
                    host:
                      description: Internet proxy server host, eg. proxy.example.com
                      type: string
                    password:
                      description: Password to connect to Internet Proxy Server
                      format: password
                      type: string
                    port:
                      description: Internet proxy server port number, eg. 3128
                      type: string
                    readTimeout:
                      description: Read timeout for Internet Proxy Server in minutes
                      maximum: 480
                      minimum: 15
                      type: integer
                    tlsEnabled:
                      description: Enable TLS for Internet Proxy Server (use "true"
                        or "false")
                      type: string
                    username:
                      description: Username to connect to Internet Proxy Server
                      type: string
                  type: object
              type: object
            s3:
              properties:
                accessKeyId:
                  description: S3 access key ID
                  format: password
                  type: string
                cacert:
                  description: S3 endpoint CA cert
                  format: string
                  type: string
                secretAccessKey:
                  description: S3 secret access key
                  format: password
                  type: string
              type: object
            security:
              properties:
                enforcePasswordPolicy:
                  description: enabling password policy enforcement, default password
                    policy is applied when disabling
                  type: boolean
                passwordPolicy:
                  properties:
                    complexityConstraint:
                      properties:
                        minLength:
                          description: Minimum Password Length
                          type: integer
                        minLowercase:
                          description: Minimum number of upper case character in password
                          type: integer
                        minNumeric:
                          description: Minimum number of numeric character in password
                          type: integer
                        minSpecial:
                          description: Minimum number of special character in password
                          type: integer
                        minUppercase:
                          description: Minimum number of lower case character in password
                          type: integer
                        passwordHistory:
                          description: Number of previous password cannot be reused
                          type: integer
                      type: object
                    expirationConstraint:
                      properties:
                        passwordExpirationDays:
                          description: password expiry in days
                          type: integer
                      type: object
                    lockoutConstraint:
                      properties:
                        lockoutEvaluationPeriod:
                          description: time window in seconds for account lockout
                            criteria
                          type: integer
                        lockoutMaxAuthFailures:
                          description: number of failed attempt for account lockout
                          type: integer
                        lockoutPeriod:
                          description: duration in seconds for lockout account stays
                            locked
                          type: integer
                      type: object
                    policyId:
                      description: the password policy uuid
                      type: string
                    policyInfo:
                      properties:
                        description:
                          description: the password policy description
                          type: string
                        policyName:
                          description: the password policy name
                          type: string
                      type: object
                  type: object
              type: object
            size:
              description: VCF management services size
              enum:
              - small
              - medium
              - large
              type: string
            storage:
              properties:
                volumeGroups:
                  properties:
                    loggingBuffer:
                      properties:
                        capacity:
                          description: logging buffer volume group
                          type: string
                      type: object
                    loggingTailer:
                      properties:
                        capacity:
                          description: logging trailer volume group
                          type: string
                      type: object
                    metricsStorage:
                      properties:
                        capacity:
                          description: prometheus requests storage
                          type: string
                      type: object
                    objectStorageData:
                      properties:
                        capacity:
                          description: object storage data volume group
                          type: string
                      type: object
                    objectStorageMetadata:
                      properties:
                        capacity:
                          description: object storage metadata volume group
                          type: string
                      type: object
                    operator:
                      properties:
                        capacity:
                          description: operator volume group
                          type: string
                      type: object
                    registry:
                      properties:
                        capacity:
                          description: registry volume group
                          type: string
                      type: object
                    supportBundleEvent:
                      properties:
                        capacity:
                          description: support bundle event storage volume
                          type: string
                      type: object
                    supportData:
                      properties:
                        capacity:
                          description: support data volume group
                          type: string
                      type: object
                  type: object
              type: object
          type: object
      type: object
