[bitnami/redis] Revisit tests and remove extra pipelines (#12797)

* [bitnami/redis] Revisit tests and remove extra pipelines

Signed-off-by: FraPazGal <fdepaz@vmware.com>

* Apply suggestions

Signed-off-by: FraPazGal <fdepaz@vmware.com>

Signed-off-by: FraPazGal <fdepaz@vmware.com>
This commit is contained in:
Francisco de Paz Galan
2022-10-07 17:56:46 +02:00
committed by GitHub
parent d3ec8fa952
commit 62fef5dd52
11 changed files with 88 additions and 522 deletions

56
.vib/redis/goss/goss.yaml Normal file
View File

@@ -0,0 +1,56 @@
{{- $auth := printf "REDISCLI_AUTH=%s" .Vars.auth.password }}
{{- $master_endpoint := printf "-h redis-master -p %d" .Vars.master.service.ports.redis }}
{{- $replicas_endpoint := printf "-h redis-replicas -p %d" .Vars.replica.service.ports.redis }}
{{- $replicas := .Vars.replica.replicaCount }}
command:
{{- $key := printf "key_%s" (randAlpha 5) }}
{{- $value := printf "value_%s" (randAlpha 5) }}
redis-set-key-value-pairs:
exec: export {{ $auth }} && redis-cli {{ $master_endpoint }} SET {{ $key }} {{ $value }} {{ range $e, $i := until $replicas }} && redis-cli -h redis-replicas-{{ $i }}.redis-headless -p {{ $.Vars.replica.containerPorts.redis }} GET {{ $key }} | grep -q {{ $value }}{{ end }}
exit-status: 0
{{ range $command := .Vars.master.disableCommands }}
redis-disabled-{{ $command }}:
exec: {{ $auth }} redis-cli {{ $master_endpoint }} {{ $command }}
exit-status: 0
stdout:
- ERR unknown command
{{ end }}
redis-master-role:
exec: {{ $auth }} redis-cli {{ $master_endpoint }} ROLE
exit-status: 0
stdout:
- master
{{ range $e, $i := until $replicas }}
- redis-replicas-{{ $i }}
{{ end }}
redis-replicas-role:
exec: {{ $auth }} redis-cli {{ $replicas_endpoint }} ROLE
exit-status: 0
stdout:
- slave
check-user-info:
exec: id
exit-status: 0
stdout:
- uid={{ .Vars.master.containerSecurityContext.runAsUser }}
- /groups=.*{{ .Vars.master.podSecurityContext.fsGroup }}/
file:
{{ .Vars.master.persistence.path }}:
filetype: directory
exists: true
mode: "2775"
owner: root
/opt/bitnami/redis/mounted-etc:
exists: true
mode: "2777"
filetype: directory
owner: root
/opt/bitnami/redis/etc:
filetype: directory
exists: true
mode: "2777"
owner: root
/var/run/secrets/kubernetes.io/serviceaccount:
exists: {{ .Vars.serviceAccount.automountServiceAccountToken }}
filetype: directory
mode: "3777"

24
.vib/redis/goss/vars.yaml Normal file
View File

@@ -0,0 +1,24 @@
auth:
password: ComplicatedPassword123!4
master:
disableCommands:
- FLUSHDB
- FLUSHALL
podSecurityContext:
fsGroup: 1002
containerSecurityContext:
runAsUser: 1002
persistence:
path: /data
service:
ports:
redis: 80
replica:
replicaCount: 3
containerPorts:
redis: 6380
service:
ports:
redis: 6378
serviceAccount:
automountServiceAccountToken: true

View File

@@ -1,131 +0,0 @@
command:
redis-auth:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli -h 127.0.0.1 -p 6379
exit-status: 0
stderr: [ ]
timeout: 20000
redis-flushall-not-possible:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli FLUSHALL
exit-status: 0
stdout:
- "ERR unknown command"
stderr: [ ]
timeout: 20000
redis-set-key-value-pairs:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli SET key value
exit-status: 0
stdout:
- 'OK'
stderr: [ ]
timeout: 20000
redis-set-ex:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli SETEX name 10 kyle
exit-status: 0
stdout:
- 'OK'
stderr: [ ]
timeout: 20000
redis-add-to-group:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli LPUSH test_member test_group
exit-status: 0
stderr: [ ]
timeout: 20000
redis-add-to-set:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli SADD testmember "test set"
exit-status: 0
stderr: [ ]
timeout: 20000
redis-no-password:
exec: redis-cli SADD testmember "test set"
exit-status: 0
stdout:
- 'NOAUTH Authentication required'
stderr: [ ]
timeout: 20000
redis-add-hash:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli HSET test test test
exit-status: 0
stderr: [ ]
timeout: 20000
redis-whoami:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli ACL WHOAMI
exit-status: 0
stdout:
- "default"
stderr: [ ]
timeout: 20000
redis-setuser:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli ACL SETUSER virginia on +GET allkeys
exit-status: 0
stdout:
- "OK"
stderr: [ ]
timeout: 20000
redis-role:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli ROLE
exit-status: 0
stdout:
- "master"
stderr: [ ]
timeout: 20000
redis-generate-password:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli ACL GENPASS
exit-status: 0
stderr: [ ]
timeout: 20000
redis-get-users:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli ACL LIST
exit-status: 0
stdout:
- "user default"
stderr: [ ]
timeout: 20000
redis-module-ist:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli MODULE LIST
exit-status: 0
stderr: [ ]
timeout: 20000
redis-bgwriteoff:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli BGREWRITEAOF
exit-status: 0
stdout:
- "Background append only file rewriting started"
stderr: [ ]
timeout: 20000
redis-resetstat:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli CONFIG RESETSTAT
exit-status: 0
stdout:
- "OK"
stderr: [ ]
timeout: 20000
redis-info:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli INFO
exit-status: 0
stdout:
- "role:master"
- "connected_slaves:2"
stderr: [ ]
timeout: 20000
user-id-test:
exec: id -u
exit-status: 0
stdout:
- 1002
stderr: [ ]
timeout: 20000
file:
/bitnami/redis/data:
filetype: directory
exists: true
file:
/data-persistence:
filetype: directory
exists: true
file:
/opt/bitnami/redis/mounted-etc/master.conf:
exists: true
mode: "0777"
filetype: symlink
contains:
- rename-command FLUSHALL ""

View File

@@ -1,88 +0,0 @@
command:
redis-ping:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli PING
exit-status: 0
stderr: [ ]
stdout:
- "PONG"
timeout: 20000
redis-ping-no-password:
exec: redis-cli PING
exit-status: 0
stdout:
- "NOAUTH Authentication required."
stderr: [ ]
timeout: 20000
redis-auth:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli -h 127.0.0.1 -p 6379
exit-status: 0
stderr: [ ]
timeout: 20000
redis-not-writing-read-only-replica:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli SET key value
exit-status: 0
stdout:
- "READONLY You can't write against a read only replica."
stderr: [ ]
timeout: 20000
redis-whoami:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli ACL WHOAMI
exit-status: 0
stdout:
- "default"
stderr: [ ]
timeout: 20000
redis-setuser:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli ACL SETUSER virginia on +GET allkeys
exit-status: 0
stdout:
- "OK"
stderr: [ ]
timeout: 20000
redis-role:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli ROLE
exit-status: 0
stdout:
- "slave"
stderr: [ ]
timeout: 20000
redis-get-users:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli ACL LIST
exit-status: 0
stdout:
- "user default"
stderr: [ ]
timeout: 20000000
redis-resetstat:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli CONFIG RESETSTAT
exit-status: 0
stdout:
- "OK"
stderr: [ ]
timeout: 20000
redis-info:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli INFO
exit-status: 0
stdout:
- "role:slave"
stderr: [ ]
timeout: 20000
user-id-test:
exec: id -u
exit-status: 0
stdout:
- 1002
stderr: [ ]
timeout: 20000
file:
/bitnami/redis/data:
filetype: directory
exists: true
file:
/opt/bitnami/redis/mounted-etc/replica.conf:
exists: true
mode: "0777"
filetype: symlink
contains:
- rename-command FLUSHDB ""
- rename-command FLUSHALL ""

View File

@@ -1,75 +0,0 @@
{
"phases": {
"package": {
"context": {
"resources": {
"url": "{SHA_ARCHIVE}",
"path": "/bitnami/redis"
}
},
"actions": [
{
"action_id": "helm-package"
},
{
"action_id": "helm-lint"
}
]
},
"verify": {
"context": {
"resources": {
"url": "{SHA_ARCHIVE}",
"path": "/bitnami/redis"
},
"runtime_parameters": "YXV0aDoKICBwYXNzd29yZDogInRlc3RfcGFzc3dvcmQiCm1hc3RlcjoKICBjb250YWluZXJTZWN1cml0eUNvbnRleHQ6CiAgICBlbmFibGVkOiB0cnVlCiAgICBydW5Bc1VzZXI6IDEwMDIgCiAgcGVyc2lzdGVuY2U6CiAgICBwYXRoOiAvZGF0YS1wZXJzaXN0ZW5jZQpyZXBsaWNhOgogIHJlcGxpY2FDb3VudDogMgogIHNlcnZpY2U6CiAgICBwb3J0czoKICAgICAgcmVkaXM6IDgwCiAgICB0eXBlOiBMb2FkQmFsYW5jZXIKICBjb250YWluZXJTZWN1cml0eUNvbnRleHQ6CiAgICBlbmFibGVkOiB0cnVlCiAgICBydW5Bc1VzZXI6IDEwMDIK",
"target_platform": {
"target_platform_id": "{VIB_ENV_TARGET_PLATFORM}",
"size": {
"name": "S4"
}
}
},
"actions": [
{
"action_id": "health-check",
"params": {
"endpoint": "lb-redis-replicas-tcp-redis"
}
},
{
"action_id": "resilience-tests",
"params": {
"test_cases": [
"testKubernetesPodDelete",
"testPodScaleUp",
"testPodScaleDown"
]
}
},
{
"action_id": "goss",
"params": {
"resources": {
"path": "/.vib/redis/replicas/goss/goss-master"
},
"remote": {
"workload": "sts-redis-master"
}
}
},
{
"action_id": "goss",
"params": {
"resources": {
"path": "/.vib/redis/replicas/goss/goss-replica"
},
"remote": {
"workload": "sts-redis-replicas"
}
}
}
]
}
}
}

View File

@@ -1,51 +0,0 @@
command:
redis-sentinel-auth:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli -h localhost -p 26379
exit-status: 0
stderr: [ ]
timeout: 20000
redis-sentinel-no-password:
exec: redis-cli SADD testmember "test set"
exit-status: 0
stdout:
- 'NOAUTH Authentication required'
stderr: [ ]
timeout: 20000
redis-sentinel-whoami:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli ACL WHOAMI
exit-status: 0
stdout:
- "default"
stderr: [ ]
timeout: 20000
redis-sentinel-whoami:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli -h localhost -p 26379 SENTINEL MYID
exit-status: 0
stderr: [ ]
timeout: 20000
redis-sentinel-failover:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli -h localhost -p 26379 SENTINEL FAILOVER mymaster
exit-status: 0
stdout:
- "OK"
stderr: [ ]
timeout: 20000
redis-sentinel-checkquorum:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli -h localhost -p 26379 SENTINEL CKQUORUM mymaster
exit-status: 0
stdout:
- "OK 3 usable Sentinels. Quorum and failover authorization can be reached"
stderr: [ ]
timeout: 20000
file:
/bitnami/redis/data:
filetype: directory
exists: true
file:
/opt/bitnami/redis/mounted-etc/sentinel.conf:
exists: true
mode: "0777"
filetype: symlink
contains:
- sentinel monitor mymaster redis-node-0
- sentinel parallel-syncs mymaster 1

View File

@@ -1,64 +0,0 @@
{
"phases": {
"package": {
"context": {
"resources": {
"url": "{SHA_ARCHIVE}",
"path": "/bitnami/redis"
}
},
"actions": [
{
"action_id": "helm-package"
},
{
"action_id": "helm-lint"
}
]
},
"verify": {
"context": {
"resources": {
"url": "{SHA_ARCHIVE}",
"path": "/bitnami/redis"
},
"runtime_parameters": "c2VudGluZWw6CiAgZW5hYmxlZDogdHJ1ZQogIHNlcnZpY2U6CiAgICBwb3J0czoKICAgICAgc2VudGluZWw6IDgwCiAgICB0eXBlOiBMb2FkQmFsYW5jZXIK",
"target_platform": {
"target_platform_id": "{VIB_ENV_TARGET_PLATFORM}",
"size": {
"name": "S4"
}
}
},
"actions": [
{
"action_id": "health-check",
"params": {
"endpoint": "lb-redis-tcp-sentinel"
}
},
{
"action_id": "resilience-tests",
"params": {
"test_cases": [
"testKubernetesPodDelete",
"testPodScaleUp",
"testPodScaleDown"
]
}
},
{
"action_id": "goss",
"params": {
"resources": {
"path": "/.vib/redis/sentinel/goss"
},
"remote": {
"workload": "sts-redis-node"
}
}
}
]
}
}
}

View File

@@ -1,54 +0,0 @@
command:
redis-standalone-auth:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli -h 127.0.0.1 -p 6379
exit-status: 0
stderr: [ ]
timeout: 20000
redis-standalone-ping:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli PING
exit-status: 0
stderr: [ ]
stdout:
- "PONG"
timeout: 20000
redis-standalone-ping-no-password:
exec: redis-cli PING
exit-status: 0
stdout:
- "NOAUTH Authentication required."
stderr: [ ]
timeout: 20000
redis-standalone-whoami:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli ACL WHOAMI
exit-status: 0
stdout:
- "default"
stderr: [ ]
timeout: 20000
redis-standalone-setuser:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli ACL SETUSER virginia on +GET allkeys
exit-status: 0
stdout:
- "OK"
stderr: [ ]
timeout: 20000
redis-standalone-role:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli ROLE
exit-status: 0
stdout:
- "master"
stderr: [ ]
timeout: 20000
redis-standalone-info:
exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli INFO
exit-status: 0
stdout:
- "redis_mode:standalone"
- "connected_slaves:0"
- "role:master"
stderr: [ ]
timeout: 20000
file:
/bitnami/redis/data:
filetype: directory
exists: true

View File

@@ -22,7 +22,7 @@
"url": "{SHA_ARCHIVE}",
"path": "/bitnami/redis"
},
"runtime_parameters": "YXJjaGl0ZWN0dXJlOiBzdGFuZGFsb25lCm1hc3RlcjoKICBzZXJ2aWNlOgogICAgcG9ydHM6CiAgICAgIHJlZGlzOiA4MAogICAgdHlwZTogTG9hZEJhbGFuY2VyCg==",
"runtime_parameters": "YXJjaGl0ZWN0dXJlOiByZXBsaWNhdGlvbgphdXRoOgogIGVuYWJsZWQ6IHRydWUKICBwYXNzd29yZDogQ29tcGxpY2F0ZWRQYXNzd29yZDEyMyE0Cm1hc3RlcjoKICBjb3VudDogMQogIGRpc2FibGVDb21tYW5kczoKICAgIC0gRkxVU0hBTEwKICAgIC0gRkxVU0hEQgogIGNvbnRhaW5lclBvcnRzOgogICAgcmVkaXM6IDYzODAKICBwb2RTZWN1cml0eUNvbnRleHQ6CiAgICBlbmFibGVkOiB0cnVlCiAgICBmc0dyb3VwOiAxMDAyCiAgY29udGFpbmVyU2VjdXJpdHlDb250ZXh0OgogICAgZW5hYmxlZDogdHJ1ZQogICAgcnVuQXNVc2VyOiAxMDAyCiAga2luZDogU3RhdGVmdWxTZXQKICBwZXJzaXN0ZW5jZToKICAgIGVuYWJsZWQ6IHRydWUKICAgIHBhdGg6IC9kYXRhCiAgc2VydmljZToKICAgIHBvcnRzOgogICAgICByZWRpczogODAKICAgIHR5cGU6IExvYWRCYWxhbmNlcgpyZXBsaWNhOgogIHJlcGxpY2FDb3VudDogMwogIGNvbnRhaW5lclBvcnRzOgogICAgcmVkaXM6IDYzODAKICBwb2RTZWN1cml0eUNvbnRleHQ6CiAgICBlbmFibGVkOiB0cnVlCiAgICBmc0dyb3VwOiAxMDAyCiAgY29udGFpbmVyU2VjdXJpdHlDb250ZXh0OgogICAgZW5hYmxlZDogdHJ1ZQogICAgcnVuQXNVc2VyOiAxMDAyCiAgcGVyc2lzdGVuY2U6CiAgICBlbmFibGVkOiB0cnVlCiAgICBwYXRoOiAvZGF0YQogIHNlcnZpY2U6CiAgICBwb3J0czoKICAgICAgcmVkaXM6IDYzNzgKICAgIHR5cGU6IENsdXN0ZXJJUApzZW50aW5lbDoKICBlbmFibGVkOiBmYWxzZQpzZXJ2aWNlQWNjb3VudDoKICBjcmVhdGU6IHRydWUKICBhdXRvbW91bnRTZXJ2aWNlQWNjb3VudFRva2VuOiB0cnVlCg==",
"target_platform": {
"target_platform_id": "{VIB_ENV_TARGET_PLATFORM}",
"size": {
@@ -51,12 +51,13 @@
"action_id": "goss",
"params": {
"resources": {
"path": "/.vib/redis/standalone/goss"
"path": "/.vib/redis/goss"
},
"remote": {
"workload": "sts-redis-master"
}
}
},
"vars_file": "vars.yaml"
}
]
},

