API Samples

API Samples

Packages:

##authorization.dataservices.vmware.com/v1alpha1

DsmRoleBinding
For DSM Admin Role
apiVersion: authorization.dataservices.vmware.com/v1alpha1
kind: DsmRoleBinding
metadata:
    name: dsmadmin
role: DSM_ADMIN
subjects:
    - kind: User
    name: [email protected]

##databases.dataservices.vmware.com/v1alpha1

DatabaseConfig
With a custom db param
apiVersion: databases.dataservices.vmware.com/v1alpha1
kind: DatabaseConfig
metadata:
    name: db-config-i4c35-1721685809783
    namespace: default
spec:
    params:
        max_connections: "300"
PostgresCluster

Policy configuration which allows users to create Postgres Database

# NOTE: These samples expect that a DSM user `[email protected]` exists.
# You can create a local DSM user via the DSM UI `Permissions` tab.
#
# NOTE: All objects in this file need to be created by a DSM admin.
#
# Namespace for the sample Postgres cluster.
apiVersion: v1
kind: Namespace
metadata:
  name: postgres-user-namespace
  labels:
    dsm.vmware.com/created-in: dsm
    dsm.vmware.com/ns-type: dsm-managed
---
# Binding grants the user access to the sample namespace.
apiVersion: authorization.dataservices.vmware.com/v1alpha1
kind: DSMUserNamespaceBinding
metadata:
  name: postgres-user-namespace-bind
  namespace: postgres-user-namespace
subjects:
  - kind: User
    name: [email protected]
---
# Policy allows to use InfrastructurePolicy `infra-policy-01` or SupervisorInfrastructurePolicy
# `dsm-test`, BackupLocation `default-backup-storage`, any replicas (0 or 1), and version
# `16` or `17`to create Postgres clusters in the sample namespace.
apiVersion: infrastructure.dataservices.vmware.com/v1alpha1
kind: DataServicePolicy
metadata:
  labels:
    dsm.vmware.com/created-in: dsm
  name: postgres-policy
  namespace: dsm-system
spec:
  matchCriteria:
    - key: kubernetes.io/metadata.name
      operator: in
      values:
      - postgres-user-namespace
    - key: dsm.vmware.com/created-in
      operator: in
      values:
      - dsm
  serviceType: vmware-sql-postgres
  postgresPolicy:
    allowedReplicas:
    - -1
    allowedVersions:
    - "16"
    - "17"
    common:
      allowedBackupLocations:
      - default-backup-storage
      allowedInfrastructurePolicies:
      - infra-policy-01
      - dsm-test
---
# Binding applies all relevant policies to a namespace.
apiVersion: infrastructure.dataservices.vmware.com/v1alpha1
kind: DataServicePolicyBinding
metadata:
  name: binding
  namespace: postgres-user-namespace
spec:
  namespaceProperties:
    # Property `dsm.vmware.com/created-in: dsm` and `kubernetes.io/metadata.name: mysql-user-namespace`
    # match the `matchCriteria` in the above DataServicePolicy
    dsm.vmware.com/created-in: dsm
    kubernetes.io/metadata.name: postgres-user-namespace
    # This property makes the namespace visible in the namespace list on the database creation page
    # of the DSM portal.
    dsm.vmware.com/ns-type: dsm-managed
With custom db param, backup config & 1 replica
apiVersion: databases.dataservices.vmware.com/v1alpha1
kind: PostgresCluster
metadata:
  name: test-pg-cluster
  namespace: postgres-user-namespace
spec:
  replicas: 1
  version: "17"
  vmClass:
    name: medium
  storageSpace: 25G
  backupConfig:
    backupRetentionDays: 91
    schedules:
      - name: full-weekly
        type: full
        schedule: "0 0 * * 0"
      - name: incremental-daily
        type: incremental
        schedule: "0 0 * * *"
  infrastructurePolicy:
    name: infra-policy-01
  storagePolicyName: dsm-test
  backupLocation:
    name: default-backup-storage

Restore Postgres Database

