mirror of
https://github.com/truecharts/library-charts.git
synced 2026-07-05 12:56:21 -03:00
574 lines
16 KiB
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]
|