Merge pull request #20 from kerberos-io/feature/replace-bitnami-legacy

This commit is contained in:
Cédric Verstraeten
2025-11-26 23:22:47 +01:00
committed by GitHub
7 changed files with 150 additions and 117 deletions

View File

@@ -1,6 +1,7 @@
name: Deploy on k3d name: Deploy on k3d
on: on:
workflow_dispatch: workflow_dispatch:
pull_request:
schedule: schedule:
- cron: "0 0 * * *" # This will run the workflow every day at midnight UTC - cron: "0 0 * * *" # This will run the workflow every day at midnight UTC
jobs: jobs:
@@ -28,23 +29,25 @@ jobs:
kubectl get no kubectl get no
kubectl get pods -A -o wide kubectl get pods -A -o wide
kubectl get sc kubectl get sc
- name: Checkout repository
uses: actions/checkout@v2
- name: Install OpenEBS - name: Install OpenEBS
run: | run: |
kubectl apply -f https://openebs.github.io/charts/openebs-operator.yaml kubectl apply -f https://openebs.github.io/charts/openebs-operator.yaml
echo "Sleeping for 60 seconds, give time for the operator to create the CRDs" && sleep 60 kubectl wait --for=condition=available deployment/openebs-localpv-provisioner -n openebs --timeout=300s
kubectl get sc kubectl get sc
kubectl get po -A -o wide kubectl get po -A -o wide
- name: Create storage class - name: Create storage class
id: create-storage-class id: create-storage-class
run: | run: |
kubectl apply -f ./base/ssd-hostpath-storageclass-openebs.yaml kubectl apply -f ./base/ssd-hostpath-storageclass-openebs.yaml
echo "Sleeping for 30 seconds, give time for the storage class to be created" && sleep 30 kubectl wait --for=jsonpath='{.metadata.name}'=ssd-hostpath storageclass/ssd-hostpath --timeout=60s
kubectl get sc kubectl get sc
- name: Install Prometheus operator - name: Install Prometheus operator
id: install-prometheus-operator id: install-prometheus-operator
run: | run: |
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.48.1/bundle.yaml kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.48.1/bundle.yaml
echo "Sleeping for 30 seconds, give time for the operator to create the CRDs" && sleep 30 kubectl wait --for=condition=available deployment/prometheus-operator -n default --timeout=300s
kubectl get crd kubectl get crd
kubectl get po -A -o wide kubectl get po -A -o wide
- name: Install Minio - name: Install Minio
@@ -52,7 +55,9 @@ jobs:
run: | run: |
git clone --depth 1 --branch v6.0.1 https://github.com/minio/operator.git && kubectl apply -k operator/ git clone --depth 1 --branch v6.0.1 https://github.com/minio/operator.git && kubectl apply -k operator/
kubectl apply -f ./base/minio/minio-tenant-base.yaml kubectl apply -f ./base/minio/minio-tenant-base.yaml
echo "Sleeping for 60 seconds, give time for the operator/tenant to create the CRDs" && sleep 60 echo "Waiting for resources to be created..."
sleep 10
kubectl wait --for=jsonpath='{.status.readyReplicas}'=1 statefulset/myminio-pool-0 -n minio-tenant --timeout=300s
kubectl get po -A -o wide kubectl get po -A -o wide
kubectl get po -A -o wide | grep myminio-pool-0-0 | awk '{print $3}' | grep -q '2/2' && echo "myminio-pool-0-0 pod is running with status 2/2" || (echo "myminio-pool-0-0 pod is not running with status 2/2" && exit 1) kubectl get po -A -o wide | grep myminio-pool-0-0 | awk '{print $3}' | grep -q '2/2' && echo "myminio-pool-0-0 pod is running with status 2/2" || (echo "myminio-pool-0-0 pod is not running with status 2/2" && exit 1)
- name: Install MongoDB - name: Install MongoDB
@@ -60,60 +65,66 @@ jobs:
run: | run: |
helm repo add bitnami https://charts.bitnami.com/bitnami helm repo add bitnami https://charts.bitnami.com/bitnami
kubectl create namespace mongodb kubectl create namespace mongodb
helm install mongodb -n mongodb bitnami/mongodb --values ./base/mongodb/mongodb-values.yaml helm install mongodb -n mongodb bitnami/mongodb --values ./base/mongodb/mongodb-values.yaml --wait --timeout=5m
echo "Sleeping for 500 seconds, give time for the helm chart to create the pods" && sleep 500
kubectl get pods -A -o wide kubectl get pods -A -o wide
kubectl get pods -A -o wide | grep mongodb | awk '{print $3}' | grep -q '1/1' && echo "mongodb pod is running with status 1/1" || (echo "mongodb pod is not running with status 1/1" && exit 1)
- name: Install RabbitMQ - name: Install RabbitMQ
id: install-rabbitmq id: install-rabbitmq
run: | run: |
helm repo add bitnami https://charts.bitnami.com/bitnami helm repo add bitnami https://charts.bitnami.com/bitnami
kubectl create namespace rabbitmq kubectl create namespace rabbitmq
helm install rabbitmq -n rabbitmq bitnami/rabbitmq --values ./base/rabbitmq/rabbitmq-values.yaml helm install rabbitmq -n rabbitmq bitnami/rabbitmq --values ./base/rabbitmq/rabbitmq-values.yaml --wait --timeout=5m
echo "Sleeping for 60 seconds, give time for the helm chart to create the pods" && sleep 60
kubectl get pods -A -o wide kubectl get pods -A -o wide
kubectl get pods -A -o wide | grep rabbitmq | awk '{print $3}' | grep -q '1/1' && echo "rabbitmq pod is running with status 1/1" || (echo "rabbitmq pod is not running with status 1/1" && exit 1) kubectl exec --namespace rabbitmq rabbitmq-0 -- rabbitmqctl status
- name: Install Vernemq (MQTT Broker) - name: Install Vernemq (MQTT Broker)
id: install-vernemq id: install-vernemq
run: | run: |
kubectl create namespace vernemq kubectl create namespace vernemq
helm repo add vernemq https://vernemq.github.io/docker-vernemq helm repo add vernemq https://vernemq.github.io/docker-vernemq
helm install vernemq vernemq/vernemq --values ./base/vernemq/vernemq-values.yaml -n vernemq --create-namespace helm install vernemq vernemq/vernemq --values ./base/vernemq/vernemq-values.yaml -n vernemq --create-namespace --wait --timeout=5m
echo "Sleeping for 120 seconds, give time for the helm chart to create the pods" && sleep 120
kubectl get pods -A -o wide kubectl get pods -A -o wide
kubectl get pods -A -o wide | grep vernemq-0 | awk '{print $3}' | grep -q '1/1' && echo "vernemq pod is running with status 1/1" || (echo "vernemq pod is not running with status 1/1" && exit 1)
kubectl exec --namespace vernemq vernemq-0 -- /vernemq/bin/vmq-admin cluster show kubectl exec --namespace vernemq vernemq-0 -- /vernemq/bin/vmq-admin cluster show
- name: Install Kerberos Vault - name: Install Vault
id: install-kerberos-vault id: install-vault
run: | run: |
kubectl create namespace kerberos-vault kubectl create namespace kerberos-vault
kubectl apply -f ./base/vault/mongodb-configmap.yaml -n kerberos-vault kubectl apply -f ./base/vault/mongodb-configmap.yaml -n kerberos-vault
kubectl apply -f ./base/vault/kerberos-vault-deployment.yaml -n kerberos-vault kubectl apply -f ./base/vault/kerberos-vault-deployment.yaml -n kerberos-vault
kubectl apply -f ./base/vault/kerberos-vault-service.yaml -n kerberos-vault kubectl apply -f ./base/vault/kerberos-vault-service.yaml -n kerberos-vault
echo "Sleeping for 30 seconds, give time for the helm chart to create the pods" && sleep 30 sleep 10
kubectl wait --for=condition=available deployment/vault -n kerberos-vault --timeout=300s
kubectl get pods -A -o wide kubectl get pods -A -o wide
kubectl get pods -A -o wide | grep kerberos-vault | awk '{print $3}' | grep -q '1/1' && echo "kerberos-vault pod is running with status 1/1" || (echo "kerberos-vault pod is not running with status 1/1" && exit 1) kubectl get pods -A -o wide | grep vault | awk '{print $3}' | grep -q '1/1' && echo "vault pod is running with status 1/1" || (echo "vault pod is not running with status 1/1" && exit 1)
- name: Install Kerberos Agent - name: Install Agent
id: install-kerberos-agent id: install-agent
run: | run: |
kubectl apply -f ./base/agent/kerberos-agent-deployment.yaml kubectl create namespace kerberos-agent
echo "Sleeping for 30 seconds, give time for the helm chart to create the pods" && sleep 30 kubectl apply -f ./base/agent/kerberos-agent-deployment.yaml -n kerberos-agent
kubectl wait --for=condition=available deployment/agent1 -n kerberos-agent --timeout=300s
kubectl get pods -A -o wide kubectl get pods -A -o wide
kubectl get pods -A -o wide | grep agent | awk '{print $3}' | grep -q '1/1' && echo "kerberos-agent pod is running with status 1/1" || (echo "kerberos-agent pod is not running with status 1/1" && exit 1) kubectl get pods -A -o wide | grep agent1 | awk '{print $3}' | grep -q '1/1' && echo "agent1 pod is running with status 1/1" || (echo "agent1 pod is not running with status 1/1" && exit 1)
- name: Install Data filtering - name: Install Hub Helm chart
id: install-data-filtering id: install-hub
run: |
sed -e '/nvidia/ s/^#*/#/' -i ./base/vault/data-filtering-deployment.yaml
kubectl apply -f ./base/vault/data-filtering-deployment.yaml
echo "Sleeping for 250 seconds, give time for the helm chart to create the pods" && sleep 250
kubectl get pods -A -o wide
kubectl get pods -A -o wide | grep data-filtering | awk '{print $3}' | grep -q '1/1' && echo "data-filtering pod is running with status 1/1" || (echo "data-filtering pod is not running with status 1/1" && exit 1)
- name: Install Kerberos Hub helm chart
id: install-kerberos-hub
run: | run: |
helm repo add kerberos https://charts.kerberos.io helm repo add kerberos https://charts.kerberos.io
kubectl create namespace kerberos-hub kubectl create namespace kerberos-hub
helm install hub kerberos/hub --values ./base/hub/kerberos-hub-values.yaml -n kerberos-hub --create-namespace helm install hub kerberos/hub --values ./base/hub/kerberos-hub-values.yaml -n kerberos-hub --create-namespace
echo "Sleeping for 300 seconds, give time for the helm chart to create the pods" && sleep 300 sleep 10
kubectl get pods -A -o wide kubectl wait --for=condition=available deployment/admin -n kerberos-hub --timeout=300s
kubectl get pods -A -o wide | grep hub-frontend- | awk '{print $3}' | grep -q '1/1' && echo "hub-frontend pod is running with status 1/1" || (echo "hub-frontend pod is not running with status 1/1" && exit 1) kubectl wait --for=condition=available deployment/hub-api -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/hub-cleanup -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/hub-frontend -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/hub-frontend-demo -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/hub-monitor-device -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/hub-reactivate-subscription -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-analysis -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-counting -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-dominantcolor -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-event -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-export -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-monitor -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-notify -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-notify-test -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-sequence -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-sprite -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-throttler -n kerberos-hub --timeout=300s
kubectl get pods -A -o wide