apiVersion: databases.dataservices.vmware.com/v1alpha1
kind: PostgresCluster
metadata:
  name: test-pg-restore
  namespace: postgres-user-namespace
spec:
  replicas: 1
  version: "17"
  vmClass:
    name: medium
  storageSpace: 25G
  backupConfig:
    backupRetentionDays: 91
    schedules:
      - name: full-weekly
        type: full
        schedule: "0 0 * * 0"
      - name: incremental-daily
        type: incremental
        schedule: "0 0 * * *"
  infrastructurePolicy:
    name: infra-policy-01
  storagePolicyName: dsm-test
  backupLocation:
    name: default-backup-storage
  basedOn:
    cluster:
      name: test-pg-cluster # should be changed to the source cluster's name
With a secondary replica (Disaster Recovery)
# Primary
apiVersion: databases.dataservices.vmware.com/v1alpha1
kind: PostgresCluster
metadata:
  name: my-pg-cluster
  namespace: default
spec:
  adminUsername: pgadmin
  backupLocation:
    name: default-backup-storage
  backupConfig:
    backupRetentionDays: 91
    schedules:
      - name: schedule
        schedule: '0 0 * * *'
        type: full
  databaseName: test-primary
  infrastructurePolicy:
    name: infra-policy-01
  maintenanceWindow:
    duration: 6h0m0s
    startDay: SATURDAY
    startTime: "04:59"
  replicas: 0
  replicationSlots:
    - slotName: test_rep_slot
      user: test-rep-slot
      description: "The replication slot to be used by the secondary cluster my-pg-secondary"
  storagePolicyName: dsm-test
  storageSpace: 60Gi
  version: 16.6+vmware.v2.2.0
  vmClass:
    name: medium
---
# Secondary
apiVersion: v1
data:
  user: dGVzdC1yZXAtc2xvdA== # This is the username of the replication user encoded in base64
  password: SWFGZnh6SDZaOU5raDZoUzFyNnE4MTBJOUpVMHhw # This is the password of the replication user encoded in Base64.
  dbName: dGVzdC1wcmltYXJ5 # This is the database of the remote cluster encoded in Base64.
kind: Secret
metadata:
  name: my-pg-secondary-rep-secret
  namespace: default
type: Opaque
---
apiVersion: v1
data:
  tls.crt: |-
    -----BEGIN CERTIFICATE-----
    MIIC7TCCAdWgAwIBAgIGAZRCYKIkMA0GCSqGSIb3DQEBCwUAMCgxFTATBgNVBAMM
    DFZNd2FyZS1EQi1DQTEPMA0GA1UECgwGVk13YXJlMB4XDTI1MDEwNDIwMDY1NloX
    DTM1MDEwNzIwMDY1NlowKDEVMBMGA1UEAwwMVk13YXJlLURCLUNBMQ8wDQYDVQQK
    DAZWTXdhcmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDBTP4Vj8/j
    FFuQ9cmg4KqavYghsoNTuEs0DOmwKD+zZLVEhfWpdiaMZDaG5JvCVig1rGu5Z3LU
    rfN/FGEEW6ixrYRdFpdFdcdWqctyY/POED0fjV1kU2XCRSTpy3OGtytGVY9rWJkl
    G0kPuyqKYNK/hX1OBUn6ANfmlhZKR4rkZxBjFsDpGyQDHmkl+Zzu5hIy88uALxtT
    VDNLljtsW/DBMtvSN5owiAJ9gLjzZSLA9ySocEjdgS60c8AwRoVcN8UTTyvMSTUW
    WyLG+s8cCNxRqyyn9ZoRR4tUaDTSFbwiCK2ejJ+coZ0Sxi0U23TKxrqnOhFSHilJ
    /9scNDd+h2CNAgMBAAGjHTAbMAsGA1UdDwQEAwIBBjAMBgNVHRMEBTADAQH/MA0G
    CSqGSIb3DQEBCwUAA4IBAQAcFdNFhBl0ZpGxj2Tzqjr8hUm2fr/F3yikmrnvwchO
    /4PZHUGb1cPAqTF8nvnI0CvxCYIH3assg+5qWwgPLjpuYY3LC1y7P5EDvlOYpux8
    OIJkcVX9AxTsm8lKDXoZcsJVb6s/pxjJ74jIfPtOInU6gErV12aHzuHtjLTdCN2F
    RlDqSVczJC4sqKrw8He/nzH35+vFDWgmxvoDo2n/6EEeymwaGWhQTjaF3mvUYcO5
    fRbO+OAGi+kPwgtj5PJH8l3Ou7A+88CUz3I3+GU6QaIj3dnPrgf9pwLurU+kpru9
    tIQF6AjyEL5tmnIwF9hQxEL9v7tYDFanpc9EjhQF3/oE
    -----END CERTIFICATE-----
