[bitnami/kube-prometheus] Add tests and publishing using VIB (#13035)

* [bitnami/kube-prometheus] Add tests and publishing using VIB

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

* Apply suggestions

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

* Add goss test to check capabilities

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

* Add missing runtime_params

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

Signed-off-by: FraPazGal <fdepaz@vmware.com>
Signed-off-by: Francisco de Paz Galan <fdepaz@vmware.com>
This commit is contained in:
Francisco de Paz Galan
2022-10-31 17:47:56 +01:00
committed by GitHub
parent 21e3cfd8c1
commit 32df5b94ee
9 changed files with 158 additions and 2 deletions

View File

@@ -38,6 +38,7 @@ on: # rebuild any PRs and main branch changes
- 'bitnami/keycloak/**'
- 'bitnami/kibana/**'
- 'bitnami/kong/**'
- 'bitnami/kube-prometheus/**'
- 'bitnami/kubernetes-event-exporter/**'
- 'bitnami/logstash/**'
- 'bitnami/magento/**'

View File

@@ -0,0 +1,41 @@
{
"deployments": {
"alertmanager": {
"query": "alertmanager_alerts"
},
"kube-state-metrics": {
"query": "kube_deployment_created"
},
"node-exporter": {
"query": "node_boot_time_seconds"
},
"prometheus": {
"query": "prometheus_http_requests_total"
},
"prometheus-operator": {
"query": "prometheus_operator_spec_replicas"
}
},
"monitors": {
"kubelet": {
"query": "kubelet_node_name"
},
"apiserver": {
"query": "apiserver_storage_objects"
}
},
"targets": {
"alertmanager": {
"replicaCount": 2
},
"kube-state-metrics": {
"replicaCount": 1
},
"operator": {
"replicaCount": 1
},
"prometheus-prometheus": {
"replicaCount": 2
}
}
}

View File

@@ -0,0 +1,4 @@
{
"baseUrl": "http://localhost",
"defaultCommandTimeout": 30000
}

View File

@@ -0,0 +1,38 @@
/// <reference types="cypress" />
it('allows executing a query and displaying response data for each deployment', () => {
const deployments = Cypress.env('deployments');
cy.visit(`/graph`);
Object.keys(deployments).forEach((podName, i) => {
const query = Object.values(deployments)[i].query;
cy.get('[role="textbox"]').clear().type(query);
cy.contains('Execute').click({force: true});
cy.contains('.data-table', `container="${podName}"`)
})
});
it('allows executing a query and displaying response data for each service monitor', () => {
const monitors = Cypress.env('monitors');
cy.visit(`/graph`);
Object.keys(monitors).forEach((jobName, i) => {
const query = Object.values(monitors)[i].query;
cy.get('[role="textbox"]').clear().type(query);
cy.contains('Execute').click();
cy.contains('.data-table', `job="${jobName}"`)
})
});
it('checks targets status', () => {
const targets = Cypress.env('targets');
Object.keys(targets).forEach((podName, i) => {
const podData = Object.values(targets)[i];
cy.visit(`/targets?search=${podName}`);
cy.contains(`${podData.replicaCount}/${podData.replicaCount} up`);
})
});

View File

@@ -0,0 +1,21 @@
file:
/var/run/secrets/kubernetes.io/serviceaccount:
exists: {{ .Vars.operator.serviceAccount.automountServiceAccountToken }}
filetype: directory
mode: "3777"
command:
check-no-capabilities:
exec: cat /proc/1/status
exit-status: 0
stdout:
- "CapInh: 0000000000000000"
- "CapPrm: 0000000000000000"
- "CapEff: 0000000000000000"
- "CapBnd: 0000000000000000"
- "CapAmb: 0000000000000000"
check-user-info:
exec: id
exit-status: 0
stdout:
- uid={{ .Vars.operator.podSecurityContext.runAsUser }}
- /groups=.*{{ .Vars.operator.podSecurityContext.fsGroup }}/

View File

@@ -0,0 +1,6 @@
operator:
serviceAccount:
automountServiceAccountToken: true
podSecurityContext:
runAsUser: 1002
fsGroup: 1002

View File

@@ -0,0 +1 @@
verification-mode=SERIAL

View File

@@ -22,7 +22,7 @@
"url": "{SHA_ARCHIVE}",
"path": "/bitnami/kube-prometheus"
},
"runtime_parameters": "Im9wZXJhdG9yIjoKICAiY3VzdG9tUmVzb3VyY2VEZWxldGVQb2xpY3kiOiAiYmVmb3JlLWhvb2stY3JlYXRpb24iCiJwcm9tZXRoZXVzIjoKICAic2VydmljZSI6CiAgICAidHlwZSI6ICJMb2FkQmFsYW5jZXIiCiAgICAicG9ydHMiOiAKICAgICAgImh0dHAiOiA4MAo=",
"runtime_parameters": "b3BlcmF0b3I6CiAgZW5hYmxlZDogdHJ1ZQogIHNlcnZpY2VBY2NvdW50OgogICAgY3JlYXRlOiB0cnVlCiAgICBhdXRvbW91bnRTZXJ2aWNlQWNjb3VudFRva2VuOiB0cnVlCiAgcG9kU2VjdXJpdHlDb250ZXh0OgogICAgZW5hYmxlZDogdHJ1ZQogICAgcnVuQXNVc2VyOiAxMDAyCiAgICBmc0dyb3VwOiAxMDAyCiAgY29udGFpbmVyU2VjdXJpdHlDb250ZXh0OgogICAgZW5hYmxlZDogdHJ1ZQogICAgY2FwYWJpbGl0aWVzOgogICAgICBkcm9wOgogICAgICAtIEFMTAogICAgcnVuQXNOb25Sb290OiB0cnVlCiAgICByZWFkT25seVJvb3RGaWxlc3lzdGVtOiBmYWxzZQogIHNlcnZpY2VNb25pdG9yOgogICAgZW5hYmxlZDogdHJ1ZQogIGt1YmVsZXRTZXJ2aWNlOgogICAgZW5hYmxlZDogdHJ1ZQogIHNlcnZpY2U6CiAgICBwb3J0czoKICAgICAgaHR0cDogODA4MQpwcm9tZXRoZXVzOgogIGVuYWJsZWQ6IHRydWUKICByZXBsaWNhQ291bnQ6IDIKICBzZXJ2aWNlTW9uaXRvcjoKICAgIGVuYWJsZWQ6IHRydWUKICBzZXJ2aWNlOgogICAgdHlwZTogTG9hZEJhbGFuY2VyCiAgICBwb3J0czogCiAgICAgIGh0dHA6IDgwCmFsZXJ0bWFuYWdlcjoKICBlbmFibGVkOiB0cnVlCiAgcmVwbGljYUNvdW50OiAyCiAgc2VydmljZU1vbml0b3I6CiAgICBlbmFibGVkOiB0cnVlCiAgc2VydmljZToKICAgIHBvcnRzOgogICAgICBodHRwOiA5MDk0Cm5vZGUtZXhwb3J0ZXI6CiAgc2VydmljZU1vbml0b3I6CiAgICBlbmFibGVkOiB0cnVlCmt1YmUtc3RhdGUtbWV0cmljczoKICByZXBsaWNhQ291bnQ6IDEKICBzZXJ2aWNlTW9uaXRvcjoKICAgIGVuYWJsZWQ6IHRydWUKZXhwb3J0ZXJzOgogIG5vZGUtZXhwb3J0ZXI6CiAgICBlbmFibGVkOiB0cnVlCiAga3ViZS1zdGF0ZS1tZXRyaWNzOgogICAgZW5hYmxlZDogdHJ1ZQprdWJlbGV0OgogIGVuYWJsZWQ6IHRydWUKa3ViZUFwaVNlcnZlcjoKICBlbmFibGVkOiB0cnVlCmt1YmVDb250cm9sbGVyTWFuYWdlcjoKICBlbmFibGVkOiB0cnVlCmt1YmVTY2hlZHVsZXI6CiAgZW5hYmxlZDogdHJ1ZQpjb3JlRG5zOgogIGVuYWJsZWQ6IHRydWUKa3ViZVByb3h5OgogIGVuYWJsZWQ6IHRydWUKcmJhYzoKICBjcmVhdGU6IHRydWUKICBwc3BFbmFibGVkOiB0cnVl",
"target_platform": {
"target_platform_id": "{VIB_ENV_TARGET_PLATFORM}",
"size": {
@@ -37,6 +37,28 @@
"endpoint": "lb-kube-prometheus-prometheus-http",
"app_protocol": "HTTP"
}
},
{
"action_id": "cypress",
"params": {
"resources": {
"path": "/.vib/kube-prometheus/cypress"
},
"endpoint": "lb-kube-prometheus-prometheus-http",
"app_protocol": "HTTP"
}
},
{
"action_id": "goss",
"params": {
"resources": {
"path": "/.vib/kube-prometheus/goss"
},
"remote": {
"workload": "deploy-kube-prometheus-operator"
},
"vars_file": "vars.yaml"
}
}
]
},

