Verify Public Artifacts #23
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Verify Public Artifacts | |
on: | |
workflow_dispatch: | |
inputs: | |
deploy_with: | |
type: choice | |
description: 'Select the deployment method' | |
required: true | |
options: ['helm', 'olm'] | |
default: 'helm' | |
expected_operator_version: | |
description: 'The expected operator version to deploy (e.g. 1.5.0)' | |
required: true | |
expected_server_version: | |
description: 'The expected server version to deploy (e.g. 11.1.1-0)' | |
required: true | |
jobs: | |
verify-public-artifact: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: ./.github/actions/setup-go | |
- name: Download kind | |
run: | | |
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.14.0/kind-linux-amd64 | |
chmod +x ./kind | |
sudo mv ./kind /usr/local/bin | |
- name: Install kubectl | |
uses: ./.github/actions/setup-kubectl | |
- name: Create kind cluster | |
run: | | |
cat << EOF > kind.yaml | |
kind: Cluster | |
apiVersion: kind.x-k8s.io/v1alpha4 | |
nodes: | |
- role: control-plane | |
- role: worker | |
extraPortMappings: | |
- containerPort: 32001 | |
hostPort: 32001 | |
- role: worker | |
EOF | |
kind create cluster --config kind.yaml | |
- name: Deploy the verticadb operator with olm | |
if: github.event.inputs.deploy_with == 'olm' | |
run: | | |
curl -sL https://github.com/operator-framework/operator-lifecycle-manager/releases/download/v0.21.2/install.sh | bash -s v0.21.2 | |
kubectl create -f https://operatorhub.io/install/verticadb-operator.yaml | |
echo "Waiting for verticadb-operator CSV to be created..." | |
timeout 5m bash -c -- "while ! kubectl get csv -n my-verticadb-operator --selector operators.coreos.com/verticadb-operator.my-verticadb-operator="" | grep -cq Succeeded; do sleep 5; done" | |
echo "DONE!" | |
- name: Deploy the verticadb operator with helm | |
if: github.event.inputs.deploy_with == 'helm' | |
run: | | |
helm repo add vertica-charts https://vertica.github.io/charts | |
helm repo update vertica-charts | |
helm install vdb-op --wait --namespace my-verticadb-operator --create-namespace vertica-charts/verticadb-operator | |
- name: Install krew | |
run: | | |
make krew | |
echo "${KREW_ROOT:-$HOME/.krew}/bin" >> $GITHUB_PATH | |
- name: Deploy the minio operator | |
run: | | |
scripts/setup-minio.sh -o | |
- name: Install the minio Tenant | |
run: | | |
kubectl apply --namespace my-verticadb-operator -f config/samples/minio.yaml | |
kubectl wait --for=condition=Complete=True --namespace my-verticadb-operator job/create-s3-bucket --timeout=5m | |
- name: Create a VerticaDB CR | |
run: | | |
kubectl apply --namespace my-verticadb-operator -f config/samples/verticadb_sample.yaml | |
kubectl wait --for=condition=DBInitialized=True --namespace my-verticadb-operator vdb/verticadb-sample --timeout=10m | |
kubectl get pods --namespace my-verticadb-operator --selector app.kubernetes.io/instance=verticadb-sample | |
- name: Dump the vertica server version | |
run: | | |
kubectl exec -it --namespace my-verticadb-operator verticadb-sample-defaultsubcluster-0 -- vsql -c "select version();" | |
- name: Dump the labels/annotations of the vertica pods | |
run: | | |
kubectl get pods --namespace my-verticadb-operator --selector app.kubernetes.io/instance=verticadb-sample -o=jsonpath='{range .items[*]}{.metadata.name}{"\n"}{.metadata.labels}{"\n"}{.metadata.annotations}{"\n"}{"\n"}{end}' | |
- name: Verify the operator version | |
run: | | |
kubectl get pods --namespace my-verticadb-operator --selector app.kubernetes.io/version=${{ github.event.inputs.expected_operator_version }} | grep -cq 'verticadb-sample-defaultsubcluster' | |
- name: Verify the server version | |
run: | | |
kubectl exec -it --namespace my-verticadb-operator verticadb-sample-defaultsubcluster-0 -- vsql -c "select 1 where version() = 'Vertica Analytic Database v${{ github.event.inputs.expected_server_version }}';" | grep -cq '(1 row)' | |