kind: ConfigMap
metadata:
  name: sample-my-pg-primary-ca
  namespace: default
---
apiVersion: databases.dataservices.vmware.com/v1alpha1
kind: PostgresCluster
metadata:
  name: my-pg-secondary
  namespace: default
spec:
  adminUsername: pgadmin
  basedOn:
    continuousRecovery:
      enabled: true
      replicationSlot:
        credentials:
          name: my-pg-secondary-rep-secret
        hostname: 10.161.88.93 # This is the public IP of the primary "my-pg-cluster" obtained from its status.connection.host
        port: 5432
        slotName: test_rep_slot
        trustBundle:
          name: sample-my-pg-primary-ca
          namespace: default
  databaseName: test-primary
  infrastructurePolicy:
    name: infra-policy-01
  maintenanceWindow:
    duration: 6h0m0s
    startDay: SATURDAY
    startTime: "04:59"
  replicas: 0
  storagePolicyName: dsm-test
  storageSpace: 60Gi
  version: 16.6+vmware.v2.2.0
  vmClass:
    name: medium
MySQLCluster

Policy configuration which allows users to create MYSQL Database

# NOTE: These samples expect that a DSM user `[email protected]` exists.
# You can create a local DSM user via the DSM UI `Permissions` tab.
#
# NOTE: All objects in this file need to be created by a DSM admin.
#
# Namespace for the sample MySQL cluster.
apiVersion: v1
kind: Namespace
metadata:
  name: mysql-user-namespace
  labels:
    dsm.vmware.com/created-in: dsm
    dsm.vmware.com/ns-type: dsm-managed
---
# Binding grants the user access to the sample namespace.
apiVersion: authorization.dataservices.vmware.com/v1alpha1
kind: DSMUserNamespaceBinding
metadata:
  name: mysql-user-namespace-bind
  namespace: mysql-user-namespace
subjects:
  - kind: User
    name: [email protected]
---
# Policy allows to use InfrastructurePolicy `infra-policy-01` or SupervisorInfrastructurePolicy
# `dsm-test`, BackupLocation `default-backup-storage`, any number of memebers (1 or 3),
# and version `8.0.41` or `8.0.40` to create MySQL clusters in the sample namespace.
apiVersion: infrastructure.dataservices.vmware.com/v1alpha1
kind: DataServicePolicy
metadata:
  labels:
    dsm.vmware.com/created-in: dsm
  name: mysql-policy
  namespace: dsm-system
spec:
  matchCriteria:
    - key: kubernetes.io/metadata.name
      operator: in
      values:
      - mysql-user-namespace
    - key: dsm.vmware.com/created-in
      operator: in
      values:
      - dsm
  serviceType: vmware-sql-mysql
  mysqlPolicy:
    allowedMembers:
    - -1
    allowedVersions:
    - "8.0.40"
    - "8.0.41"
    common:
      allowedBackupLocations:
      - default-backup-storage
      allowedInfrastructurePolicies:
      - infra-policy-01
      - dsm-test
---
# Binding applies all relevant policies to a namespace.
apiVersion: infrastructure.dataservices.vmware.com/v1alpha1
kind: DataServicePolicyBinding
metadata:
  name: binding
  namespace: mysql-user-namespace