View File

@@ -1,6 +1,7 @@
name: Deploy on kind name: Deploy on kind
on: on:
workflow_dispatch: workflow_dispatch:
pull_request:
schedule: schedule:
- cron: "0 0 * * *" # This will run the workflow every day at midnight UTC - cron: "0 0 * * *" # This will run the workflow every day at midnight UTC
jobs: jobs:
@@ -29,20 +30,20 @@ jobs:
- name: Install OpenEBS - name: Install OpenEBS
run: | run: |
kubectl apply -f https://openebs.github.io/charts/openebs-operator.yaml kubectl apply -f https://openebs.github.io/charts/openebs-operator.yaml
echo "Sleeping for 60 seconds, give time for the operator to create the CRDs" && sleep 60 kubectl wait --for=condition=available deployment/openebs-localpv-provisioner -n openebs --timeout=300s
kubectl get sc kubectl get sc
kubectl get po -A -o wide kubectl get po -A -o wide
- name: Create storage class - name: Create storage class
id: create-storage-class id: create-storage-class
run: | run: |
kubectl apply -f ./base/ssd-hostpath-storageclass-openebs.yaml kubectl apply -f ./base/ssd-hostpath-storageclass-openebs.yaml
echo "Sleeping for 30 seconds, give time for the storage class to be created" && sleep 30 kubectl wait --for=jsonpath='{.metadata.name}'=ssd-hostpath storageclass/ssd-hostpath --timeout=60s
kubectl get sc kubectl get sc
- name: Install Prometheus operator - name: Install Prometheus operator
id: install-prometheus-operator id: install-prometheus-operator
run: | run: |
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.48.1/bundle.yaml kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.48.1/bundle.yaml
echo "Sleeping for 30 seconds, give time for the operator to create the CRDs" && sleep 30 kubectl wait --for=condition=available deployment/prometheus-operator -n default --timeout=300s
kubectl get crd kubectl get crd
kubectl get po -A -o wide kubectl get po -A -o wide
- name: Install Minio - name: Install Minio
@@ -50,7 +51,9 @@ jobs:
run: | run: |
git clone --depth 1 --branch v6.0.1 https://github.com/minio/operator.git && kubectl apply -k operator/ git clone --depth 1 --branch v6.0.1 https://github.com/minio/operator.git && kubectl apply -k operator/
kubectl apply -f ./base/minio/minio-tenant-base.yaml kubectl apply -f ./base/minio/minio-tenant-base.yaml
echo "Sleeping for 60 seconds, give time for the operator/tenant to create the CRDs" && sleep 60 echo "Waiting for resources to be created..."
sleep 10
kubectl wait --for=jsonpath='{.status.readyReplicas}'=1 statefulset/myminio-pool-0 -n minio-tenant --timeout=300s
kubectl get po -A -o wide kubectl get po -A -o wide
kubectl get po -A -o wide | grep myminio-pool-0-0 | awk '{print $3}' | grep -q '2/2' && echo "myminio-pool-0-0 pod is running with status 2/2" || (echo "myminio-pool-0-0 pod is not running with status 2/2" && exit 1) kubectl get po -A -o wide | grep myminio-pool-0-0 | awk '{print $3}' | grep -q '2/2' && echo "myminio-pool-0-0 pod is running with status 2/2" || (echo "myminio-pool-0-0 pod is not running with status 2/2" && exit 1)
- name: Install MongoDB - name: Install MongoDB
@@ -58,60 +61,66 @@ jobs:
run: | run: |
helm repo add bitnami https://charts.bitnami.com/bitnami helm repo add bitnami https://charts.bitnami.com/bitnami
kubectl create namespace mongodb kubectl create namespace mongodb
helm install mongodb -n mongodb bitnami/mongodb --values ./base/mongodb/mongodb-values.yaml helm install mongodb -n mongodb bitnami/mongodb --values ./base/mongodb/mongodb-values.yaml --wait --timeout=5m
echo "Sleeping for 500 seconds, give time for the helm chart to create the pods" && sleep 500
kubectl get pods -A -o wide kubectl get pods -A -o wide
kubectl get pods -A -o wide | grep mongodb | awk '{print $3}' | grep -q '1/1' && echo "mongodb pod is running with status 1/1" || (echo "mongodb pod is not running with status 1/1" && exit 1)
- name: Install RabbitMQ - name: Install RabbitMQ
id: install-rabbitmq id: install-rabbitmq
run: | run: |
helm repo add bitnami https://charts.bitnami.com/bitnami helm repo add bitnami https://charts.bitnami.com/bitnami
kubectl create namespace rabbitmq kubectl create namespace rabbitmq
helm install rabbitmq -n rabbitmq bitnami/rabbitmq --values ./base/rabbitmq/rabbitmq-values.yaml helm install rabbitmq -n rabbitmq bitnami/rabbitmq --values ./base/rabbitmq/rabbitmq-values.yaml --wait --timeout=5m
echo "Sleeping for 60 seconds, give time for the helm chart to create the pods" && sleep 60
kubectl get pods -A -o wide kubectl get pods -A -o wide
kubectl get pods -A -o wide | grep rabbitmq | awk '{print $3}' | grep -q '1/1' && echo "rabbitmq pod is running with status 1/1" || (echo "rabbitmq pod is not running with status 1/1" && exit 1) kubectl exec --namespace rabbitmq rabbitmq-0 -- rabbitmqctl status
- name: Install Vernemq (MQTT Broker) - name: Install Vernemq (MQTT Broker)
id: install-vernemq id: install-vernemq
run: | run: |
kubectl create namespace vernemq kubectl create namespace vernemq
helm repo add vernemq https://vernemq.github.io/docker-vernemq helm repo add vernemq https://vernemq.github.io/docker-vernemq
helm install vernemq vernemq/vernemq --values ./base/vernemq/vernemq-values.yaml -n vernemq --create-namespace helm install vernemq vernemq/vernemq --values ./base/vernemq/vernemq-values.yaml -n vernemq --create-namespace --wait --timeout=5m
echo "Sleeping for 120 seconds, give time for the helm chart to create the pods" && sleep 120
kubectl get pods -A -o wide kubectl get pods -A -o wide
kubectl get pods -A -o wide | grep vernemq-0 | awk '{print $3}' | grep -q '1/1' && echo "vernemq pod is running with status 1/1" || (echo "vernemq pod is not running with status 1/1" && exit 1)
kubectl exec --namespace vernemq vernemq-0 -- /vernemq/bin/vmq-admin cluster show kubectl exec --namespace vernemq vernemq-0 -- /vernemq/bin/vmq-admin cluster show
- name: Install Kerberos Vault - name: Install Vault
id: install-kerberos-vault id: install-vault
run: | run: |
kubectl create namespace kerberos-vault kubectl create namespace kerberos-vault
kubectl apply -f ./base/vault/mongodb-configmap.yaml -n kerberos-vault kubectl apply -f ./base/vault/mongodb-configmap.yaml -n kerberos-vault
kubectl apply -f ./base/vault/kerberos-vault-deployment.yaml -n kerberos-vault kubectl apply -f ./base/vault/kerberos-vault-deployment.yaml -n kerberos-vault
kubectl apply -f ./base/vault/kerberos-vault-service.yaml -n kerberos-vault kubectl apply -f ./base/vault/kerberos-vault-service.yaml -n kerberos-vault
echo "Sleeping for 30 seconds, give time for the helm chart to create the pods" && sleep 30 sleep 10
kubectl wait --for=condition=available deployment/vault -n kerberos-vault --timeout=300s
kubectl get pods -A -o wide kubectl get pods -A -o wide
kubectl get pods -A -o wide | grep kerberos-vault | awk '{print $3}' | grep -q '1/1' && echo "kerberos-vault pod is running with status 1/1" || (echo "kerberos-vault pod is not running with status 1/1" && exit 1) kubectl get pods -A -o wide | grep vault | awk '{print $3}' | grep -q '1/1' && echo "vault pod is running with status 1/1" || (echo "vault pod is not running with status 1/1" && exit 1)
- name: Install Kerberos Agent - name: Install Agent
id: install-kerberos-agent id: install-agent
run: | run: |
kubectl apply -f ./base/agent/kerberos-agent-deployment.yaml kubectl create namespace kerberos-agent
echo "Sleeping for 30 seconds, give time for the helm chart to create the pods" && sleep 30 kubectl apply -f ./base/agent/kerberos-agent-deployment.yaml -n kerberos-agent
kubectl wait --for=condition=available deployment/agent1 -n kerberos-agent --timeout=300s
kubectl get pods -A -o wide kubectl get pods -A -o wide
kubectl get pods -A -o wide | grep agent | awk '{print $3}' | grep -q '1/1' && echo "kerberos-agent pod is running with status 1/1" || (echo "kerberos-agent pod is not running with status 1/1" && exit 1) kubectl get pods -A -o wide | grep agent1 | awk '{print $3}' | grep -q '1/1' && echo "agent1 pod is running with status 1/1" || (echo "agent1 pod is not running with status 1/1" && exit 1)
- name: Install Data filtering - name: Install Hub Helm chart
id: install-data-filtering id: install-hub
run: |
sed -e '/nvidia/ s/^#*/#/' -i ./base/vault/data-filtering-deployment.yaml
kubectl apply -f ./base/vault/data-filtering-deployment.yaml
echo "Sleeping for 250 seconds, give time for the helm chart to create the pods" && sleep 250
kubectl get pods -A -o wide
kubectl get pods -A -o wide | grep data-filtering | awk '{print $3}' | grep -q '1/1' && echo "data-filtering pod is running with status 1/1" || (echo "data-filtering pod is not running with status 1/1" && exit 1)
- name: Install Kerberos Hub helm chart
id: install-kerberos-hub
run: | run: |
helm repo add kerberos https://charts.kerberos.io helm repo add kerberos https://charts.kerberos.io
kubectl create namespace kerberos-hub kubectl create namespace kerberos-hub
helm install hub kerberos/hub --values ./base/hub/kerberos-hub-values.yaml -n kerberos-hub --create-namespace helm install hub kerberos/hub --values ./base/hub/kerberos-hub-values.yaml -n kerberos-hub --create-namespace
echo "Sleeping for 300 seconds, give time for the helm chart to create the pods" && sleep 300 sleep 10
kubectl get pods -A -o wide kubectl wait --for=condition=available deployment/admin -n kerberos-hub --timeout=300s
kubectl get pods -A -o wide | grep hub-frontend- | awk '{print $3}' | grep -q '1/1' && echo "hub-frontend pod is running with status 1/1" || (echo "hub-frontend pod is not running with status 1/1" && exit 1) kubectl wait --for=condition=available deployment/hub-api -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/hub-cleanup -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/hub-frontend -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/hub-frontend-demo -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/hub-monitor-device -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/hub-reactivate-subscription -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-analysis -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-counting -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-dominantcolor -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-event -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-export -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-monitor -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-notify -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-notify-test -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-sequence -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-sprite -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-throttler -n kerberos-hub --timeout=300s
kubectl get pods -A -o wide