View File

@@ -22,7 +22,7 @@
"url": "{SHA_ARCHIVE}",
"path": "/bitnami/kube-prometheus"
},
"runtime_parameters": "Im9wZXJhdG9yIjoKICAiY3VzdG9tUmVzb3VyY2VEZWxldGVQb2xpY3kiOiAiYmVmb3JlLWhvb2stY3JlYXRpb24iCiJwcm9tZXRoZXVzIjoKICAic2VydmljZSI6CiAgICAidHlwZSI6ICJMb2FkQmFsYW5jZXIiCiAgICAicG9ydHMiOiAKICAgICAgImh0dHAiOiA4MAo=",
"runtime_parameters": "b3BlcmF0b3I6CiAgZW5hYmxlZDogdHJ1ZQogIHNlcnZpY2VBY2NvdW50OgogICAgY3JlYXRlOiB0cnVlCiAgICBhdXRvbW91bnRTZXJ2aWNlQWNjb3VudFRva2VuOiB0cnVlCiAgcG9kU2VjdXJpdHlDb250ZXh0OgogICAgZW5hYmxlZDogdHJ1ZQogICAgcnVuQXNVc2VyOiAxMDAyCiAgICBmc0dyb3VwOiAxMDAyCiAgY29udGFpbmVyU2VjdXJpdHlDb250ZXh0OgogICAgZW5hYmxlZDogdHJ1ZQogICAgY2FwYWJpbGl0aWVzOgogICAgICBkcm9wOgogICAgICAtIEFMTAogICAgcnVuQXNOb25Sb290OiB0cnVlCiAgICByZWFkT25seVJvb3RGaWxlc3lzdGVtOiBmYWxzZQogIHNlcnZpY2VNb25pdG9yOgogICAgZW5hYmxlZDogdHJ1ZQogIGt1YmVsZXRTZXJ2aWNlOgogICAgZW5hYmxlZDogdHJ1ZQogIHNlcnZpY2U6CiAgICBwb3J0czoKICAgICAgaHR0cDogODA4MQpwcm9tZXRoZXVzOgogIGVuYWJsZWQ6IHRydWUKICByZXBsaWNhQ291bnQ6IDIKICBzZXJ2aWNlTW9uaXRvcjoKICAgIGVuYWJsZWQ6IHRydWUKICBzZXJ2aWNlOgogICAgdHlwZTogTG9hZEJhbGFuY2VyCiAgICBwb3J0czogCiAgICAgIGh0dHA6IDgwCmFsZXJ0bWFuYWdlcjoKICBlbmFibGVkOiB0cnVlCiAgcmVwbGljYUNvdW50OiAyCiAgc2VydmljZU1vbml0b3I6CiAgICBlbmFibGVkOiB0cnVlCiAgc2VydmljZToKICAgIHBvcnRzOgogICAgICBodHRwOiA5MDk0Cm5vZGUtZXhwb3J0ZXI6CiAgc2VydmljZU1vbml0b3I6CiAgICBlbmFibGVkOiB0cnVlCmt1YmUtc3RhdGUtbWV0cmljczoKICByZXBsaWNhQ291bnQ6IDEKICBzZXJ2aWNlTW9uaXRvcjoKICAgIGVuYWJsZWQ6IHRydWUKZXhwb3J0ZXJzOgogIG5vZGUtZXhwb3J0ZXI6CiAgICBlbmFibGVkOiB0cnVlCiAga3ViZS1zdGF0ZS1tZXRyaWNzOgogICAgZW5hYmxlZDogdHJ1ZQprdWJlbGV0OgogIGVuYWJsZWQ6IHRydWUKa3ViZUFwaVNlcnZlcjoKICBlbmFibGVkOiB0cnVlCmt1YmVDb250cm9sbGVyTWFuYWdlcjoKICBlbmFibGVkOiB0cnVlCmt1YmVTY2hlZHVsZXI6CiAgZW5hYmxlZDogdHJ1ZQpjb3JlRG5zOgogIGVuYWJsZWQ6IHRydWUKa3ViZVByb3h5OgogIGVuYWJsZWQ6IHRydWUKcmJhYzoKICBjcmVhdGU6IHRydWUKICBwc3BFbmFibGVkOiB0cnVl",
"target_platform": {
"target_platform_id": "{VIB_ENV_TARGET_PLATFORM}",
"size": {
@@ -37,6 +37,28 @@
"endpoint": "lb-kube-prometheus-prometheus-http",
"app_protocol": "HTTP"
}
},
{
"action_id": "cypress",
"params": {
"resources": {
"path": "/.vib/kube-prometheus/cypress"
},
"endpoint": "lb-kube-prometheus-prometheus-http",
"app_protocol": "HTTP"
}
},
{
"action_id": "goss",
"params": {
"resources": {
"path": "/.vib/kube-prometheus/goss"
},
"remote": {
"workload": "deploy-kube-prometheus-operator"
},
"vars_file": "vars.yaml"
}
}
]
}