spec:
  namespaceProperties:
    # Property `dsm.vmware.com/created-in: dsm` and `kubernetes.io/metadata.name: mysql-user-namespace`
    # match the `matchCriteria` in the above DataServicePolicy
    dsm.vmware.com/created-in: dsm
    kubernetes.io/metadata.name: mysql-user-namespace
    # This property makes the namespace visible in the namespace list on the database creation page
    # of the DSM portal.
    dsm.vmware.com/ns-type: dsm-managed

With a custom backup config and 1 replica.

apiVersion: databases.dataservices.vmware.com/v1alpha1
kind: MySQLCluster
metadata:
  name: test-mysql-cluster
  namespace: mysql-user-namespace
spec:
  members: 1
  version: "8.0.41"
  vmClass:
    name: medium
  storageSpace: 25G
  backupConfig:
    backupRetentionDays: 90
    schedules:
      - name: full-30mins
        type: full
        schedule: "*/30 * * * *"
  infrastructurePolicy:
    name: infra-policy-01
  storagePolicyName: dsm-test
  backupLocation:
    name: default-backup-storage

Restore MySQL Database

apiVersion: databases.dataservices.vmware.com/v1alpha1
kind: MySQLCluster
metadata:
  name: test-mysql-restore
  namespace: mysql-user-namespace
spec:
  members: 1
  version: "8.0.41"
  vmClass:
    name: medium
  storageSpace: 25G
  backupConfig:
    backupRetentionDays: 90
    schedules:
      - name: full-30mins
        type: full
        schedule: "*/30 * * * *"
  infrastructurePolicy:
    name: infra-policy-01
  storagePolicyName: dsm-test
  backupLocation:
    name: default-backup-storage
  basedOn:
    cluster:
      name: test-mysql-cluster # should be changed to the source cluster's name
SQLServerCluster

The SQL Server APIs are provided as a Technical Preview.

These APIs are subject to change and may not be backward compatible across future VMware Data Services Manager releases.

SQL Server Cluster with "Express" edition

apiVersion: databases.dataservices.vmware.com/v1alpha1
kind: SQLServerCluster
metadata:
  name: sqlserver-01
  namespace: dsm-system
spec:
  edition: "Express"
  serverConfig:
    collation: "Latin1_General_CI_AS"
    traceFlags: [3226]
    mssqlConf:
      coredump.disablecoredump: "true"
      errorlog.numerrorlogs: "10"
      network.tlsprotocols: "1.2"
  auditing:
    preset: "AllLogins"
    logRetention: "720h"
  infrastructurePolicy:
    name: infra-policy-01
  placementSelector:
    cluster: dbaas-cluster
    datacenter: dbaas-dc
  storagePolicyName: dsm-test
  storageSpace: 20Gi
  version: "2022.CU16"
  vmClass:
    name: small

SQL Server Cluster with ActiveDirectory

apiVersion: v1
kind: Secret
metadata:
  name: test-sqlserver-account
  namespace: dsm-system
stringData:
  username: "sqlsvc01"
  password: "<sqlsvc01's password>"
---
apiVersion: databases.dataservices.vmware.com/v1alpha1
kind: SQLServerCluster
metadata:
  name: mssql-with-ad
  namespace: dsm-system
spec:
  edition: "Developer"
  dnsNames:
    - mssql01.example.org
  activeDirectory:
    domain:
      name: test-example-domain
    sqlServerAccount:
      name: test-sqlserver-account
    # This setting asks DSM to create DNS records (both A and PTR) in the
    # primary nameserver configured on the ActiveDirectoryDomain.
    writeDNSNames: ForwardAndReverse
  infrastructurePolicy:
    name: infra-policy-01
  storagePolicyName: dsm-test
  storageSpace: 20Gi
  version: "2022.CU16"
  vmClass:
    name: small

SQL Server Cluster with ActiveDirectory manual configuration

apiVersion: v1
kind: Secret
metadata:
  name: test-sqlserver-account-02
  namespace: dsm-system
stringData:
  # When using keytab, this Secret does not need to contain password because
  # the keytab contains keys derived from the password
  username: "sqlsvc02"
