From d8434208ee52e37e7fa9c60f7737691c68663b2e Mon Sep 17 00:00:00 2001 From: Andrew Azores Date: Fri, 27 Oct 2023 14:27:23 -0400 Subject: [PATCH 1/4] chore(smoketest): clean up scripts for relative paths, shellcheck hints --- smoketest/k8s/{generate.sh => generate.bash} | 12 ++++++++---- smoketest/k8s/smoketest.sh | 11 ++++++++--- 2 files changed, 16 insertions(+), 7 deletions(-) rename smoketest/k8s/{generate.sh => generate.bash} (53%) mode change 100644 => 100755 diff --git a/smoketest/k8s/generate.sh b/smoketest/k8s/generate.bash old mode 100644 new mode 100755 similarity index 53% rename from smoketest/k8s/generate.sh rename to smoketest/k8s/generate.bash index 92f0fb76f..23a31fe4c --- a/smoketest/k8s/generate.sh +++ b/smoketest/k8s/generate.bash @@ -1,10 +1,14 @@ -cat > db-configmap.yaml <<< "apiVersion: v1 +#!/usr/bin/env bash + +DIR="$(dirname "$(readlink -f "$0")")" + +cat > "${DIR}/db-configmap.yaml" <<< "apiVersion: v1 kind: ConfigMap metadata: name: pgadmin-config data: servers.json: | - $(cat ./../compose/servers.json | yq)" + $(yq < "${DIR}/../compose/servers.json")" -yq -i '.spec.template.spec.volumes += {"name": "serverjson", "configMap": {"name": "pgadmin-config", "items": [{"key": "servers.json", "path": "servers.json"}]}}' ./db-viewer-deployment.yaml -yq -i '.spec.template.spec.containers[0].volumeMounts += {"mountPath": "/pgadmin4/servers.json", "name": "serverjson", "subPath": "servers.json"}' ./db-viewer-deployment.yaml \ No newline at end of file +yq -i '.spec.template.spec.volumes += {"name": "serverjson", "configMap": {"name": "pgadmin-config", "items": [{"key": "servers.json", "path": "servers.json"}]}}' "${DIR}/db-viewer-deployment.yaml" +yq -i '.spec.template.spec.containers[0].volumeMounts += {"mountPath": "/pgadmin4/servers.json", "name": "serverjson", "subPath": "servers.json"}' "${DIR}/db-viewer-deployment.yaml" diff --git a/smoketest/k8s/smoketest.sh b/smoketest/k8s/smoketest.sh index 8e052f31a..56ae2b8ad 100755 --- a/smoketest/k8s/smoketest.sh +++ b/smoketest/k8s/smoketest.sh @@ -24,9 +24,14 @@ while [ "$#" -ne 0 ]; do cleanKind ;; generate) - sh "./../../db/build.sh" - kompose convert -o "./" -f "./../compose/db_k8s.yml" -f "./../compose/s3-minio.yml" -f "./../compose/cryostat_k8s.yml" -f "./../compose/sample-apps.yml" --build local - sh generate.sh + sh "${DIR}/../../db/build.sh" + kompose convert -o "${DIR}" \ + -f "${DIR}/../compose/db_k8s.yml" \ + -f "${DIR}/../compose/s3-minio.yml" \ + -f "${DIR}/../compose/cryostat_k8s.yml" \ + -f "${DIR}/../compose/sample-apps.yml" \ + --build local + bash "${DIR}/generate.bash" ;; apply) kubectl apply -f "./*.yaml" From cf20101586b8f12d9bee38e734291d5d31394c10 Mon Sep 17 00:00:00 2001 From: Andrew Azores Date: Fri, 27 Oct 2023 14:31:55 -0400 Subject: [PATCH 2/4] regenerate again --- smoketest/k8s/cryostat-deployment.yaml | 4 ---- smoketest/k8s/cryostat-ingress.yaml | 2 -- smoketest/k8s/cryostat-service.yaml | 2 -- smoketest/k8s/db-deployment.yaml | 6 ------ smoketest/k8s/db-service.yaml | 3 --- smoketest/k8s/db-viewer-deployment.yaml | 4 ---- smoketest/k8s/db-viewer-ingress.yaml | 2 -- smoketest/k8s/db-viewer-service.yaml | 2 -- smoketest/k8s/quarkus-test-agent-deployment.yaml | 6 ------ smoketest/k8s/quarkus-test-agent-service.yaml | 3 --- smoketest/k8s/s3-deployment.yaml | 4 ---- smoketest/k8s/s3-ingress.yaml | 2 -- smoketest/k8s/s3-service.yaml | 2 -- smoketest/k8s/sample-app-deployment.yaml | 4 ---- smoketest/k8s/sample-app-service.yaml | 2 -- smoketest/k8s/smoketest.sh | 4 +++- 16 files changed, 3 insertions(+), 49 deletions(-) diff --git a/smoketest/k8s/cryostat-deployment.yaml b/smoketest/k8s/cryostat-deployment.yaml index 381dc46d4..45bad93f1 100644 --- a/smoketest/k8s/cryostat-deployment.yaml +++ b/smoketest/k8s/cryostat-deployment.yaml @@ -6,9 +6,7 @@ metadata: io.cryostat.jmxHost: localhost io.cryostat.jmxPort: "0" io.cryostat.jmxUrl: service:jmx:rmi:///jndi/rmi://localhost:0/jmxrmi - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local kompose.service.expose: cryostat3 - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.service: cryostat @@ -27,9 +25,7 @@ spec: io.cryostat.jmxHost: localhost io.cryostat.jmxPort: "0" io.cryostat.jmxUrl: service:jmx:rmi:///jndi/rmi://localhost:0/jmxrmi - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local kompose.service.expose: cryostat3 - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.network/compose-default: "true" diff --git a/smoketest/k8s/cryostat-ingress.yaml b/smoketest/k8s/cryostat-ingress.yaml index 59b661c52..38104f835 100644 --- a/smoketest/k8s/cryostat-ingress.yaml +++ b/smoketest/k8s/cryostat-ingress.yaml @@ -6,9 +6,7 @@ metadata: io.cryostat.jmxHost: localhost io.cryostat.jmxPort: "0" io.cryostat.jmxUrl: service:jmx:rmi:///jndi/rmi://localhost:0/jmxrmi - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local kompose.service.expose: cryostat3 - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.service: cryostat diff --git a/smoketest/k8s/cryostat-service.yaml b/smoketest/k8s/cryostat-service.yaml index a2c60d958..bb7c3d2df 100644 --- a/smoketest/k8s/cryostat-service.yaml +++ b/smoketest/k8s/cryostat-service.yaml @@ -6,9 +6,7 @@ metadata: io.cryostat.jmxHost: localhost io.cryostat.jmxPort: "0" io.cryostat.jmxUrl: service:jmx:rmi:///jndi/rmi://localhost:0/jmxrmi - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local kompose.service.expose: cryostat3 - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.service: cryostat diff --git a/smoketest/k8s/db-deployment.yaml b/smoketest/k8s/db-deployment.yaml index 16791677a..fbdced1bc 100644 --- a/smoketest/k8s/db-deployment.yaml +++ b/smoketest/k8s/db-deployment.yaml @@ -1,9 +1,6 @@ apiVersion: apps/v1 kind: Deployment metadata: - annotations: - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.service: db @@ -18,9 +15,6 @@ spec: type: Recreate template: metadata: - annotations: - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.network/compose-default: "true" diff --git a/smoketest/k8s/db-service.yaml b/smoketest/k8s/db-service.yaml index a28e6637c..43f49d892 100644 --- a/smoketest/k8s/db-service.yaml +++ b/smoketest/k8s/db-service.yaml @@ -1,9 +1,6 @@ apiVersion: v1 kind: Service metadata: - annotations: - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.service: db diff --git a/smoketest/k8s/db-viewer-deployment.yaml b/smoketest/k8s/db-viewer-deployment.yaml index 07a81dd61..2c35dcbda 100644 --- a/smoketest/k8s/db-viewer-deployment.yaml +++ b/smoketest/k8s/db-viewer-deployment.yaml @@ -2,9 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local kompose.service.expose: pgadmin - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.service: db-viewer @@ -20,9 +18,7 @@ spec: template: metadata: annotations: - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local kompose.service.expose: pgadmin - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.network/compose-default: "true" diff --git a/smoketest/k8s/db-viewer-ingress.yaml b/smoketest/k8s/db-viewer-ingress.yaml index 0c908990f..eecacffc4 100644 --- a/smoketest/k8s/db-viewer-ingress.yaml +++ b/smoketest/k8s/db-viewer-ingress.yaml @@ -2,9 +2,7 @@ apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local kompose.service.expose: pgadmin - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.service: db-viewer diff --git a/smoketest/k8s/db-viewer-service.yaml b/smoketest/k8s/db-viewer-service.yaml index 9ae84dc20..4ea3da961 100644 --- a/smoketest/k8s/db-viewer-service.yaml +++ b/smoketest/k8s/db-viewer-service.yaml @@ -2,9 +2,7 @@ apiVersion: v1 kind: Service metadata: annotations: - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local kompose.service.expose: pgadmin - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.service: db-viewer diff --git a/smoketest/k8s/quarkus-test-agent-deployment.yaml b/smoketest/k8s/quarkus-test-agent-deployment.yaml index 8ba09c589..4f6daca45 100644 --- a/smoketest/k8s/quarkus-test-agent-deployment.yaml +++ b/smoketest/k8s/quarkus-test-agent-deployment.yaml @@ -1,9 +1,6 @@ apiVersion: apps/v1 kind: Deployment metadata: - annotations: - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.service: quarkus-test-agent @@ -17,9 +14,6 @@ spec: strategy: {} template: metadata: - annotations: - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.network/compose-default: "true" diff --git a/smoketest/k8s/quarkus-test-agent-service.yaml b/smoketest/k8s/quarkus-test-agent-service.yaml index 116e37a72..051c16298 100644 --- a/smoketest/k8s/quarkus-test-agent-service.yaml +++ b/smoketest/k8s/quarkus-test-agent-service.yaml @@ -1,9 +1,6 @@ apiVersion: v1 kind: Service metadata: - annotations: - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.service: quarkus-test-agent diff --git a/smoketest/k8s/s3-deployment.yaml b/smoketest/k8s/s3-deployment.yaml index 18baf2657..17d74e8c5 100644 --- a/smoketest/k8s/s3-deployment.yaml +++ b/smoketest/k8s/s3-deployment.yaml @@ -2,9 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local kompose.service.expose: minio - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.service: s3 @@ -20,9 +18,7 @@ spec: template: metadata: annotations: - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local kompose.service.expose: minio - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.network/compose-default: "true" diff --git a/smoketest/k8s/s3-ingress.yaml b/smoketest/k8s/s3-ingress.yaml index 4f55193cd..c2958931f 100644 --- a/smoketest/k8s/s3-ingress.yaml +++ b/smoketest/k8s/s3-ingress.yaml @@ -2,9 +2,7 @@ apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local kompose.service.expose: minio - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.service: s3 diff --git a/smoketest/k8s/s3-service.yaml b/smoketest/k8s/s3-service.yaml index f8e00d606..aa9a2ff03 100644 --- a/smoketest/k8s/s3-service.yaml +++ b/smoketest/k8s/s3-service.yaml @@ -2,9 +2,7 @@ apiVersion: v1 kind: Service metadata: annotations: - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local kompose.service.expose: minio - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.service: s3 diff --git a/smoketest/k8s/sample-app-deployment.yaml b/smoketest/k8s/sample-app-deployment.yaml index 8c12a83c3..bddac5667 100644 --- a/smoketest/k8s/sample-app-deployment.yaml +++ b/smoketest/k8s/sample-app-deployment.yaml @@ -5,8 +5,6 @@ metadata: io.cryostat.discovery: "true" io.cryostat.jmxHost: sample-app io.cryostat.jmxPort: "9093" - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.service: sample-app @@ -24,8 +22,6 @@ spec: io.cryostat.discovery: "true" io.cryostat.jmxHost: sample-app io.cryostat.jmxPort: "9093" - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.network/compose-default: "true" diff --git a/smoketest/k8s/sample-app-service.yaml b/smoketest/k8s/sample-app-service.yaml index 9fb4c14bc..ed342d863 100644 --- a/smoketest/k8s/sample-app-service.yaml +++ b/smoketest/k8s/sample-app-service.yaml @@ -5,8 +5,6 @@ metadata: io.cryostat.discovery: "true" io.cryostat.jmxHost: sample-app io.cryostat.jmxPort: "9093" - kompose.cmd: kompose convert -o ./ -f ./../compose/db_k8s.yml -f ./../compose/s3-minio.yml -f ./../compose/cryostat_k8s.yml -f ./../compose/sample-apps.yml --build local - kompose.version: 1.30.0 (9d8dcb518) creationTimestamp: null labels: io.kompose.service: sample-app diff --git a/smoketest/k8s/smoketest.sh b/smoketest/k8s/smoketest.sh index 56ae2b8ad..aa89e50c0 100755 --- a/smoketest/k8s/smoketest.sh +++ b/smoketest/k8s/smoketest.sh @@ -25,7 +25,9 @@ while [ "$#" -ne 0 ]; do ;; generate) sh "${DIR}/../../db/build.sh" - kompose convert -o "${DIR}" \ + kompose convert \ + --with-kompose-annotation=false \ + -o "${DIR}" \ -f "${DIR}/../compose/db_k8s.yml" \ -f "${DIR}/../compose/s3-minio.yml" \ -f "${DIR}/../compose/cryostat_k8s.yml" \ From acd993d92a93764d01ce27a6946328f5ffbfd634 Mon Sep 17 00:00:00 2001 From: Andrew Azores Date: Tue, 31 Oct 2023 11:48:02 -0400 Subject: [PATCH 3/4] set/rename scripts to use bash, minor fixups --- .../localstack/{buckets.sh => buckets.bash} | 2 +- smoketest/compose/s3-localstack.yml | 2 +- .../{smoketest_pod.sh => smoketest_pod.bash} | 17 ++++++++--------- smoketest/k8s/{smoketest.sh => smoketest.bash} | 2 +- 4 files changed, 11 insertions(+), 12 deletions(-) rename smoketest/compose/localstack/{buckets.sh => buckets.bash} (66%) rename smoketest/containers/{smoketest_pod.sh => smoketest_pod.bash} (81%) rename smoketest/k8s/{smoketest.sh => smoketest.bash} (99%) diff --git a/smoketest/compose/localstack/buckets.sh b/smoketest/compose/localstack/buckets.bash similarity index 66% rename from smoketest/compose/localstack/buckets.sh rename to smoketest/compose/localstack/buckets.bash index f83bb26e1..b96df002e 100755 --- a/smoketest/compose/localstack/buckets.sh +++ b/smoketest/compose/localstack/buckets.bash @@ -1,3 +1,3 @@ -#!/usr/bin/sh +#!/usr/bin/env bash awslocal s3 mb s3://archivedrecordings diff --git a/smoketest/compose/s3-localstack.yml b/smoketest/compose/s3-localstack.yml index 97e0affca..4969772b8 100644 --- a/smoketest/compose/s3-localstack.yml +++ b/smoketest/compose/s3-localstack.yml @@ -24,7 +24,7 @@ services: PORT_WEB_UI: 4577 volumes: - localstack_data:/etc/localstack/init/ready.d:z - # this buckets.sh hook script isn't working for some reason. In the meantime, after spinning up the localstack instance, do: + # this buckets.bash hook script isn't working for some reason. In the meantime, after spinning up the localstack instance, do: # $ podman exec -it cryostat3_s3_1 /bin/bash # $ awslocal s3 mb s3://archivedrecordings labels: diff --git a/smoketest/containers/smoketest_pod.sh b/smoketest/containers/smoketest_pod.bash similarity index 81% rename from smoketest/containers/smoketest_pod.sh rename to smoketest/containers/smoketest_pod.bash index 04178a655..eea4fcdaf 100755 --- a/smoketest/containers/smoketest_pod.sh +++ b/smoketest/containers/smoketest_pod.bash @@ -1,8 +1,10 @@ -#!/bin/sh +#!/usr/bin/env bash set -x set -e +HOSTSFILE="${HOSTSFILE:-~/.hosts}" + cleanup() { podman-compose --in-pod=1 \ -f ./smoketest/compose/db.yml \ @@ -13,7 +15,7 @@ cleanup() { -f ./smoketest/compose/cryostat.yml \ down --volumes --remove-orphans # podman kill hoster || true - > ~/.hosts + truncate -s 0 "${HOSTSFILE}" } trap cleanup EXIT cleanup @@ -32,13 +34,10 @@ cleanup # dvdarias/docker-hoster setupUserHosts() { - > ~/.hosts - echo "localhost s3" >> ~/.hosts - echo "localhost db" >> ~/.hosts - echo "localhost db-viewer" >> ~/.hosts - echo "localhost cryostat" >> ~/.hosts - echo "localhost vertx-fib-demo-1" >> ~/.hosts - echo "localhost quarkus-test-agent" >> ~/.hosts + truncate -s 0 "${HOSTSFILE}" + for svc in s3 db db-viewer cryostat vertx-fib-demo-1 quarkus-test-agent; do + echo "localhost ${svc}" >> "${HOSTSFILE}" + done } setupUserHosts diff --git a/smoketest/k8s/smoketest.sh b/smoketest/k8s/smoketest.bash similarity index 99% rename from smoketest/k8s/smoketest.sh rename to smoketest/k8s/smoketest.bash index aa89e50c0..da42928e0 100755 --- a/smoketest/k8s/smoketest.sh +++ b/smoketest/k8s/smoketest.bash @@ -1,4 +1,4 @@ -#!/bin/sh +#!/usr/bin/env bash set -xe From c641ff38571203ab4e8521bdcf3122c3a2e85b58 Mon Sep 17 00:00:00 2001 From: Andrew Azores Date: Tue, 31 Oct 2023 14:18:08 -0400 Subject: [PATCH 4/4] update README --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 47011ab75..ab82d47ac 100644 --- a/README.md +++ b/README.md @@ -131,14 +131,14 @@ To run similar smoketest scenarios in a Kubernetes/OpenShift cluster, do: ```bash $ cd smoketest/k8s -$ sh smoketest.sh kind # This launches a kind k8s cluster, otherwise skip this if you have another cluster accessible via kubectl/oc. +$ bash smoketest.bash kind # This launches a kind k8s cluster, otherwise skip this if you have another cluster accessible via kubectl/oc. ``` -If you get an error during the 'ensuring node image' step while creating cluster "kind", manually pull the podman image by running the command `podman pull docker.io/kindest/node@IMAGE_DIGEST` where IMAGE_DIGEST is the sha256 of the image. Then rerun `sh smoketest.sh kind`. +If you get an error during the 'ensuring node image' step while creating cluster "kind", manually pull the podman image by running the command `podman pull docker.io/kindest/node@IMAGE_DIGEST` where IMAGE_DIGEST is the sha256 of the image. Then rerun `bash smoketest.bash kind`. Generate k8s yaml configurations and apply them to create k8s objects. You can optionally port-forward to the cluster's services to access the Cryostat application from `localhost`. ```bash -$ sh smoketest.sh generate apply -$ sh smoketest.sh forward # if you need to use port-forwarding to get access to the cluster's services +$ bash smoketest.bash generate apply +$ bash smoketest.bash forward # if you need to use port-forwarding to get access to the cluster's services ```