View File

@@ -2,6 +2,7 @@ name: Deploy on kind using Kustmize
on: on:
workflow_dispatch: workflow_dispatch:
pull_request:
schedule: schedule:
- cron: "0 0 * * *" # This will run the workflow every day at midnight UTC - cron: "0 0 * * *" # This will run the workflow every day at midnight UTC
@@ -10,7 +11,7 @@ jobs:
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
strategy: strategy:
matrix: matrix:
os: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04] os: [ubuntu-22.04, ubuntu-24.04]
#kind: [v0.21.0, v0.22.0, v0.23.0, v0.24.0, v0.25.0] #kind: [v0.21.0, v0.22.0, v0.23.0, v0.24.0, v0.25.0]
kind: [v0.25.0] kind: [v0.25.0]
steps: steps:

View File

@@ -1,6 +1,7 @@
name: Deploy on microk8s name: Deploy on microk8s
on: on:
workflow_dispatch: workflow_dispatch:
pull_request:
schedule: schedule:
- cron: "0 0 * * *" # This will run the workflow every day at midnight UTC - cron: "0 0 * * *" # This will run the workflow every day at midnight UTC
jobs: jobs:
@@ -36,7 +37,7 @@ jobs:
id: install-prometheus-operator id: install-prometheus-operator
run: | run: |
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.48.1/bundle.yaml kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.48.1/bundle.yaml
echo "Sleeping for 30 seconds, give time for the operator to create the CRDs" && sleep 30 kubectl wait --for=condition=available deployment/prometheus-operator -n default --timeout=300s
kubectl get crd kubectl get crd
kubectl get po -A -o wide kubectl get po -A -o wide
- name: Install Minio - name: Install Minio
@@ -44,7 +45,9 @@ jobs:
run: | run: |
git clone --depth 1 --branch v6.0.1 https://github.com/minio/operator.git && kubectl apply -k operator/ git clone --depth 1 --branch v6.0.1 https://github.com/minio/operator.git && kubectl apply -k operator/
kubectl apply -f ./base/minio/minio-tenant-base.yaml kubectl apply -f ./base/minio/minio-tenant-base.yaml
echo "Sleeping for 60 seconds, give time for the operator/tenant to create the CRDs" && sleep 60 echo "Waiting for resources to be created..."
sleep 10
kubectl wait --for=jsonpath='{.status.readyReplicas}'=1 statefulset/myminio-pool-0 -n minio-tenant --timeout=300s
kubectl get po -A -o wide kubectl get po -A -o wide
kubectl get po -A -o wide | grep myminio-pool-0-0 | awk '{print $3}' | grep -q '2/2' && echo "myminio-pool-0-0 pod is running with status 2/2" || (echo "myminio-pool-0-0 pod is not running with status 2/2" && exit 1) kubectl get po -A -o wide | grep myminio-pool-0-0 | awk '{print $3}' | grep -q '2/2' && echo "myminio-pool-0-0 pod is running with status 2/2" || (echo "myminio-pool-0-0 pod is not running with status 2/2" && exit 1)
- name: Install MongoDB - name: Install MongoDB
@@ -52,60 +55,66 @@ jobs:
run: | run: |
helm repo add bitnami https://charts.bitnami.com/bitnami helm repo add bitnami https://charts.bitnami.com/bitnami
kubectl create namespace mongodb kubectl create namespace mongodb
helm install mongodb -n mongodb bitnami/mongodb --values ./base/mongodb/mongodb-values.yaml helm install mongodb -n mongodb bitnami/mongodb --values ./base/mongodb/mongodb-values.yaml --wait --timeout=10m
echo "Sleeping for 500 seconds, give time for the helm chart to create the pods" && sleep 500
kubectl get pods -A -o wide kubectl get pods -A -o wide
kubectl get pods -A -o wide | grep mongodb | awk '{print $3}' | grep -q '1/1' && echo "mongodb pod is running with status 1/1" || (echo "mongodb pod is not running with status 1/1" && exit 1)
- name: Install RabbitMQ - name: Install RabbitMQ
id: install-rabbitmq id: install-rabbitmq
run: | run: |
helm repo add bitnami https://charts.bitnami.com/bitnami helm repo add bitnami https://charts.bitnami.com/bitnami
kubectl create namespace rabbitmq kubectl create namespace rabbitmq
helm install rabbitmq -n rabbitmq bitnami/rabbitmq --values ./base/rabbitmq/rabbitmq-values.yaml helm install rabbitmq -n rabbitmq bitnami/rabbitmq --values ./base/rabbitmq/rabbitmq-values.yaml --wait --timeout=10m
echo "Sleeping for 60 seconds, give time for the helm chart to create the pods" && sleep 60
kubectl get pods -A -o wide kubectl get pods -A -o wide
kubectl get pods -A -o wide | grep rabbitmq | awk '{print $3}' | grep -q '1/1' && echo "rabbitmq pod is running with status 1/1" || (echo "rabbitmq pod is not running with status 1/1" && exit 1) kubectl exec --namespace rabbitmq rabbitmq-0 -- rabbitmqctl status
- name: Install Vernemq (MQTT Broker) - name: Install Vernemq (MQTT Broker)
id: install-vernemq id: install-vernemq
run: | run: |
kubectl create namespace vernemq kubectl create namespace vernemq
helm repo add vernemq https://vernemq.github.io/docker-vernemq helm repo add vernemq https://vernemq.github.io/docker-vernemq
helm install vernemq vernemq/vernemq --values ./base/vernemq/vernemq-values.yaml -n vernemq --create-namespace helm install vernemq vernemq/vernemq --values ./base/vernemq/vernemq-values.yaml -n vernemq --create-namespace --wait --timeout=10m
echo "Sleeping for 120 seconds, give time for the helm chart to create the pods" && sleep 120
kubectl get pods -A -o wide kubectl get pods -A -o wide
kubectl get pods -A -o wide | grep vernemq-0 | awk '{print $3}' | grep -q '1/1' && echo "vernemq pod is running with status 1/1" || (echo "vernemq pod is not running with status 1/1" && exit 1)
kubectl exec --namespace vernemq vernemq-0 -- /vernemq/bin/vmq-admin cluster show kubectl exec --namespace vernemq vernemq-0 -- /vernemq/bin/vmq-admin cluster show
- name: Install Kerberos Vault - name: Install Vault
id: install-kerberos-vault id: install-vault
run: | run: |
kubectl create namespace kerberos-vault kubectl create namespace kerberos-vault
kubectl apply -f ./base/vault/mongodb-configmap.yaml -n kerberos-vault kubectl apply -f ./base/vault/mongodb-configmap.yaml -n kerberos-vault
kubectl apply -f ./base/vault/kerberos-vault-deployment.yaml -n kerberos-vault kubectl apply -f ./base/vault/kerberos-vault-deployment.yaml -n kerberos-vault
kubectl apply -f ./base/vault/kerberos-vault-service.yaml -n kerberos-vault kubectl apply -f ./base/vault/kerberos-vault-service.yaml -n kerberos-vault
echo "Sleeping for 30 seconds, give time for the helm chart to create the pods" && sleep 30 sleep 10
kubectl wait --for=condition=available deployment/vault -n kerberos-vault --timeout=300s
kubectl get pods -A -o wide kubectl get pods -A -o wide
kubectl get pods -A -o wide | grep kerberos-vault | awk '{print $3}' | grep -q '1/1' && echo "kerberos-vault pod is running with status 1/1" || (echo "kerberos-vault pod is not running with status 1/1" && exit 1) kubectl get pods -A -o wide | grep vault | awk '{print $3}' | grep -q '1/1' && echo "vault pod is running with status 1/1" || (echo "vault pod is not running with status 1/1" && exit 1)
- name: Install Kerberos Agent - name: Install Agent
id: install-kerberos-agent id: install-agent
run: | run: |
kubectl apply -f ./base/agent/kerberos-agent-deployment.yaml kubectl create namespace kerberos-agent
echo "Sleeping for 30 seconds, give time for the helm chart to create the pods" && sleep 30 kubectl apply -f ./base/agent/kerberos-agent-deployment.yaml -n kerberos-agent
kubectl wait --for=condition=available deployment/agent1 -n kerberos-agent --timeout=300s
kubectl get pods -A -o wide kubectl get pods -A -o wide
kubectl get pods -A -o wide | grep agent | awk '{print $3}' | grep -q '1/1' && echo "kerberos-agent pod is running with status 1/1" || (echo "kerberos-agent pod is not running with status 1/1" && exit 1) kubectl get pods -A -o wide | grep agent1 | awk '{print $3}' | grep -q '1/1' && echo "agent1 pod is running with status 1/1" || (echo "agent1 pod is not running with status 1/1" && exit 1)
- name: Install Data filtering - name: Install Hub Helm chart
id: install-data-filtering id: install-hub
run: |
sed -e '/nvidia/ s/^#*/#/' -i ./base/vault/data-filtering-deployment.yaml
kubectl apply -f ./base/vault/data-filtering-deployment.yaml
echo "Sleeping for 250 seconds, give time for the helm chart to create the pods" && sleep 250
kubectl get pods -A -o wide
kubectl get pods -A -o wide | grep data-filtering | awk '{print $3}' | grep -q '1/1' && echo "data-filtering pod is running with status 1/1" || (echo "data-filtering pod is not running with status 1/1" && exit 1)
- name: Install Kerberos Hub helm chart
id: install-kerberos-hub
run: | run: |
helm repo add kerberos https://charts.kerberos.io helm repo add kerberos https://charts.kerberos.io
kubectl create namespace kerberos-hub kubectl create namespace kerberos-hub
helm install hub kerberos/hub --values ./base/hub/kerberos-hub-values.yaml -n kerberos-hub --create-namespace helm install hub kerberos/hub --values ./base/hub/kerberos-hub-values.yaml -n kerberos-hub --create-namespace
echo "Sleeping for 300 seconds, give time for the helm chart to create the pods" && sleep 300 sleep 10
kubectl get pods -A -o wide kubectl wait --for=condition=available deployment/admin -n kerberos-hub --timeout=300s
kubectl get pods -A -o wide | grep hub-frontend- | awk '{print $3}' | grep -q '1/1' && echo "hub-frontend pod is running with status 1/1" || (echo "hub-frontend pod is not running with status 1/1" && exit 1) kubectl wait --for=condition=available deployment/hub-api -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/hub-cleanup -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/hub-frontend -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/hub-frontend-demo -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/hub-monitor-device -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/hub-reactivate-subscription -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-analysis -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-counting -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-dominantcolor -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-event -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-export -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-monitor -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-notify -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-notify-test -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-sequence -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-sprite -n kerberos-hub --timeout=300s
kubectl wait --for=condition=available deployment/pipe-throttler -n kerberos-hub --timeout=300s
kubectl get pods -A -o wide