---
apiVersion: v1
kind: Secret
metadata:
  name: test-sqlserver-keytab
  namespace: dsm-system
data:
  # Keytab (binary) file for the service account and the chosen DNS name(s) of
  # the SQL Server cluster.
  # On Windows could create keytab via the ktpass tool.
  # On Linux could create keytab via ktutil or adutil.
  keytab: BQI=
---
apiVersion: databases.dataservices.vmware.com/v1alpha1
kind: SQLServerCluster
metadata:
  name: mssql-with-ad-02
  namespace: dsm-system
spec:
  edition: "Developer"
  dnsNames:
    # Optional, but strongly recommended for compatibility with the SQL Server Management Studio
    - mssql02.example.org
  activeDirectory:
    domain:
      name: test-example-domain
    # When using keytab, the service account must have appropriate Service
    # Principal Names (SPNs) for the DNS name(s) of the SQL Server cluster.
    # SPNs could be configured via the setspn Windows tool, via the adutil
    # Linux tool or by directly modifying the servicePrincipalName LDAP
    # attribute on the service account.
    sqlServerAccount:
      name: test-sqlserver-account-02
    keytab:
      name: test-sqlserver-keytab
  infrastructurePolicy:
    name: infra-policy-01
  storagePolicyName: dsm-test
  storageSpace: 20Gi
  version: "2022.CU16"
  vmClass:
    name: small

DataServicePolicy

Policy configuration which allows users to create databases on the sample SQL Server clusters

# NOTE: These samples expect that a DSM user `[email protected]` exists.
# You can create a local DSM user via the DSM UI `Permissions` tab.
#
# NOTE: All objects in this file need to be created by a DSM admin.
#
# Namespace for the sample SQL Server databases.
apiVersion: v1
kind: Namespace
metadata:
  name: sqlserver-user-namespace
  labels:
    dsm.vmware.com/created-in: dsm
    dsm.vmware.com/ns-type: dsm-managed
---
# Binding grants the user access to the sample namespace.
apiVersion: authorization.dataservices.vmware.com/v1alpha1
kind: DSMUserNamespaceBinding
metadata:
  name: sqlserver-user-namespace-bind
  namespace: sqlserver-user-namespace
subjects:
  - kind: User
    name: [email protected]
---
# Policy allows SQL Server databases in the sample namespace to be placed on
# the sample SQL Server clusters and to use `default-backup-storage`.
apiVersion: infrastructure.dataservices.vmware.com/v1alpha1
kind: DataServicePolicy
metadata:
  labels:
    dsm.vmware.com/created-in: dsm
  name: sqlserver-policy
  namespace: dsm-system
spec:
  matchCriteria:
    - key: kubernetes.io/metadata.name
      operator: in
      values:
        - sqlserver-user-namespace
    - key: dsm.vmware.com/created-in
      operator: in
      values:
        - dsm
  serviceType: vmware-sql-sqlserver-database
  sqlServerDatabasePolicy:
    allowedBackupLocations:
      - default-backup-storage
    allowedPlacements:
      - sqlServer:
          name: sqlserver-01
          namespace: dsm-system
      - sqlServer:
          name: mssql-with-ad
          namespace: dsm-system
---
# Binding applies all relevant policies to a namespace.
apiVersion: infrastructure.dataservices.vmware.com/v1alpha1
kind: DataServicePolicyBinding
metadata:
  name: binding
  namespace: sqlserver-user-namespace
spec:
  namespaceProperties:
    # Property `dsm.vmware.com/created-in: dsm` and `kubernetes.io/metadata.name: mysql-user-namespace`
    # match the `matchCriteria` in the above DataServicePolicy
    dsm.vmware.com/created-in: dsm
    kubernetes.io/metadata.name: sqlserver-user-namespace
    # This property makes the namespace visible in the namespace list on the database creation page
    # of the DSM portal.
    dsm.vmware.com/ns-type: dsm-managed
SQLServerDatabase

SQL Server Database with SQL User

