From d482c005bbdc05054f6e68b9d02365c5751b68f3 Mon Sep 17 00:00:00 2001 From: Francisco de Paz Galan Date: Mon, 12 Dec 2022 18:26:16 +0100 Subject: [PATCH] [bitnami/grafana-loki] Revisit tests (#13670) * [bitnami/grafana-loki] Revisit tests Signed-off-by: FraPazGal * Apply suggestions Signed-off-by: FraPazGal Signed-off-by: FraPazGal --- .../cypress/integration/grafana_loki_spec.js | 40 ----------------- .vib/grafana-loki/goss/gateway/goss.yaml | 17 ------- .vib/grafana-loki/goss/promtail/goss.yaml | 24 ++++++++++ .vib/grafana-loki/goss/promtail/vars.yaml | 13 ++++++ .vib/grafana-loki/goss/querier/goss.yaml | 45 ++++++++++++++++--- .vib/grafana-loki/goss/querier/vars.yaml | 41 +++++++++++++++++ .vib/grafana-loki/vib-publish.json | 12 ++--- .vib/grafana-loki/vib-verify.json | 12 ++--- 8 files changed, 131 insertions(+), 73 deletions(-) delete mode 100644 .vib/grafana-loki/goss/gateway/goss.yaml create mode 100644 .vib/grafana-loki/goss/promtail/goss.yaml create mode 100644 .vib/grafana-loki/goss/promtail/vars.yaml create mode 100644 .vib/grafana-loki/goss/querier/vars.yaml diff --git a/.vib/grafana-loki/cypress/cypress/integration/grafana_loki_spec.js b/.vib/grafana-loki/cypress/cypress/integration/grafana_loki_spec.js index 3b1a13048..6041c6a67 100644 --- a/.vib/grafana-loki/cypress/cypress/integration/grafana_loki_spec.js +++ b/.vib/grafana-loki/cypress/cypress/integration/grafana_loki_spec.js @@ -2,36 +2,6 @@ import body from '../fixtures/logs-body.json'; import { lastMinuteTimestamp } from '../support/utils'; -it('shows build info endpoint', () => { - cy.request({ - method: 'GET', - url: '/loki/api/v1/status/buildinfo', - form: true, - }).then((response) => { - expect(response.status).to.eq(200); - expect(response.body).to.include.all.keys( - 'version', - 'revision', - 'branch', - 'buildUser', - 'goVersion' - ); - }); -}); - -it('allows Loki to get Grafana logs', () => { - cy.request({ - method: 'GET', - url: 'loki/api/v1/query?query={app="grafana-loki"}', - form: true, - }).then((response) => { - expect(response.status).to.eq(200); - expect(response.headers['content-type']).to.eq( - 'application/json; charset=UTF-8' - ); - }); -}); - it('checks Loki range endpoint', () => { cy.request({ method: 'GET', @@ -75,13 +45,3 @@ it('can publish and retrieve a label', () => { expect(response.body.data).to.contain('value'); }); }); - -it('can get a list of series', () => { - cy.request({ - method: 'GET', - url: 'loki/api/v1/series', - form: true, - }).then((response) => { - expect(response.status).to.eq(200); - }); -}); diff --git a/.vib/grafana-loki/goss/gateway/goss.yaml b/.vib/grafana-loki/goss/gateway/goss.yaml deleted file mode 100644 index 01f9051a3..000000000 --- a/.vib/grafana-loki/goss/gateway/goss.yaml +++ /dev/null @@ -1,17 +0,0 @@ -file: - /opt/bitnami/nginx/conf/nginx.conf: - mode: "0644" - filetype: file - exists: true - /app/index.html: - mode: "0644" - filetype: file - exists: true - contains: - - "Welcome to nginx!" -command: - user-id-test: - exec: if [ "$(id -u)" -eq 0 ]; then exit 1; fi - exit-status: 0 - stdout: [] - stderr: [] diff --git a/.vib/grafana-loki/goss/promtail/goss.yaml b/.vib/grafana-loki/goss/promtail/goss.yaml new file mode 100644 index 000000000..fa3cfa101 --- /dev/null +++ b/.vib/grafana-loki/goss/promtail/goss.yaml @@ -0,0 +1,24 @@ +file: + /bitnami/promtail/conf/promtail.yaml: + mode: "0644" + filetype: file + exists: true + owner: root + contains: + - /http_listen_port.*{{ .Vars.promtail.containerPorts.http }}/ + /var/run/secrets/kubernetes.io/serviceaccount: + exists: {{ .Vars.promtail.serviceAccount.automountServiceAccountToken }} + filetype: directory + mode: "3777" +http: + http://grafana-loki-promtail:{{ .Vars.promtail.service.ports.http }}/config: + status: 200 + body: + - /log_level.*{{ .Vars.promtail.logLevel }}/ +command: + check-user-info: + exec: id + exit-status: 0 + stdout: + - uid={{ .Vars.promtail.containerSecurityContext.runAsUser }} + - /groups=.*{{ .Vars.promtail.podSecurityContext.fsGroup }}/ diff --git a/.vib/grafana-loki/goss/promtail/vars.yaml b/.vib/grafana-loki/goss/promtail/vars.yaml new file mode 100644 index 000000000..9d48721e2 --- /dev/null +++ b/.vib/grafana-loki/goss/promtail/vars.yaml @@ -0,0 +1,13 @@ +promtail: + containerPorts: + http: 8081 + podSecurityContext: + fsGroup: 0 + containerSecurityContext: + runAsUser: 0 + logLevel: debug + service: + ports: + http: 3101 + serviceAccount: + automountServiceAccountToken: true diff --git a/.vib/grafana-loki/goss/querier/goss.yaml b/.vib/grafana-loki/goss/querier/goss.yaml index 21ee19de1..f3da87fe4 100644 --- a/.vib/grafana-loki/goss/querier/goss.yaml +++ b/.vib/grafana-loki/goss/querier/goss.yaml @@ -1,9 +1,42 @@ file: - /opt/bitnami/grafana-loki/bin/loki: - mode: "0755" - filetype: file - exists: true - /opt/bitnami/grafana-loki/bin/logcli: - mode: "0755" + {{ .Vars.loki.dataDir }}/conf/loki.yaml: + mode: "0644" filetype: file exists: true + owner: root + contains: + - "memcachedchunks:{{ .Vars.memcachedchunks.service.ports.memcached }}" + - "memcachedfrontend:{{ .Vars.memcachedfrontend.service.ports.memcached }}" + - "memcachedindexqueries:{{ .Vars.memcachedindexqueries.service.ports.memcached }}" + - /http_listen_port.*{{ .Vars.loki.containerPorts.http }}/ +http: + # As we need to make several API requests, we'll use different services (and pods) + # to at the same time test most of them are working properly. For those services not used here, + # we suppose they are running as expected given that all follow the same arch + http://grafana-loki-distributor:{{ .Vars.distributor.service.ports.http }}/services: + status: 200 + body: + - "!Stopping" + - "!Terminated" + - "!Failed" + http://grafana-loki-ingester:{{ .Vars.ingester.service.ports.http }}/config: + status: 200 + body: + - /advertise_port.*{{ .Vars.loki.containerPorts.gossipRing }}/ + http://grafana-loki-compactor:{{ .Vars.compactor.service.ports.http }}/compactor/ring: + status: 200 + body: + - ACTIVE +addr: + tcp://grafana-loki-gossip-ring:{{ .Vars.loki.gossipRing.service.ports.http }}: + reachable: true +command: + check-logcli: + exec: logcli instant-query --addr=http://grafana-loki-querier:{{ .Vars.querier.service.ports.http }} '{app="grafana-loki"}' + exit-status: 0 + check-user-info: + exec: id + exit-status: 0 + stdout: + - uid={{ .Vars.querier.containerSecurityContext.runAsUser }} + - /groups=.*{{ .Vars.querier.podSecurityContext.fsGroup }}/ diff --git a/.vib/grafana-loki/goss/querier/vars.yaml b/.vib/grafana-loki/goss/querier/vars.yaml new file mode 100644 index 000000000..dd4c775b7 --- /dev/null +++ b/.vib/grafana-loki/goss/querier/vars.yaml @@ -0,0 +1,41 @@ +loki: + dataDir: "/bitnami/grafana-loki" + containerPorts: + http: 3101 + gossipRing: 7946 + gossipRing: + service: + ports: + http: 7946 +compactor: + service: + ports: + http: 3100 +distributor: + service: + ports: + http: 3100 +ingester: + service: + ports: + http: 3100 +querier: + podSecurityContext: + fsGroup: 1002 + containerSecurityContext: + runAsUser: 1002 + service: + ports: + http: 3100 +memcachedchunks: + service: + ports: + memcached: 11212 +memcachedfrontend: + service: + ports: + memcached: 11212 +memcachedindexqueries: + service: + ports: + memcached: 11212 diff --git a/.vib/grafana-loki/vib-publish.json b/.vib/grafana-loki/vib-publish.json index ea8dc6296..53694285a 100644 --- a/.vib/grafana-loki/vib-publish.json +++ b/.vib/grafana-loki/vib-publish.json @@ -22,7 +22,7 @@ "url": "{SHA_ARCHIVE}", "path": "/bitnami/grafana-loki" }, - "runtime_parameters": "Z2F0ZXdheToKICBzZXJ2aWNlOgogICAgcG9ydHM6CiAgICAgIGh0dHA6IDgwCiAgICB0eXBlOiBMb2FkQmFsYW5jZXIK", + "runtime_parameters": "bG9raToKICBkYXRhRGlyOiAiL2JpdG5hbWkvZ3JhZmFuYS1sb2tpIgogIGNvbnRhaW5lclBvcnRzOgogICAgaHR0cDogMzEwMQogICAgZ29zc2lwUmluZzogNzk0NgogIGdvc3NpcFJpbmc6CiAgICBzZXJ2aWNlOgogICAgICBwb3J0czoKICAgICAgICBodHRwOiA3OTQ2CmNvbXBhY3RvcjoKICBlbmFibGVkOiB0cnVlCiAgc2VydmljZToKICAgIHBvcnRzOgogICAgICBodHRwOiAzMTAwCmdhdGV3YXk6CiAgZW5hYmxlZDogdHJ1ZQogIHNlcnZpY2U6CiAgICBwb3J0czoKICAgICAgaHR0cDogODAKICAgIHR5cGU6IExvYWRCYWxhbmNlcgpkaXN0cmlidXRvcjoKICBzZXJ2aWNlOgogICAgcG9ydHM6CiAgICAgIGh0dHA6IDMxMDAKaW5nZXN0ZXI6CiAgc2VydmljZToKICAgIHBvcnRzOgogICAgICBodHRwOiAzMTAwCnF1ZXJpZXI6CiAgcG9kU2VjdXJpdHlDb250ZXh0OgogICAgZW5hYmxlZDogdHJ1ZQogICAgZnNHcm91cDogMTAwMgogIGNvbnRhaW5lclNlY3VyaXR5Q29udGV4dDoKICAgIGVuYWJsZWQ6IHRydWUKICAgIHJ1bkFzVXNlcjogMTAwMgogIHNlcnZpY2U6CiAgICBwb3J0czoKICAgICAgaHR0cDogMzEwMApxdWVyeUZyb250ZW5kOgogIHNlcnZpY2U6CiAgICBwb3J0czoKICAgICAgaHR0cDogMzEwMApxdWVyeVNjaGVkdWxlcjoKICBzZXJ2aWNlOgogICAgcG9ydHM6CiAgICAgIGh0dHA6IDMxMDAKcHJvbXRhaWw6CiAgZW5hYmxlZDogdHJ1ZQogIGNvbnRhaW5lclBvcnRzOgogICAgaHR0cDogODA4MQogIHBvZFNlY3VyaXR5Q29udGV4dDoKICAgIGVuYWJsZWQ6IHRydWUKICAgIGZzR3JvdXA6IDAKICBjb250YWluZXJTZWN1cml0eUNvbnRleHQ6CiAgICBlbmFibGVkOiB0cnVlCiAgICBydW5Bc1VzZXI6IDAKICBsb2dMZXZlbDogZGVidWcKICBzZXJ2aWNlOgogICAgdHlwZTogQ2x1c3RlcklQCiAgICBwb3J0czoKICAgICAgaHR0cDogMzEwMQogIHJiYWM6CiAgICBjcmVhdGU6IHRydWUKICBzZXJ2aWNlQWNjb3VudDoKICAgIGNyZWF0ZTogdHJ1ZQogICAgYXV0b21vdW50U2VydmljZUFjY291bnRUb2tlbjogdHJ1ZQptZW1jYWNoZWRjaHVua3M6CiAgZW5hYmxlZDogdHJ1ZQogIHNlcnZpY2U6CiAgICBwb3J0czoKICAgICAgbWVtY2FjaGVkOiAxMTIxMgptZW1jYWNoZWRmcm9udGVuZDoKICBlbmFibGVkOiB0cnVlCiAgc2VydmljZToKICAgIHBvcnRzOgogICAgICBtZW1jYWNoZWQ6IDExMjEyCm1lbWNhY2hlZGluZGV4cXVlcmllczoKICBlbmFibGVkOiB0cnVlCiAgc2VydmljZToKICAgIHBvcnRzOgogICAgICBtZW1jYWNoZWQ6IDExMjEyIA==", "target_platform": { "target_platform_id": "{VIB_ENV_TARGET_PLATFORM}", "size": { @@ -42,11 +42,12 @@ "action_id": "goss", "params": { "resources": { - "path": "/.vib/grafana-loki/goss/gateway" + "path": "/.vib/grafana-loki/goss/promtail" }, "remote": { - "workload": "deploy-grafana-loki-gateway" - } + "workload": "ds-grafana-loki-promtail" + }, + "vars_file": "vars.yaml" } }, { @@ -57,7 +58,8 @@ }, "remote": { "workload": "sts-grafana-loki-querier" - } + }, + "vars_file": "vars.yaml" } }, { diff --git a/.vib/grafana-loki/vib-verify.json b/.vib/grafana-loki/vib-verify.json index dfff5c5ff..45823c254 100644 --- a/.vib/grafana-loki/vib-verify.json +++ b/.vib/grafana-loki/vib-verify.json @@ -22,7 +22,7 @@ "url": "{SHA_ARCHIVE}", "path": "/bitnami/grafana-loki" }, - "runtime_parameters": "Z2F0ZXdheToKICBzZXJ2aWNlOgogICAgcG9ydHM6CiAgICAgIGh0dHA6IDgwCiAgICB0eXBlOiBMb2FkQmFsYW5jZXIK", + "runtime_parameters": "bG9raToKICBkYXRhRGlyOiAiL2JpdG5hbWkvZ3JhZmFuYS1sb2tpIgogIGNvbnRhaW5lclBvcnRzOgogICAgaHR0cDogMzEwMQogICAgZ29zc2lwUmluZzogNzk0NgogIGdvc3NpcFJpbmc6CiAgICBzZXJ2aWNlOgogICAgICBwb3J0czoKICAgICAgICBodHRwOiA3OTQ2CmNvbXBhY3RvcjoKICBlbmFibGVkOiB0cnVlCiAgc2VydmljZToKICAgIHBvcnRzOgogICAgICBodHRwOiAzMTAwCmdhdGV3YXk6CiAgZW5hYmxlZDogdHJ1ZQogIHNlcnZpY2U6CiAgICBwb3J0czoKICAgICAgaHR0cDogODAKICAgIHR5cGU6IExvYWRCYWxhbmNlcgpkaXN0cmlidXRvcjoKICBzZXJ2aWNlOgogICAgcG9ydHM6CiAgICAgIGh0dHA6IDMxMDAKaW5nZXN0ZXI6CiAgc2VydmljZToKICAgIHBvcnRzOgogICAgICBodHRwOiAzMTAwCnF1ZXJpZXI6CiAgcG9kU2VjdXJpdHlDb250ZXh0OgogICAgZW5hYmxlZDogdHJ1ZQogICAgZnNHcm91cDogMTAwMgogIGNvbnRhaW5lclNlY3VyaXR5Q29udGV4dDoKICAgIGVuYWJsZWQ6IHRydWUKICAgIHJ1bkFzVXNlcjogMTAwMgogIHNlcnZpY2U6CiAgICBwb3J0czoKICAgICAgaHR0cDogMzEwMApxdWVyeUZyb250ZW5kOgogIHNlcnZpY2U6CiAgICBwb3J0czoKICAgICAgaHR0cDogMzEwMApxdWVyeVNjaGVkdWxlcjoKICBzZXJ2aWNlOgogICAgcG9ydHM6CiAgICAgIGh0dHA6IDMxMDAKcHJvbXRhaWw6CiAgZW5hYmxlZDogdHJ1ZQogIGNvbnRhaW5lclBvcnRzOgogICAgaHR0cDogODA4MQogIHBvZFNlY3VyaXR5Q29udGV4dDoKICAgIGVuYWJsZWQ6IHRydWUKICAgIGZzR3JvdXA6IDAKICBjb250YWluZXJTZWN1cml0eUNvbnRleHQ6CiAgICBlbmFibGVkOiB0cnVlCiAgICBydW5Bc1VzZXI6IDAKICBsb2dMZXZlbDogZGVidWcKICBzZXJ2aWNlOgogICAgdHlwZTogQ2x1c3RlcklQCiAgICBwb3J0czoKICAgICAgaHR0cDogMzEwMQogIHJiYWM6CiAgICBjcmVhdGU6IHRydWUKICBzZXJ2aWNlQWNjb3VudDoKICAgIGNyZWF0ZTogdHJ1ZQogICAgYXV0b21vdW50U2VydmljZUFjY291bnRUb2tlbjogdHJ1ZQptZW1jYWNoZWRjaHVua3M6CiAgZW5hYmxlZDogdHJ1ZQogIHNlcnZpY2U6CiAgICBwb3J0czoKICAgICAgbWVtY2FjaGVkOiAxMTIxMgptZW1jYWNoZWRmcm9udGVuZDoKICBlbmFibGVkOiB0cnVlCiAgc2VydmljZToKICAgIHBvcnRzOgogICAgICBtZW1jYWNoZWQ6IDExMjEyCm1lbWNhY2hlZGluZGV4cXVlcmllczoKICBlbmFibGVkOiB0cnVlCiAgc2VydmljZToKICAgIHBvcnRzOgogICAgICBtZW1jYWNoZWQ6IDExMjEyIA==", "target_platform": { "target_platform_id": "{VIB_ENV_TARGET_PLATFORM}", "size": { @@ -42,11 +42,12 @@ "action_id": "goss", "params": { "resources": { - "path": "/.vib/grafana-loki/goss/gateway" + "path": "/.vib/grafana-loki/goss/promtail" }, "remote": { - "workload": "deploy-grafana-loki-gateway" - } + "workload": "ds-grafana-loki-promtail" + }, + "vars_file": "vars.yaml" } }, { @@ -57,7 +58,8 @@ }, "remote": { "workload": "sts-grafana-loki-querier" - } + }, + "vars_file": "vars.yaml" } }, {