API Samples
API Samples
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
With custom db param, backup config & 1 replica
apiVersion: databases.dataservices.vmware.com/v1alpha1 kind: PostgresCluster metadata: name: my-pg-cluster namespace: default spec: adminUsername: pgadmin backupConfig: backupRetentionDays: 30 schedules: - name: default-full-backup schedule: 59 23 * * 6 type: full - name: default-incremental-backup schedule: 59 23 1/1 * * type: incremental backupLocation: name: default-backup-storage databaseConfig: name: db-config-i4c35-1721685809783 databaseName: my-pg-cluster infrastructurePolicy: name: infra-policy-02-rp maintenanceWindow: duration: 6h0m0s startDay: SATURDAY startTime: "22:59" replicas: 1 storagePolicyName: dsm-test storageSpace: 60Gi version: 14.15+vmware.v2.2.0 vmClass: name: medium
With a seondary 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 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: "This represents the secondary cluster in Chicago" 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 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
With a custom db param, backup config and 1 replica.
apiVersion: databases.dataservices.vmware.com/v1alpha1 kind: MySQLCluster metadata: name: foo-db namespace: default spec: backupConfig: backupRetentionDays: 30 schedules: - name: default-full-backup schedule: 59 23 * * 6 type: full backupLocation: name: default-backup-storage databaseConfig: name: db-config-87o9b-1721686239818 infrastructurePolicy: name: infra-policy-02-rp maintenanceWindow: duration: 6h0m0s startDay: SATURDAY startTime: "22:59" members: 3 storagePolicyName: dsm-test storageSpace: 60Gi version: 8.0.34+vmware.v2.1.0 vmClass: name: medium
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: 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"
observability.dataservices.vmware.com/v1alpha1
LogBundle
Support bundle for Postgres
apiVersion: observability.dataservices.vmware.com/v1alpha1 kind: LogBundle metadata: name: test-logs namespace: default spec: retentionPeriod: 48h targetRef: kind: PostgresCluster name: cluster
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 (https://quay.io/organization/minio/)
apiVersion: system.dataservices.vmware.com/v1alpha1 kind: ImageRegistry metadata: name: quay-minio namespace: dsm-system spec: endpoint: quay.io repo: minio dataServiceSelector: matchExpressions: - key: dsm.vmware.com/data-service-type operator: In values: - vmware-objectstore-minio