apiVersion: v1
kind: Secret
metadata:
  name: sqluser-pass
  namespace: sqlserver-user-namespace
data:
  password: U29tZVN0b3JuZ1Bhc3MxMjMh
type: Opaque
---
apiVersion: databases.dataservices.vmware.com/v1alpha1
kind: SQLServerDatabase
metadata:
  name: mssql-db
  namespace: sqlserver-user-namespace
spec:
  placement:
    sqlServer:
      name: sqlserver-01
      namespace: dsm-system
  backupConfig:
    backupRetentionDays: 30
    schedules:
    - name: default-full-backup
      schedule: 59 23 * * 6
      type: full
  backupLocation:
    name: default-backup-storage
  owners:
  - type: SQLUser
    username: sqluser
    passwordRef:
      name: sqluser-pass
      fieldPath: password

Restore SQL Server Database with SQL User

apiVersion: databases.dataservices.vmware.com/v1alpha1
kind: SQLServerDatabase
metadata:
  name: mssql-db-clone
  namespace: sqlserver-user-namespace
spec:
  basedOn:
    database:
      name: mssql-db
  placement:
    sqlServer:
      name: sqlserver-01
      namespace: dsm-system
  backupConfig:
    backupRetentionDays: 30
    schedules:
    - name: default-full-backup
      schedule: 59 23 * * 6
      type: full
  backupLocation:
    name: default-backup-storage
  owners:
  - type: SQLUser
    username: sqluser
    passwordRef:
      name: sqluser-pass
      fieldPath: password

SQL Server Database with AD User

apiVersion: databases.dataservices.vmware.com/v1alpha1
kind: SQLServerDatabase
metadata:
  name: mssql-db-with-ad
  namespace: sqlserver-user-namespace
spec:
  placement:
    sqlServer:
      name: mssql-with-ad
      namespace: dsm-system
  backupConfig:
    backupRetentionDays: 30
    schedules:
    - name: default-full-backup
      schedule: 59 23 * * 6
      type: full
  backupLocation:
    name: default-backup-storage
  owners:
  - type: WindowsPrincipal
    username: 'EXAMPLE\test-db-owner-group'
  - type: WindowsPrincipal
    username: 'EXAMPLE\test-db-owner-user'

##infrastructure.dataservices.vmware.com/v1alpha1

IPPool
With 2 IP ranges
apiVersion: infrastructure.dataservices.vmware.com/v1alpha1
kind: IPPool
metadata:
    name: test-ippool
spec:
    addresses:
    - 1.1.1.1
    - 1.1.1.12-1.1.1.50
    - 1.1.1.65-1.1.1.90
    gateway: 10.10.10.10
    prefix: 24
VMClass
With 8 vCPU and 16 Gi memory.
apiVersion: infrastructure.dataservices.vmware.com/v1alpha1
kind: VMClass
metadata:
    name: large
spec:
    requests:
        cpu: "8"
        memory: "16"
InfrastructurePolicy
With a resource pool.
apiVersion: infrastructure.dataservices.vmware.com/v1alpha1
kind: InfrastructurePolicy
metadata:
    name: infra-policy-02-rp
spec:
    enableCrossClusterHA: false
    enabled: true
    ipRanges:
    - poolName: ippools-test-01
        portGroups:
        - datacenter: dbaas-dc
          name: Mgmt
    placements:
    - cluster: dbaas-cluster
        datacenter: dbaas-dc
        folder: DSM
        portGroups:
        - Mgmt
        resourcePool: rp1
    storagePolicies:
    - dsm-test
    vmClasses:
    - name: small
    - name: medium
    - name: large
DirectoryService
With ldap configured.
apiVersion: v1
kind: Secret
metadata:
    name: sample-ldap-ca
    namespace: dsm-system
