dartboard/k6/generic/generic_utils.js

123 lines
3.1 KiB
JavaScript

import {check, sleep} from 'k6';
import http from 'k6/http';
// Create Config Maps
// Required params: baseurl, coookies, data, cluster, namespace, iter
export function createConfigMaps(baseUrl, cookies, data, clusterId, namespace, iter) {
const name = `test-config-map-${iter}`
const url = clusterId === "local"?
`${baseUrl}/v1/configmaps` :
`${baseUrl}/k8s/clusters/${clusterId}/v1/configmaps`
const res = http.post(`${url}`,
JSON.stringify({
"metadata": {
"name": name,
"namespace": namespace
},
"data": {"data": data}
}),
{ cookies: cookies }
)
sleep(0.1)
if (res.status != 201) {
console.log(res)
}
check(res, {
'/v1/configmaps returns status 201': (r) => r.status === 201,
})
}
// Create Secrets
// Required params: baseurl, coookies, data, cluster, namespace, iter
export function createSecrets(baseUrl, cookies, data, clusterId, namespace, iter) {
const name = `test-secrets-${iter}`
const url = clusterId === "local"?
`${baseUrl}/v1/secrets` :
`${baseUrl}/k8s/clusters/${clusterId}/v1/secrets`
const res = http.post(`${url}`,
JSON.stringify({
"metadata": {
"name": name,
"namespace": namespace
},
"data": {"data": data},
"type": "opaque"
}),
{ cookies: cookies }
)
sleep(0.1)
if (res.status != 201) {
console.log(res)
}
check(res, {
'/v1/secrets returns status 201': (r) => r.status === 201,
})
}
// Create Deployments
// Required params: baseurl, coookies, cluster, namespace, iter
export function createDeployments(baseUrl, cookies, clusterId, namespace, iter) {
const name = `test-deployment-${iter}`
const url = clusterId === "local"?
`${baseUrl}/v1/apps.deployments` :
`${baseUrl}/k8s/clusters/${clusterId}/v1/apps.deployments`
const res = http.post(`${url}`,
JSON.stringify({
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"name": name,
"namespace": namespace
},
"spec": {
"selector": {
"matchLabels": {
"app": name
}
},
"template": {
"metadata": {
"labels": {
"app": name
}
},
"spec": {
"containers": [
{
"command": ["sleep", "3600"],
"image": "busybox:latest",
"name": name
}
],
"securityContext": {
"runAsUser": 2000,
"runAsGroup": 3000
}
}
}
}
}),
{ cookies: cookies }
)
sleep(0.1)
if (res.status != 201) {
console.log(res)
}
check(res, {
'/v1/apps.deployments returns status 201': (r) => r.status === 201,
})
}