View File

@@ -297,13 +297,13 @@ kerberoshub:
# Custom layout: override css # Custom layout: override css
# By providing a style.css file in the custom folder # By providing a style.css file in the custom folder
# this file will override any css styling. # this file will override any css styling.
volumeMounts: #volumeMounts:
- name: custom-layout # - name: custom-layout
mountPath: /usr/share/nginx/html/assets/custom # mountPath: /usr/share/nginx/html/assets/custom
volumes: #volumes:
- name: custom-layout # - name: custom-layout
persistentVolumeClaim: # persistentVolumeClaim:
claimName: custom-layout-claim # claimName: custom-layout-claim
# By specifying the below environments variables, you can tweak the # By specifying the below environments variables, you can tweak the
# headings and paragraphs of Kerberos Hub front-end. # headings and paragraphs of Kerberos Hub front-end.
# Login page # Login page

View File

@@ -19,7 +19,7 @@ global:
## - myRegistryKeySecretName ## - myRegistryKeySecretName
## ##
imagePullSecrets: [] imagePullSecrets: []
storageClass: "openebs-hostpath" storageClass: "ssd-hostpath"
namespaceOverride: "" namespaceOverride: ""
## @section Common parameters ## @section Common parameters
## ##
@@ -119,8 +119,8 @@ diagnosticMode:
## ##
image: image:
registry: docker.io registry: docker.io
repository: bitnami/mongodb repository: bitnamilegacy/mongodb
tag: 7.0.5-debian-12-r5 tag: 8.0.13-debian-12-r0
digest: "" digest: ""
## Specify a imagePullPolicy ## Specify a imagePullPolicy
## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images