data:
    tls.crt: |
        -----BEGIN CERTIFICATE-----
        MIID0DCCArigAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJGUjET
        MBEGA1UECAwKU29tZS1TdGF0ZTEOMAwGA1UEBwwFUGFyaXMxDTALBgNVBAoMBERp
        bWkxDTALBgNVBAsMBE5TQlUxEDAOBgNVBAMMB0RpbWkgQ0ExGzAZBgkqhkiG9w0B
        CQEWDGRpbWlAZGltaS5mcjAeFw0xNDAxMjgyMDM2NTVaFw0yNDAxMjYyMDM2NTVa
        MFsxCzAJBgNVBAYTAkZSMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJ
        bnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxFDASBgNVBAMMC3d3dy5kaW1pLmZyMIIB
        IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvpnaPKLIKdvx98KW68lz8pGa
        RRcYersNGqP-this-is-a-dummy-cert-uidhasaFSJSAKCvrtWhN+haKbSp+QWX
        SxiTrW99HBfAl1MDQyWcukoEb9Cw6INctVUN4iRvkn9T8E6q174RbcnwA/7yTc7p
        1NCvw+6B/aAN9l1G2pQXgRdYC/+G6o1IZEHtWhqzE97nY5QKNuUVD0V09dc5CDYB
        aKjqetwwv6DFk/GRdOSEd/6bW+20z0qSHpa3YNW6qSp+x5pyYmDrzRIR03os6Dau
        ZkChSRyc/Whvurx6o85D6qpzywo8xwNaLZHxTQPgcIA5su9ZIytv9LH2E+lSwwID
        AQABo3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy
        YXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU+tugFtyN+cXe1wxUqeA7X+yS3bgw
        HwYDVR0jBBgwFoAUhMwqkbBrGp87HxfvwgPnlGgVR64wDQYJKoZIhvcNAQEFBQAD
        ggEBAIEEmqqhEzeXZ4CKhE5UM9vCKzkj5Iv9TFs/a9CcQuepzplt7YVmevBFNOc0
        +1ZyR4tXgi4+5MHGzhYCIVvHo4hKqYm+J+o5mwQInf1qoAHuO7CLD3WNa1sKcVUV
        vepIxc/1aHZrG+dPeEHt0MdFfOw13YdUc2FH6AqEdcEL4aV5PXq2eYR8hR4zKbc1
        fBtuqUsvA8NWSIyzQ16fyGve+ANf6vXvUizyvwDrPRv/kfvLNa3ZPnLMMxU98Mvh
        PXy3PkB8++6U4Y3vdk2Ni2WYYlIls8yqbM4327IKmkDc2TimS8u60CT47mKU7aDY
        cbTV5RDkrlaYwm5yqlTIglvCv7o=
        -----END CERTIFICATE-----
---
apiVersion: v1
kind: Secret
metadata:
    name: sample-ldap-credentials
    namespace: dsm-system
type: "kubernetes.io/basic-auth"
data:
    username: bGRhcGFkbWlu  # This is 'ldapadmin' encoded in Base64
    password: cGFzc3dvcmQ=  # This is 'password' encoded in Base64
---
apiVersion: infrastructure.dataservices.vmware.com/v1alpha1
kind: DirectoryService
metadata:
    name: ldap-default
    namespace: dsm-system
spec:
    type: "ActiveDirectory"
    domain: vmware.com
    baseDnUsers: dc=vmware,dc=com
    bindCredentials:
        name: sample-ldap-credentials
    primaryServerUrl: ldaps://ldap.vmware.com:3269
    secondaryServerUrls:
        - ldaps://scrootdc1.vmware.com:3269
        - ldaps://scdc2rootdc04.vmware.com:3269
    trustBundle:
        name: sample-ldap-ca
        namespace: dsm-system
    userSearchAttribute: "userPrincipalName"
ActiveDirectoryDomain
apiVersion: v1
kind: ConfigMap
metadata:
  name: example-domain-trust-bundle
  namespace: dsm-system
data:
  tls.crt: |
    -----BEGIN CERTIFICATE-----
    ... The PEM-encoded CA certificate of the domain's LDAP services.
    -----END CERTIFICATE-----
---
apiVersion: v1
kind: Secret
metadata:
  name: example-domain-priv-account
  namespace: dsm-system