View File

@@ -22,7 +22,7 @@
"url": "{SHA_ARCHIVE}",
"path": "/bitnami/redis"
},
"runtime_parameters": "YXJjaGl0ZWN0dXJlOiBzdGFuZGFsb25lCm1hc3RlcjoKICBzZXJ2aWNlOgogICAgcG9ydHM6CiAgICAgIHJlZGlzOiA4MAogICAgdHlwZTogTG9hZEJhbGFuY2VyCg==",
"runtime_parameters": "YXJjaGl0ZWN0dXJlOiByZXBsaWNhdGlvbgphdXRoOgogIGVuYWJsZWQ6IHRydWUKICBwYXNzd29yZDogQ29tcGxpY2F0ZWRQYXNzd29yZDEyMyE0Cm1hc3RlcjoKICBjb3VudDogMQogIGRpc2FibGVDb21tYW5kczoKICAgIC0gRkxVU0hBTEwKICAgIC0gRkxVU0hEQgogIGNvbnRhaW5lclBvcnRzOgogICAgcmVkaXM6IDYzODAKICBwb2RTZWN1cml0eUNvbnRleHQ6CiAgICBlbmFibGVkOiB0cnVlCiAgICBmc0dyb3VwOiAxMDAyCiAgY29udGFpbmVyU2VjdXJpdHlDb250ZXh0OgogICAgZW5hYmxlZDogdHJ1ZQogICAgcnVuQXNVc2VyOiAxMDAyCiAga2luZDogU3RhdGVmdWxTZXQKICBwZXJzaXN0ZW5jZToKICAgIGVuYWJsZWQ6IHRydWUKICAgIHBhdGg6IC9kYXRhCiAgc2VydmljZToKICAgIHBvcnRzOgogICAgICByZWRpczogODAKICAgIHR5cGU6IExvYWRCYWxhbmNlcgpyZXBsaWNhOgogIHJlcGxpY2FDb3VudDogMwogIGNvbnRhaW5lclBvcnRzOgogICAgcmVkaXM6IDYzODAKICBwb2RTZWN1cml0eUNvbnRleHQ6CiAgICBlbmFibGVkOiB0cnVlCiAgICBmc0dyb3VwOiAxMDAyCiAgY29udGFpbmVyU2VjdXJpdHlDb250ZXh0OgogICAgZW5hYmxlZDogdHJ1ZQogICAgcnVuQXNVc2VyOiAxMDAyCiAgcGVyc2lzdGVuY2U6CiAgICBlbmFibGVkOiB0cnVlCiAgICBwYXRoOiAvZGF0YQogIHNlcnZpY2U6CiAgICBwb3J0czoKICAgICAgcmVkaXM6IDYzNzgKICAgIHR5cGU6IENsdXN0ZXJJUApzZW50aW5lbDoKICBlbmFibGVkOiBmYWxzZQpzZXJ2aWNlQWNjb3VudDoKICBjcmVhdGU6IHRydWUKICBhdXRvbW91bnRTZXJ2aWNlQWNjb3VudFRva2VuOiB0cnVlCg==",
"target_platform": {
"target_platform_id": "{VIB_ENV_TARGET_PLATFORM}",
"size": {
@@ -51,11 +51,12 @@
"action_id": "goss",
"params": {
"resources": {
"path": "/.vib/redis/standalone/goss"
"path": "/.vib/redis/goss"
},
"remote": {
"workload": "sts-redis-master"
}
},
"vars_file": "vars.yaml"
}
}
]