View File

@@ -18,21 +18,24 @@ global:
## - myRegistryKeySecretName ## - myRegistryKeySecretName
## ##
imagePullSecrets: [] imagePullSecrets: []
storageClass: "openebs-hostpath" storageClass: "ssd-hostpath"
security:
allowInsecureImages: true
## @section RabbitMQ Image parameters ## @section RabbitMQ Image parameters
## Bitnami RabbitMQ image version ## Bitnami RabbitMQ image version
## ref: https://hub.docker.com/r/bitnami/rabbitmq/tags/ ## ref: https://hub.docker.com/r/bitnami/rabbitmq/tags/
## @param image.registry [default: REGISTRY_NAME] RabbitMQ image registry ## @param image.registry [default: REGISTRY_NAME] RabbitMQ image registry
## @param image.repository [default: REPOSITORY_NAME/rabbitmq] RabbitMQ image repository ## @param image.repository [default: REPOSITORY_NAME/rabbitmq] RabbitMQ image repository
## @skip image.tag RabbitMQ image tag (immutable tags are recommended) ## @skip image.tag RabbitMQ image tag (immutable tags are recommended)
## @param image.digest RabbitMQ image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag ## @param image.digest RabbitMQ image digest in allowInsecureImages way sha256:aa.... Please note this parameter, if set, will override the tag
## @param image.pullPolicy RabbitMQ image pull policy ## @param image.pullPolicy RabbitMQ image pull policy
## @param image.pullSecrets Specify docker-registry secret names as an array ## @param image.pullSecrets Specify docker-registry secret names as an array
## @param image.debug Set to true if you would like to see extra information on logs ## @param image.debug Set to true if you would like to see extra information on logs
## ##
image: image:
registry: docker.io registry: docker.io
repository: bitnami/rabbitmq repository: bitnamilegacy/rabbitmq
tag: 3.12.13-debian-12-r2 tag: 3.12.13-debian-12-r2
digest: "" digest: ""
## set to true if you would like to see extra information on logs ## set to true if you would like to see extra information on logs