stringData:
  username: "test-user"
  password: "<test-user's password>"
---
apiVersion: infrastructure.dataservices.vmware.com/v1alpha1
kind: ActiveDirectoryDomain
metadata:
  name: test-example-domain
  namespace: dsm-system
spec:
  name: example.org
  nameservers:
    - 10.20.30.40
  trustBundle:
    # Needed for DSM to be able to talk with the LDAP services of the
    # selected domain. When manually providing keytabs, DSM doesn't need to
    # talk to the LDAP and this trust bundle is not required.
    name: example-domain-trust-bundle
  privilegedAccountCredentials:
    # Like above, this is only needed for DSM to be able to talk with the LDAP
    # services of the selected domain. Refer to the documentation about what
    # privileges this account needs to have.
    name: example-domain-priv-account

Manual configuration

apiVersion: infrastructure.dataservices.vmware.com/v1alpha1
kind: ActiveDirectoryDomain
metadata:
  name: test-example-domain-manual-cfg
  namespace: dsm-system
spec:
  name: example.org
  nameservers:
    - 10.20.30.40

##observability.dataservices.vmware.com/v1alpha1

LogBundle
Support bundle for Postgres
apiVersion: observability.dataservices.vmware.com/v1alpha1
kind: LogBundle
metadata:
  name: test-pg-logs
  namespace: postgres-user-namespace
spec:
  retentionPeriod: 48h
  targetRef:
    kind: PostgresCluster
    name: test-pg-cluster
MetricsTarget
Metrics Target for VCFOps
apiVersion: observability.dataservices.vmware.com/v1alpha1
kind: MetricsTarget
metadata:
  name: metrics-default
  namespace: dsm-system
spec:
  type: VCFOps
  endpoint: "https://10.84.1.1:8443/opensource/default/metric"
  tls:
    insecureSkipVerify: false
    trustBundle:
      name: trusted-root-ca
      namespace: dsm-system
    clientCertificate:
      name: client-cert-secret
  credentials:
    name: basic-auth-secret
  timeout: 7s
  headers:
    Content-Type: "text/plain; charset=utf-8"
    additional-static-metadata: my-value

##system.dataservices.vmware.com/v1alpha1

DsmSystemConfig
With ntp configured.
apiVersion: system.dataservices.vmware.com/v1alpha1
kind: DsmSystemConfig
metadata:
    name: dsm-system-config
spec:
    ceipConsent: true
    dnsServers:
    - 1.2.3.4
    dsmProviderId: f9b039f9-2683-43b1-aae0-5602614cde0b
    externalLogDestination:
        enabled: false
        trustBundle: {}
    gateway: 10.11.12.13
    ip: 5.6.7.8
    netmask: 255.255.224.0
    ntpServers:
    - time.vmware.com
With external log destination - udp configured.
apiVersion: system.dataservices.vmware.com/v1alpha1
kind: DsmSystemConfig
...
spec:
    externalLogDestination:
        enabled: true
        remoteLogDestinationProvider: syslog server
        remoteLogUrl: udp://0.0.1.1:514
            trustBundle: {}
With external log destination - tls configured.
apiVersion: system.dataservices.vmware.com/v1alpha1
kind: DsmSystemConfig
...
spec:
externalLogDestination:
    enabled: true
    remoteLogDestinationProvider: syslog server
    remoteLogUrl: ssl://0.0.1.1:1514
    trustBundle:
        name: trusted-root-ca
        namespace: dsm-system
Image Registry
Pointing to a public repo (mcr.microsoft.com/mssql/server)
# This is a reference to an external image registry that contains the official SQL Server container images published by Microsoft.
# Required only if you intend to use DSM Data Service for Microsoft SQL Server.
kind: ImageRegistry
metadata:
  name: sql-sqlserver-registry
  namespace: dsm-system
spec:
  endpoint: mcr.microsoft.com
  repo: mssql
  dataServiceSelector:
    matchExpressions:
      - key: dsm.vmware.com/data-service-type
        operator: In
        values:
          - vmware-sql-sqlserver