diff --git a/.vib/redis-cluster/goss/goss.yaml b/.vib/redis-cluster/goss/goss.yaml index 60938ba08..60b52ae6e 100644 --- a/.vib/redis-cluster/goss/goss.yaml +++ b/.vib/redis-cluster/goss/goss.yaml @@ -1,39 +1,45 @@ +{{- $auth := printf "REDISCLI_AUTH=%s" .Vars.password }} +{{- $redis_port := .Vars.redis.containerPorts.redis }} +{{- $lb_endpoint := printf "-h redis-cluster -p %d" .Vars.service.ports.redis }} +{{- $nodes := .Vars.cluster.nodes }} command: - redis-version: - exec: redis-server --version | grep --quiet "$APP_VERSION" + {{- $key := printf "key_%s" (randAlpha 5) }} + {{- $value := printf "value_%s" (randAlpha 5) }} + redis-set-key-value-pairs: + exec: | + export {{ $auth }} && \ + redis-cli {{ $lb_endpoint }} CLUSTER NODES | grep master -m 1 | cut -d' ' -f 2 | cut -d':' -f 1 | \ + xargs -I '{}' redis-cli -c -h '{}' -p {{ $redis_port }} SET {{ $key }} {{ $value }} && sleep 1 \ + {{ range $e, $i := until $nodes }} && redis-cli -c -h redis-cluster-{{ $i }}.redis-cluster-headless -p {{ $redis_port }} GET {{ $key }} | grep -q {{ $value }}{{ end }} exit-status: 0 - stdout: [ ] - stderr: [ ] - timeout: 20000 - redis-auth: - exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli - exit-status: 0 - stderr: [ ] - timeout: 20000 - redis-setuser: - exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli ACL SETUSER bitware on +GET allkeys - exit-status: 0 - stdout: - - "OK" - stderr: [ ] - timeout: 20000 - redis-node-info: - exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli INFO - exit-status: 0 - stdout: - - "redis_mode:cluster" - stderr: [ ] - timeout: 20000 redis-cluster-info: - exec: REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli CLUSTER INFO + exec: {{ $auth }} redis-cli {{ $lb_endpoint }} CLUSTER INFO exit-status: 0 stdout: - "cluster_state:ok" - - "cluster_known_nodes:6" - - "cluster_size:3" - stderr: [ ] - timeout: 20000 + - "cluster_known_nodes:{{ $nodes }}" + redis-node-info: + exec: | + export {{ $auth }} && \ + redis-cli {{ $lb_endpoint }} CLUSTER SLOTS | sed -n '3p' | \ + xargs -I '{}' redis-cli -h '{}' -p {{ $redis_port }} INFO + exit-status: 0 + stdout: + - "role:master" + - "connected_slaves:{{ .Vars.cluster.replicas }}" + check-user-info: + exec: id + exit-status: 0 + stdout: + - uid={{ .Vars.containerSecurityContext.runAsUser }} + - /groups=.*{{ .Vars.podSecurityContext.fsGroup }}/ file: - /bitnami/redis/data: + {{ .Vars.persistence.path }}: filetype: directory exists: true + mode: "2775" + owner: root + /opt/bitnami/redis/etc/redis.conf: + filetype: file + exists: true + mode: "0644" diff --git a/.vib/redis-cluster/goss/vars.yaml b/.vib/redis-cluster/goss/vars.yaml new file mode 100644 index 000000000..5c79f56da --- /dev/null +++ b/.vib/redis-cluster/goss/vars.yaml @@ -0,0 +1,17 @@ +podSecurityContext: + fsGroup: 1002 +containerSecurityContext: + runAsUser: 1002 +password: ComplicatedPassword123!4 +service: + ports: + redis: 80 +persistence: + path: /bitnami/redis/data +redis: + containerPorts: + redis: 6380 + bus: 16380 +cluster: + nodes: 9 + replicas: 2 diff --git a/.vib/redis-cluster/vib-publish.json b/.vib/redis-cluster/vib-publish.json index cb37cdf54..617d028c2 100644 --- a/.vib/redis-cluster/vib-publish.json +++ b/.vib/redis-cluster/vib-publish.json @@ -22,7 +22,7 @@ "url": "{SHA_ARCHIVE}", "path": "/bitnami/redis-cluster" }, - "runtime_parameters": "InBhc3N3b3JkIjogIkNvbXBsaWNhdGVkUGFzc3dvcmQxMjMhNCIKInNlcnZpY2UiOgogICJwb3J0cyI6CiAgICAicmVkaXMiOiA4MAogICJ0eXBlIjogIkxvYWRCYWxhbmNlciI=", + "runtime_parameters": "cG9kU2VjdXJpdHlDb250ZXh0OgogIGVuYWJsZWQ6IHRydWUKICBmc0dyb3VwOiAxMDAyCmNvbnRhaW5lclNlY3VyaXR5Q29udGV4dDoKICBlbmFibGVkOiB0cnVlCiAgcnVuQXNVc2VyOiAxMDAyCnVzZVBhc3N3b3JkOiB0cnVlCnBhc3N3b3JkOiBDb21wbGljYXRlZFBhc3N3b3JkMTIzITQKc2VydmljZToKICBwb3J0czoKICAgIHJlZGlzOiA4MAogIHR5cGU6IExvYWRCYWxhbmNlcgpwZXJzaXN0ZW5jZToKICBwYXRoOiAvYml0bmFtaS9yZWRpcy9kYXRhCnJlZGlzOgogIGNvbnRhaW5lclBvcnRzOgogICAgcmVkaXM6IDYzODAKICAgIGJ1czogMTYzODAKY2x1c3RlcjoKICBpbml0OiB0cnVlCiAgbm9kZXM6IDkKICByZXBsaWNhczogMg==", "target_platform": { "target_platform_id": "{VIB_ENV_TARGET_PLATFORM}", "size": { @@ -45,7 +45,8 @@ }, "remote": { "workload": "sts-redis-cluster" - } + }, + "vars_file": "vars.yaml" } } ] diff --git a/.vib/redis-cluster/vib-verify.json b/.vib/redis-cluster/vib-verify.json index a91c6f278..ffc77446c 100644 --- a/.vib/redis-cluster/vib-verify.json +++ b/.vib/redis-cluster/vib-verify.json @@ -22,7 +22,7 @@ "url": "{SHA_ARCHIVE}", "path": "/bitnami/redis-cluster" }, - "runtime_parameters": "InBhc3N3b3JkIjogIkNvbXBsaWNhdGVkUGFzc3dvcmQxMjMhNCIKInNlcnZpY2UiOgogICJwb3J0cyI6CiAgICAicmVkaXMiOiA4MAogICJ0eXBlIjogIkxvYWRCYWxhbmNlciI=", + "runtime_parameters": "cG9kU2VjdXJpdHlDb250ZXh0OgogIGVuYWJsZWQ6IHRydWUKICBmc0dyb3VwOiAxMDAyCmNvbnRhaW5lclNlY3VyaXR5Q29udGV4dDoKICBlbmFibGVkOiB0cnVlCiAgcnVuQXNVc2VyOiAxMDAyCnVzZVBhc3N3b3JkOiB0cnVlCnBhc3N3b3JkOiBDb21wbGljYXRlZFBhc3N3b3JkMTIzITQKc2VydmljZToKICBwb3J0czoKICAgIHJlZGlzOiA4MAogIHR5cGU6IExvYWRCYWxhbmNlcgpwZXJzaXN0ZW5jZToKICBwYXRoOiAvYml0bmFtaS9yZWRpcy9kYXRhCnJlZGlzOgogIGNvbnRhaW5lclBvcnRzOgogICAgcmVkaXM6IDYzODAKICAgIGJ1czogMTYzODAKY2x1c3RlcjoKICBpbml0OiB0cnVlCiAgbm9kZXM6IDkKICByZXBsaWNhczogMg==", "target_platform": { "target_platform_id": "{VIB_ENV_TARGET_PLATFORM}", "size": { @@ -45,7 +45,8 @@ }, "remote": { "workload": "sts-redis-cluster" - } + }, + "vars_file": "vars.yaml" } } ]