Files
library-charts/library/common-test/tests/cnpg/cluster_validation_test.yaml

574 lines
16 KiB
YAML

suite: cnpg cluster validation test
templates:
- common.yaml
release:
name: test-release-name
namespace: test-release-namespace
tests:
- it: should fail without user
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
database: test-db
asserts:
- failedTemplate:
errorMessage: CNPG - Expected a non-empty [user] key
- it: should fail without database
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
asserts:
- failedTemplate:
errorMessage: CNPG - Expected a non-empty [database] key
- it: should fail with invalid version
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
version: invalid
asserts:
- failedTemplate:
errorMessage: CNPG - Expected [version] to be one of [legacy], but got [invalid]
- it: should fail with hibernate not a bool
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
hibernate: invalid
asserts:
- failedTemplate:
errorMessage: CNPG - Expected [hibernate] to be a boolean, but got [string]
- it: should fail with invalid mode
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
mode: invalid
asserts:
- failedTemplate:
errorMessage: CNPG Cluster - Expected [mode] to be one of [standalone, replica, recovery], but got [invalid]
- it: should fail with invalid type
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
type: invalid
asserts:
- failedTemplate:
errorMessage: CNPG Cluster - Expected [type] to be one of [postgresql, postgis, timescaledb], but got [invalid]
- it: should fail with invalid log level
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
cluster:
logLevel: invalid
asserts:
- failedTemplate:
errorMessage: CNPG Cluster - Expected [cluster.logLevel] to be one of [error, warning, info, debug, trace], but got [invalid]
- it: should fail with invalid primaryUpdateStrategy
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
cluster:
primaryUpdateStrategy: invalid
asserts:
- failedTemplate:
errorMessage: CNPG Cluster - Expected [cluster.primaryUpdateStrategy] to be one of [supervised, unsupervised], but got [invalid]
- it: should fail with invalid primaryUpdateMethod
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
cluster:
primaryUpdateMethod: invalid
asserts:
- failedTemplate:
errorMessage: CNPG Cluster - Expected [cluster.primaryUpdateMethod] to be one of [switchover, restart], but got [invalid]
- it: should fail with invalid walSegmentSize
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
cluster:
initdb:
walSegmentSize: invalid
asserts:
- failedTemplate:
errorMessage: CNPG Cluster - Expected [cluster.initdb.walSegmentSize] to be an integer, but got [string]
- it: should fail with too large walSegmentSize
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
cluster:
initdb:
walSegmentSize: 1025
asserts:
- failedTemplate:
errorMessage: CNPG Cluster - Expected [cluster.initdb.walSegmentSize] to be between 1 and 1024, but got [1025]
- it: should fail without recovery object when mode is recovery
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
mode: recovery
asserts:
- failedTemplate:
errorMessage: CNPG Recovery - Expected a non-empty [recovery] key
- it: should fail with invalid recovery method
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
mode: recovery
recovery:
method: invalid
asserts:
- failedTemplate:
errorMessage: CNPG Recovery - Expected [recovery.method] to be one of [backup, object_store, pg_basebackup], but got [invalid]
- it: should fail without backupName on recovery method backup
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
mode: recovery
recovery:
method: backup
asserts:
- failedTemplate:
errorMessage: CNPG Recovery - Expected a non-empty [recovery.backupName] key
- it: should fail with invalid provider on recovery method object_store
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
mode: recovery
recovery:
method: object_store
provider: invalid
asserts:
- failedTemplate:
errorMessage: CNPG Recovery - Expected [recovery.provider] to be one of [azure, s3, google], but got [invalid]
- it: should fail with missing "provider" key on recovery method object_store
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
mode: recovery
recovery:
method: object_store
provider: google
asserts:
- failedTemplate:
errorMessage: CNPG Recovery - Expected [recovery.google] to be defined when [recovery.provider] is set to [google]
- it: should fail with missing destinationPath and google bucket on recovery method object_store
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
mode: recovery
recovery:
method: object_store
provider: google
google:
applicationCredentials: some-credentials
asserts:
- failedTemplate:
errorMessage: CNPG Recovery - You need to specify [recovery.google.bucket] or [recovery.destinationPath]
- it: should fail with missing destinationPath and s3 bucket on recovery method object_store
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
mode: recovery
recovery:
method: object_store
provider: s3
s3:
accessKey: some-access-key
secretKey: some-secret-key
asserts:
- failedTemplate:
errorMessage: CNPG Recovery - You need to specify [recovery.s3.bucket] or [recovery.destinationPath]
- it: should fail with missing endpointURL and s3 region on recovery method object_store
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
mode: recovery
recovery:
method: object_store
provider: s3
s3:
accessKey: some-access-key
secretKey: some-secret-key
bucket: some-bucket
asserts:
- failedTemplate:
errorMessage: CNPG Recovery - You need to specify [recovery.s3.region] or [recovery.endpointURL]
- it: should fail with missing destinationPath and azure storageAccount on recovery method object_store
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
mode: recovery
recovery:
method: object_store
provider: azure
azure:
connectionString: some-connection-string
asserts:
- failedTemplate:
errorMessage: CNPG Recovery - You need to specify [recovery.azure.storageAccount] or [recovery.destinationPath]
- it: should fail with missing destinationPath and azure serviceName on recovery method object_store
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
mode: recovery
recovery:
method: object_store
provider: azure
azure:
connectionString: some-connection-string
storageAccount: some-storage-account
asserts:
- failedTemplate:
errorMessage: CNPG Recovery - You need to specify [recovery.azure.serviceName] or [recovery.destinationPath]
- it: should fail with missing destinationPath and azure containerName on recovery method object_store
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
mode: recovery
recovery:
method: object_store
provider: azure
azure:
connectionString: some-connection-string
storageAccount: some-storage-account
serviceName: some-service-name
asserts:
- failedTemplate:
errorMessage: CNPG Recovery - You need to specify [recovery.azure.containerName] or [recovery.destinationPath]
- it: should fail with invalid target when backups are enabled
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
backups:
enabled: true
provider: azure
azure:
connectionString: some-connection-string
target: invalid
asserts:
- failedTemplate:
errorMessage: CNPG Backup - Expected [backups.target] to be one of [primary, prefer-standby], but got [invalid]
- it: should fail with invalid retentionPolicy when backups are enabled
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
backups:
enabled: true
provider: azure
azure:
connectionString: some-connection-string
target: primary
retentionPolicy: invalid
asserts:
- failedTemplate:
errorMessage: CNPG Backup - Expected [backups.retentionPolicy] to match regex [^[1-9][0-9]*[dwm]$], got [invalid]
- it: should fail with missing destinationPath and google bucket on backups
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
backups:
enabled: true
provider: google
target: primary
retentionPolicy: 1d
google:
applicationCredentials: some-credentials
asserts:
- failedTemplate:
errorMessage: CNPG Backup - You need to specify [backups.google.bucket] or [backups.destinationPath]
- it: should fail with missing destinationPath and s3 bucket on backups
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
backups:
enabled: true
provider: s3
target: primary
retentionPolicy: 1d
s3:
accessKey: some-access-key
secretKey: some-secret-key
asserts:
- failedTemplate:
errorMessage: CNPG Backup - You need to specify [backups.s3.bucket] or [backups.destinationPath]
- it: should fail with missing endpointURL and s3 region on backups
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
backups:
enabled: true
provider: s3
target: primary
retentionPolicy: 1d
s3:
accessKey: some-access-key
secretKey: some-secret-key
bucket: some-bucket
asserts:
- failedTemplate:
errorMessage: CNPG Backup - You need to specify [backups.s3.region] or [backups.endpointURL]
- it: should fail with missing destinationPath and azure storageAccount on backups
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
backups:
enabled: true
provider: azure
target: primary
retentionPolicy: 1d
azure:
connectionString: some-connection-string
asserts:
- failedTemplate:
errorMessage: CNPG Backup - You need to specify [backups.azure.storageAccount] or [backups.destinationPath]
- it: should fail with missing destinationPath and azure serviceName on backups
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
backups:
enabled: true
provider: azure
target: primary
retentionPolicy: 1d
azure:
connectionString: some-connection-string
storageAccount: some-storage-account
asserts:
- failedTemplate:
errorMessage: CNPG Backup - You need to specify [backups.azure.serviceName] or [backups.destinationPath]
- it: should fail with missing destinationPath and azure containerName on backups
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
user: test-user
database: test-db
backups:
enabled: true
provider: azure
target: primary
retentionPolicy: 1d
azure:
connectionString: some-connection-string
storageAccount: some-storage-account
serviceName: some-service-name
asserts:
- failedTemplate:
errorMessage: CNPG Backup - You need to specify [backups.azure.containerName] or [backups.destinationPath]
- it: should fail with instances less than 1
set:
operator:
verify:
enabled: false
cnpg:
my-pg:
enabled: true
instances: 0
user: test-user
database: test-db
asserts:
- failedTemplate:
errorMessage: CNPG - Expected [instances] to be greater than 0, but got [0]