85 Commits

Author SHA1 Message Date
uug4ai
a6101b4cf4 A new public release - 1771807234 2026-02-23 00:40:36 +00:00
Cédric Verstraeten
1b4c1f1b6c Delete PR description autofill workflow
Remove autofill PR description workflow using OpenAI.
2026-02-07 07:47:48 +01:00
Cédric Verstraeten
1911cd4d4d Merge pull request #24 from kerberos-io/public-release-1770446130
A new public release - 1770446130
2026-02-07 07:43:58 +01:00
uug4ai
b5dff01923 A new public release - 1770446130 2026-02-07 06:35:31 +00:00
Cédric Verstraeten
60cfe2e331 Merge pull request #23 from kerberos-io/fix/remove-license-from-overlays
fix/remove-license-from-overlays
2025-12-11 19:10:26 +01:00
Cédric Verstraeten
b19365e9a5 Remove license value from Kerberos Hub Helm chart
Deleted the inline 'license' value from the Kerberos Hub Helm chart configuration in the MicroK8s overlay. This change may be for security, configuration management, or to rely on default or external license provisioning.
2025-12-11 17:35:36 +01:00
cedricve
7a13391a8a Update license key in Kerberos Hub values
Replaces the existing license key with a new value in kerberos-hub-values.yaml. This may be required for license renewal, activation, or compliance.
2025-12-04 22:33:59 +01:00
Cédric Verstraeten
6bed1269de Merge pull request #22 from kerberos-io/feature/test-slack-notification
feature/test-slack-notification
2025-11-27 21:08:49 +01:00
Cédric Verstraeten
33270d2655 Refactor Slack notifications in CI workflows for K3d, Kind, Kustomize, and MicroK8s to simplify messages and improve readability 2025-11-27 10:59:35 +01:00
Cédric Verstraeten
0bb4b9c381 Remove Slack notification steps from Kustomize and PR description workflows 2025-11-27 10:52:44 +01:00
Cédric Verstraeten
ddef4397bb Remove deprecated microk8s versions from deployment matrix in microk8s.yaml 2025-11-27 10:51:20 +01:00
Cédric Verstraeten
5786c5073e Add Slack notifications to CI workflows
Slack notifications for success and failure have been added to the k3d, kind, kustomize, microk8s, and pr-description GitHub Actions workflows. This improves visibility of deployment and PR automation results by sending status updates to a configured Slack channel.
2025-11-27 10:21:20 +01:00
Cédric Verstraeten
3162d1f915 Merge pull request #21 from kerberos-io/public-release-1764168026 2025-11-26 23:23:26 +01:00
Cédric Verstraeten
6074c020f5 Merge pull request #20 from kerberos-io/feature/replace-bitnami-legacy 2025-11-26 23:22:47 +01:00
cedricve
f87467b4fa Remove Ubuntu 20.04 from the deployment matrix in kustomize.yaml for streamlined compatibility 2025-11-26 21:47:00 +01:00
cedricve
ff78886fa5 Update storage class in rabbitmq-values.yaml from openebs-hostpath to ssd-hostpath for improved performance 2025-11-26 21:46:24 +01:00
cedricve
ef95fcb752 Add sleep command before waiting for deployments in k3d, kind, and microk8s workflows for improved readiness 2025-11-26 21:36:38 +01:00
cedricve
55d8f58aa2 Replace sleep commands with kubectl wait for deployments in k3d, kind, and microk8s workflows for improved reliability and efficiency 2025-11-26 21:35:40 +01:00
cedricve
53a444849b Update storage class in mongodb-values.yaml from openebs-hostpath to ssd-hostpath for improved performance 2025-11-26 21:22:20 +01:00
cedricve
795ac2735c Increase sleep duration in hub installation step for improved resource readiness 2025-11-26 21:20:49 +01:00
cedricve
f8935c266d Remove sleep command from hub installation step for improved workflow efficiency 2025-11-26 21:11:25 +01:00
cedricve
3eb58faed1 Remove data filtering installation steps from k3d, kind, and microk8s workflows for cleanup and improved clarity 2025-11-26 20:59:06 +01:00
cedricve
1dd572a044 Refactor deployment workflow by consolidating jobs and removing unnecessary steps for improved clarity and efficiency 2025-11-26 20:45:54 +01:00
cedricve
4eca2a165a Specify namespace for data filtering deployment in k3d and microk8s workflows 2025-11-26 20:42:48 +01:00
cedricve
88b9b016a1 Refactor deployment workflows to replace sleep commands with kubectl wait for improved resource readiness 2025-11-26 20:35:12 +01:00
cedricve
8cf0c7453b Specify namespace for agent deployment in kind workflow 2025-11-26 20:26:03 +01:00
cedricve
e76fdbdc2c Increase sleep duration before waiting for Minio and Vault deployments to ensure resource readiness 2025-11-26 20:17:01 +01:00
cedricve
ac82305775 Reduce sleep duration before waiting for Minio and Vault deployments for improved efficiency 2025-11-26 20:11:41 +01:00
cedricve
e3d74865f7 Add sleep before waiting for Vault deployment to ensure readiness 2025-11-26 20:04:46 +01:00
cedricve
f3ff7c4c67 Update Vault installation to wait for available condition instead of ready for improved deployment accuracy 2025-11-26 17:02:15 +01:00
cedricve
bf6eed584e Refactor Minio installation to use kubectl wait for ready replicas and remove unnecessary sleep commands for improved deployment reliability 2025-11-26 16:49:21 +01:00
cedricve
9be4475ec0 Add wait for Minio resources and improve readiness checks for deployment reliability 2025-11-26 16:43:19 +01:00
cedricve
b7d4b8bd83 Update Minio installation to wait for ready replicas instead of specific pod status for improved reliability 2025-11-26 16:35:12 +01:00
cedricve
d78e4adcf4 Update Minio installation to wait for pod readiness instead of tenant initialization 2025-11-26 16:28:52 +01:00
cedricve
25172b8cb0 Update Minio installation command to specify namespace for kubectl wait condition 2025-11-26 16:21:51 +01:00
cedricve
088e7f3600 Refactor kind.yaml to replace sleep commands with kubectl wait for improved deployment reliability; comment out custom layout volume configurations in kerberos-hub-values.yaml 2025-11-26 16:19:18 +01:00
cedricve
f9b6c24e81 Enhance RabbitMQ and Vernemq installation commands with --wait and --timeout options for improved deployment reliability 2025-11-26 15:58:02 +01:00
cedricve
3d1d804c54 Merge branch 'feature/replace-bitnami-legacy' of github.com:kerberos-io/deployment into feature/replace-bitnami-legacy 2025-11-26 15:49:56 +01:00
cedricve
4f4512c332 Update MongoDB installation command to use --wait and --timeout options; add allowInsecureImages parameter to RabbitMQ values 2025-11-26 15:49:31 +01:00
uug4ai
18edad9b0d A new public release - 1764168026 2025-11-26 14:40:28 +00:00
Cédric Verstraeten
48975025bb Merge branch 'main' into feature/replace-bitnami-legacy 2025-11-26 15:33:11 +01:00
cedricve
48bbc7da4e Add pull_request trigger to workflow files for k3d, kind, kustomize, and microk8s 2025-11-26 13:42:35 +01:00
cedricve
c522cf1f51 Replace Bitnami images with Bitnami Legacy images for MongoDB and RabbitMQ 2025-11-26 13:38:27 +01:00
Cédric Verstraeten
2339cde1df Merge pull request #18 from kerberos-io/public-release-1756996839
A new public release - 1756996839
2025-10-16 13:31:27 +02:00
uug4ai
80fe4c2057 A new public release - 1756996839 2025-09-04 14:40:40 +00:00
Cédric Verstraeten
3df31f6914 Merge pull request #17 from kerberos-io/public-release-1754552209
A new public release - 1754552209
2025-08-07 09:44:23 +02:00
uug4ai
934429598b A new public release - 1754552209 2025-08-07 07:36:50 +00:00
Cédric Verstraeten
0d68c7be84 Refactor workflow configurations to remove deprecated OS versions for k3d, kind, and microk8s deployments 2025-07-29 06:58:44 +00:00
Cédric Verstraeten
6de19cd487 Increase sleep duration for MongoDB Helm chart installation to ensure pods are ready 2025-07-29 06:57:31 +00:00
Cédric Verstraeten
fb6bf6844d Enhance deployment workflows and Dockerfile
- Add Docker feature for running Docker outside of Docker in devcontainer.json
- Update pod status checks in k3d, kind, and microk8s workflows to target 'hub-frontend' instead of 'kerberos-hub'
- Improve Dockerfile to install 'kind' based on architecture
2025-05-20 11:27:38 +00:00
Cédric Verstraeten
e3a835360e Add Dockerfile and devcontainer configuration for Go development environment 2025-05-20 11:09:54 +00:00
Cédric Verstraeten
15640363e2 Update hub chart version to 0.84.0 in kustomization files 2025-05-20 13:04:02 +02:00
Cédric Verstraeten
52da738fd3 Add GitHub Actions workflow for deploying on kind using Kustomize 2025-05-20 12:55:40 +02:00
Cédric Verstraeten
0843c80e22 Refactor SSD hostpath StorageClass configuration to use microk8s provisioner and simplify parameters 2025-05-20 12:52:49 +02:00
Cédric Verstraeten
93e3982c86 Add OpenEBS storage class configuration and update deployment workflow 2025-05-20 12:52:26 +02:00
Cédric Verstraeten
cfee18b876 Update Minio pod status check to verify readiness state 2/2 2025-05-20 12:48:00 +02:00
Cédric Verstraeten
4d2211b92b Update Minio pod status check to reflect expected readiness state 2025-05-20 12:35:41 +02:00
Cédric Verstraeten
f758c17cc5 Merge pull request #15 from kerberos-io/public-release-1747736737
A new public release - 1747736737
2025-05-20 12:33:17 +02:00
uug4ai
67672593da A new public release - 1747736737 2025-05-20 10:25:38 +00:00
Cédric Verstraeten
e736f8dd72 Merge pull request #14 from kerberos-io/public-release-1743746495
A new public release - 1743746495
2025-04-09 08:37:21 +02:00
uug4ai
65628ed746 A new public release - 1743746495 2025-04-04 06:01:36 +00:00
Cédric Verstraeten
78cc37cbb9 Merge pull request #13 from kerberos-io/public-release-1742908520
A new public release - 1742908520
2025-03-26 08:32:07 +01:00
uug4ai
9ebdb11b34 A new public release - 1742908520 2025-03-25 13:15:21 +00:00
Cédric Verstraeten
e8b4b72654 Merge pull request #12 from kerberos-io/fix/improve-documentation
Improve documentation for deployment
2025-03-25 09:23:44 +01:00
Cedric Verstraeten
ec2ba23985 Update kustomization.yaml 2025-03-06 12:47:06 +01:00
Cedric Verstraeten
d059c6a051 add documentdb template 2025-03-06 11:43:07 +01:00
Cedric Verstraeten
ae9c09e342 overrride mongodb setting through kustomize 2025-03-06 11:19:54 +01:00
Cedric Verstraeten
5aac77dfbc Update README.kustomize.md 2025-03-06 11:18:06 +01:00
Cedric Verstraeten
8d23cb0946 Update kerberos-hub-import-database-job.yaml 2025-03-06 11:11:15 +01:00
Cedric Verstraeten
c4197c4293 Update kerberos-hub-import-database-job.yaml 2025-03-06 11:04:25 +01:00
Cedric Verstraeten
dc730670d8 Update README.kustomize.md 2025-03-06 11:00:57 +01:00
Cedric Verstraeten
647651082b Update kerberos-hub-import-database-job.yaml 2025-03-06 10:58:09 +01:00
Cedric Verstraeten
24b071418b Update kerberos-hub-import-database-job.yaml 2025-03-05 17:01:20 +01:00
Cedric Verstraeten
919ad7669a Update kerberos-hub-import-database-job.yaml 2025-03-05 16:52:53 +01:00
Cedric Verstraeten
c240f1e83a Update kerberos-hub-import-database-job.yaml 2025-03-05 16:16:30 +01:00
Cédric Verstraeten
8a6a92155b Merge pull request #11 from kerberos-io/public-release-1740815636
A new public release - 1740815636
2025-03-05 14:48:10 +01:00
Cedric Verstraeten
edf63802bc update configuration 2025-03-05 14:47:33 +01:00
Cedric Verstraeten
cf12ce78d5 Update configure.sh 2025-03-05 14:40:36 +01:00
Cedric Verstraeten
9d0a6d4d71 Update kerberos-hub-import-database-job.yaml 2025-03-05 14:37:36 +01:00
Cedric Verstraeten
1e574ffbbf Adding docs Amazon document db 2025-03-05 14:26:26 +01:00
Cedric Verstraeten
3f8e104b3f Update README.configure.md 2025-03-05 14:20:15 +01:00
Cedric Verstraeten
03290c03c3 change installation 2025-03-05 11:04:23 +01:00
Cedric Verstraeten
36bc47a10c Merge branch 'main' of https://github.com/kerberos-io/deployment 2025-03-05 11:04:05 +01:00
Cedric Verstraeten
47fcb7cfd9 update kerberos hub deployment 2025-03-05 11:04:03 +01:00
uug4ai
1107c9509c A new public release - 1740815636 2025-03-01 07:53:58 +00:00
22 changed files with 642 additions and 245 deletions

7
.devcontainer/Dockerfile Normal file
View File

@@ -0,0 +1,7 @@
FROM mcr.microsoft.com/devcontainers/go:1.24-bookworm
# Install helm and kubectl
RUN curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" \
&& chmod +x ./kubectl \
&& sudo mv ./kubectl /usr/local/bin/kubectl

View File

@@ -0,0 +1,22 @@
{
"name": "go:1.24-bookworm",
"dockerFile": "Dockerfile",
"runArgs": ["--privileged"],
"features": {
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {}
},
"customizations": {
"vscode": {
"extensions": [
"ms-kubernetes-tools.vscode-kubernetes-tools",
"redhat.vscode-yaml",
"Tim-Koehler.helm-intellisense",
"ms-vscode.azurecli",
"ms-vscode-remote.remote-containers",
"GitHub.copilot",
"fabiospampinato.vscode-diff",
"ms-azuretools.vscode-docker"
]
}
}
}

View File

@@ -1,23 +1,24 @@
name: Deploy on k3d
on:
workflow_dispatch:
pull_request:
schedule:
- cron: "0 0 * * *" # This will run the workflow every day at midnight UTC
jobs:
deploy:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04]
os: [ubuntu-22.04, ubuntu-24.04]
#k3d: [v5.5.2, v5.6.0, v5.7.5]
k3d: [v5.7.5]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: "Create single cluster"
uses: AbsaOSS/k3d-action@v2
with:
k3d-version: ${{ matrix.k3d }}
k3d-version: ${{ matrix.k3d }}
cluster-name: "k3d-cluster"
- name: Print Kubernetes Version
run: |
@@ -33,14 +34,20 @@ jobs:
- name: Install OpenEBS
run: |
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 po -A -o wide
- name: Create storage class
id: create-storage-class
run: |
kubectl apply -f ./base/ssd-hostpath-storageclass-openebs.yaml
kubectl wait --for=jsonpath='{.metadata.name}'=ssd-hostpath storageclass/ssd-hostpath --timeout=60s
kubectl get sc
- name: Install Prometheus operator
id: install-prometheus-operator
run: |
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 po -A -o wide
- name: Install Minio
@@ -48,7 +55,9 @@ jobs:
run: |
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
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 | 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
@@ -56,60 +65,78 @@ jobs:
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
kubectl create namespace mongodb
helm install mongodb -n mongodb bitnami/mongodb --values ./base/mongodb/mongodb-values.yaml
echo "Sleeping for 250 seconds, give time for the helm chart to create the pods" && sleep 250
helm install mongodb -n mongodb bitnami/mongodb --values ./base/mongodb/mongodb-values.yaml --wait --timeout=5m
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
id: install-rabbitmq
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
kubectl create namespace rabbitmq
helm install rabbitmq -n rabbitmq bitnami/rabbitmq --values ./base/rabbitmq/rabbitmq-values.yaml
echo "Sleeping for 60 seconds, give time for the helm chart to create the pods" && sleep 60
helm install rabbitmq -n rabbitmq bitnami/rabbitmq --values ./base/rabbitmq/rabbitmq-values.yaml --wait --timeout=5m
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)
id: install-vernemq
run: |
kubectl create namespace 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
echo "Sleeping for 120 seconds, give time for the helm chart to create the pods" && sleep 120
helm install vernemq vernemq/vernemq --values ./base/vernemq/vernemq-values.yaml -n vernemq --create-namespace --wait --timeout=5m
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
- name: Install Kerberos Vault
id: install-kerberos-vault
- name: Install Vault
id: install-vault
run: |
kubectl create namespace 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-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 | 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)
- name: Install Kerberos Agent
id: install-kerberos-agent
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 Agent
id: install-agent
run: |
kubectl apply -f ./base/agent/kerberos-agent-deployment.yaml
echo "Sleeping for 30 seconds, give time for the helm chart to create the pods" && sleep 30
kubectl create namespace kerberos-agent
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 | 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)
- name: Install Data filtering
id: install-data-filtering
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
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 Hub Helm chart
id: install-hub
run: |
helm repo add kerberos https://charts.kerberos.io
kubectl create namespace kerberos-hub
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 wait --for=condition=available deployment/admin -n kerberos-hub --timeout=300s
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
kubectl get pods -A -o wide | grep kerberos-hub | awk '{print $3}' | grep -q '1/1' && echo "kerberos-hub pod is running with status 1/1" || (echo "kerberos-hub pod is not running with status 1/1" && exit 1)
- name: Send Slack Notification on Success
if: success()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"✅ K3d deployment successful on ${{ matrix.os }} (${{ matrix.k3d }}) - triggered by ${{ github.actor }}\"}" $SLACK_WEBHOOK_URL
- name: Send Slack Notification on Failure
if: failure()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"❌ K3d deployment failed on ${{ matrix.os }} (${{ matrix.k3d }}) - <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View logs>\"}" $SLACK_WEBHOOK_URL

View File

@@ -1,16 +1,15 @@
name: Deploy on kind
on:
workflow_dispatch:
pull_request:
schedule:
- cron: "0 0 * * *" # This will run the workflow every day at midnight UTC
jobs:
deploy:
runs-on: ${{ matrix.os }}
strategy:
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.25.0]
steps:
@@ -31,14 +30,20 @@ jobs:
- name: Install OpenEBS
run: |
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 po -A -o wide
- name: Create storage class
id: create-storage-class
run: |
kubectl apply -f ./base/ssd-hostpath-storageclass-openebs.yaml
kubectl wait --for=jsonpath='{.metadata.name}'=ssd-hostpath storageclass/ssd-hostpath --timeout=60s
kubectl get sc
- name: Install Prometheus operator
id: install-prometheus-operator
run: |
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 po -A -o wide
- name: Install Minio
@@ -46,7 +51,9 @@ jobs:
run: |
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
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 | 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
@@ -54,60 +61,78 @@ jobs:
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
kubectl create namespace mongodb
helm install mongodb -n mongodb bitnami/mongodb --values ./base/mongodb/mongodb-values.yaml
echo "Sleeping for 250 seconds, give time for the helm chart to create the pods" && sleep 250
helm install mongodb -n mongodb bitnami/mongodb --values ./base/mongodb/mongodb-values.yaml --wait --timeout=5m
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
id: install-rabbitmq
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
kubectl create namespace rabbitmq
helm install rabbitmq -n rabbitmq bitnami/rabbitmq --values ./base/rabbitmq/rabbitmq-values.yaml
echo "Sleeping for 60 seconds, give time for the helm chart to create the pods" && sleep 60
helm install rabbitmq -n rabbitmq bitnami/rabbitmq --values ./base/rabbitmq/rabbitmq-values.yaml --wait --timeout=5m
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)
id: install-vernemq
run: |
kubectl create namespace 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
echo "Sleeping for 120 seconds, give time for the helm chart to create the pods" && sleep 120
helm install vernemq vernemq/vernemq --values ./base/vernemq/vernemq-values.yaml -n vernemq --create-namespace --wait --timeout=5m
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
- name: Install Kerberos Vault
id: install-kerberos-vault
- name: Install Vault
id: install-vault
run: |
kubectl create namespace 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-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 | 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)
- name: Install Kerberos Agent
id: install-kerberos-agent
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 Agent
id: install-agent
run: |
kubectl apply -f ./base/agent/kerberos-agent-deployment.yaml
echo "Sleeping for 30 seconds, give time for the helm chart to create the pods" && sleep 30
kubectl create namespace kerberos-agent
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 | 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)
- name: Install Data filtering
id: install-data-filtering
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
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 Hub Helm chart
id: install-hub
run: |
helm repo add kerberos https://charts.kerberos.io
kubectl create namespace kerberos-hub
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 wait --for=condition=available deployment/admin -n kerberos-hub --timeout=300s
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
kubectl get pods -A -o wide | grep kerberos-hub | awk '{print $3}' | grep -q '1/1' && echo "kerberos-hub pod is running with status 1/1" || (echo "kerberos-hub pod is not running with status 1/1" && exit 1)
- name: Send Slack Notification on Success
if: success()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"✅ Kind deployment successful on ${{ matrix.os }} (${{ matrix.kind }}) - triggered by ${{ github.actor }}\"}" $SLACK_WEBHOOK_URL
- name: Send Slack Notification on Failure
if: failure()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"❌ Kind deployment failed on ${{ matrix.os }} (${{ matrix.kind }}) - <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View logs>\"}" $SLACK_WEBHOOK_URL

43
.github/workflows/kustomize.yaml vendored Normal file
View File

@@ -0,0 +1,43 @@
name: Deploy on kind using Kustmize
on:
workflow_dispatch:
pull_request:
schedule:
- cron: "0 0 * * *" # This will run the workflow every day at midnight UTC
jobs:
deploy:
runs-on: ${{ matrix.os }}
strategy:
matrix:
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.25.0]
steps:
- name: Create kind
uses: helm/kind-action@v1
with:
version: ${{ matrix.kind }}
- name: Print Kubernetes Version
run: |
kubectl version
- name: Test kind
run: |
kubectl get no
kubectl get pods -A -o wide
kubectl get sc
- name: Checkout repository
uses: actions/checkout@v2
- name: Send Slack Notification on Success
if: success()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"✅ Kustomize deployment successful on ${{ matrix.os }} (${{ matrix.kind }}) - triggered by ${{ github.actor }}\"}" $SLACK_WEBHOOK_URL
- name: Send Slack Notification on Failure
if: failure()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"❌ Kustomize deployment failed on ${{ matrix.os }} (${{ matrix.kind }}) - <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View logs>\"}" $SLACK_WEBHOOK_URL

View File

@@ -1,6 +1,7 @@
name: Deploy on microk8s
on:
workflow_dispatch:
pull_request:
schedule:
- cron: "0 0 * * *" # This will run the workflow every day at midnight UTC
jobs:
@@ -8,8 +9,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04]
#microk8s: [1.29/stable, 1.30/stable, 1.31/stable, 1.32/stable]
os: [ubuntu-22.04, ubuntu-24.04]
microk8s: [1.32/stable]
steps:
- uses: balchua/microk8s-actions@v0.4.3
@@ -26,17 +26,17 @@ jobs:
kubectl get pods -A -o wide
- name: Checkout repository
uses: actions/checkout@v2
- name: Install OpenEBS
- name: Create storage class
id: create-storage-class
run: |
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 apply -f ./base/ssd-hostpath-storageclass.yaml
echo "Sleeping for 30 seconds, give time for the storage class to be created" && sleep 30
kubectl get sc
kubectl get po -A -o wide
- name: Install Prometheus operator
id: install-prometheus-operator
run: |
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 po -A -o wide
- name: Install Minio
@@ -44,7 +44,9 @@ jobs:
run: |
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
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 | 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
@@ -52,60 +54,79 @@ jobs:
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
kubectl create namespace mongodb
helm install mongodb -n mongodb bitnami/mongodb --values ./base/mongodb/mongodb-values.yaml
echo "Sleeping for 250 seconds, give time for the helm chart to create the pods" && sleep 250
helm install mongodb -n mongodb bitnami/mongodb --values ./base/mongodb/mongodb-values.yaml --wait --timeout=10m
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
id: install-rabbitmq
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
kubectl create namespace rabbitmq
helm install rabbitmq -n rabbitmq bitnami/rabbitmq --values ./base/rabbitmq/rabbitmq-values.yaml
echo "Sleeping for 60 seconds, give time for the helm chart to create the pods" && sleep 60
helm install rabbitmq -n rabbitmq bitnami/rabbitmq --values ./base/rabbitmq/rabbitmq-values.yaml --wait --timeout=10m
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)
id: install-vernemq
run: |
kubectl create namespace 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
echo "Sleeping for 120 seconds, give time for the helm chart to create the pods" && sleep 120
helm install vernemq vernemq/vernemq --values ./base/vernemq/vernemq-values.yaml -n vernemq --create-namespace --wait --timeout=10m
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
- name: Install Kerberos Vault
id: install-kerberos-vault
- name: Install Vault
id: install-vault
run: |
kubectl create namespace 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-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 | 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)
- name: Install Kerberos Agent
id: install-kerberos-agent
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 Agent
id: install-agent
run: |
kubectl apply -f ./base/agent/kerberos-agent-deployment.yaml
echo "Sleeping for 30 seconds, give time for the helm chart to create the pods" && sleep 30
kubectl create namespace kerberos-agent
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 | 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)
- name: Install Data filtering
id: install-data-filtering
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
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 Hub Helm chart
id: install-hub
run: |
helm repo add kerberos https://charts.kerberos.io
kubectl create namespace kerberos-hub
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 wait --for=condition=available deployment/admin -n kerberos-hub --timeout=300s
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
kubectl get pods -A -o wide | grep kerberos-hub | awk '{print $3}' | grep -q '1/1' && echo "kerberos-hub pod is running with status 1/1" || (echo "kerberos-hub pod is not running with status 1/1" && exit 1)
- name: Send Slack Notification on Success
if: success()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"✅ MicroK8s deployment successful on ${{ matrix.os }} (${{ matrix.microk8s }}) - triggered by ${{ github.actor }}\"}" $SLACK_WEBHOOK_URL
- name: Send Slack Notification on Failure
if: failure()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"❌ MicroK8s deployment failed on ${{ matrix.os }} (${{ matrix.microk8s }}) - <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View logs>\"}" $SLACK_WEBHOOK_URL

View File

@@ -1,19 +1 @@
name: Autofill PR description
on: pull_request
jobs:
openai-pr-description:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Autofill PR description if empty using OpenAI
uses: cedricve/azureopenai-pr-description@master
with:
github_token: ${{ secrets.TOKEN }}
openai_api_key: ${{ secrets.OPENAI_API_KEY }}
azure_openai_api_key: ${{ secrets.AZURE_OPENAI_API_KEY }}
azure_openai_endpoint: ${{ secrets.AZURE_OPENAI_ENDPOINT }}
azure_openai_version: ${{ secrets.AZURE_OPENAI_VERSION }}
overwrite_description: true

View File

@@ -1,8 +1,19 @@
FROM ubuntu:latest
LABEL maintainer="Cedric Verstraeten"
# Install dependencies
RUN apt-get update && apt-get install snapd snap-confine -y
# Install curl
RUN apt-get update && apt-get install -y curl
# Install microk8s
RUN snap install microk8s --classic --channel=1.32/stable
# Install kind (detect architecture)
RUN ARCH=$(uname -m) && \
if [ "$ARCH" = "x86_64" ]; then \
curl -Lo /usr/local/bin/kind https://kind.sigs.k8s.io/dl/v0.28.0/kind-linux-amd64; \
elif [ "$ARCH" = "aarch64" ]; then \
curl -Lo /usr/local/bin/kind https://kind.sigs.k8s.io/dl/v0.28.0/kind-linux-arm64; \
else \
echo "Unsupported architecture: $ARCH" && exit 1; \
fi && \
chmod +x /usr/local/bin/kind
# Create a cluster using kind
RUN kind create cluster

View File

@@ -0,0 +1,58 @@
# Configuration
After completing the installation using one of the provided methods, you can proceed with the configuration and setup of the various components. Depending on your deployment method, refer to the appropriate README for detailed instructions:
- [Docker](./README.docker.md)
- [Kubernetes](./README.kubernetes.md)
- [MicroK8S](./README.microk8s.md)
- [Kustomize](./README.kustomize.md)
## Access through ingress or NodePort
Taking into account your installation you should be able to access the different applications using their relative `Ingress` or `NodePort`. For example when following the [Kustomize](./README.kustomize.md) installation
## Login to Vault
Once you have access to the Vault user interface, you should be able to login with a username and password. You will [find the username and password here](https://github.com/kerberos-io/deployment/blob/main/kerberos-vault-deployment.yaml#L36-L39).
- Username: [**view username**](https://github.com/kerberos-io/deployment/blob/main/kerberos-vault-deployment.yaml#L36-L37)
- Password: [**view password**](https://github.com/kerberos-io/deployment/blob/main/kerberos-vault-deployment.yaml#L38-L39)
### Configure the Vault
With the Vault installed, we can proceed to configure the various components. Currently, this must be done through the Vault UI, but we plan to make it configurable via environment variables, eliminating the need for manual UI configurations.
![Configure Vault](./assets/images/configure-vault.gif)
- Navigate to the `Storage Providers` menu and select the (+ Add Storage Provider) button. A modal will appear where you can input the required details. After entering the information, click the "Verify" button to ensure the configuration is valid. Once you receive a "Configuration is valid and working" message, click the "Add Storage Provider" button to complete the process. **_(!You are advised to generate more complex access and secret key for Minio, this is just for demo purposes, do not use this in production)_**
- Minio
- Enabled: true
- Provider name: minio
- Bucket name: mybucket
- Region: na
- Hostname: myminio-hl.minio-tenant:9000
- Access key: minio
- Secret key: minio123
- Navigate to the `Integrations` menu and select the (+ Add Integration) button. A modal will appear where you can input the required details. After entering the information, click the "Verify" button to ensure the configuration is valid. Once you receive a "Configuration is valid and working" message, click the "Add Integration" button to complete the process. **_(!You are advised to generate more complex username and password for RabbitMQ, this is just for demo purposes, do not use this in production)_**
- RabbitMQ
- Enabled: true
- Integration name: rabbitmq
- Broker: rabbitmq.rabbitmq:5672
- Exchange: <empty>
- Queue: data-filtering
- Username: yourusername
- Password: yourpassword
- Navigate to the `Accounts` menu and click the (+ Add Account) button. A modal will appear where you can input the required details. After entering the information, click the "Add Account" button to complete the process.
- Enabled: true
- Account name: myaccount
- Main provider: minio
- Day limit: 30
- Integration: rabbitmq
- Directory: \*
- Access key: XJoi2@bgSOvOYBy# (or generate new keys, but don't forget to update them in the next steps)
- Secret key: OGGqat4lXRpL@9XBYc8FUaId@5 (or generate new keys, but don't forget to update them in the next steps)

View File

@@ -114,7 +114,34 @@ cd deployment
In contrast to the detailed installation instructions, as mentioned here, an easier option to install is to use our Kustomize configure. This will allow you to specify and create your own overlays to install all the different components through a single command line.
Kustomize uses the concept of `bases` and `overlays`, allowing you to customize the base installation with different settings (an overlay). Before executing the `kustomize` command below, navigate to the `overlays/microk8s/kustomization.yaml` file and modify the `inlineValues` of the Hub to match the IP address of your node. Please note that when you use multipass, WSL or any other type of virtualisation, your IP address will be different than the IP address of your host machine. Verify your IP address using the `ifconfig` command.
Kustomize uses the concept of `bases` and `overlays`, allowing you to customize the base installation with different settings (an overlay). Before executing the `kustomize` command below, navigate to the `overlays/microk8s/kustomization.yaml` file and modify the `inlineValues` of the Hub to match the IP address of your node. Please note that when using Multipass, WSL, or any other type of virtualization, your IP address will differ from the IP address of your host machine. Verify your IP address using the `ifconfig` command.
To simplify the experience, we have created a `configure.sh` script to automate the installation. You can run the script as shown below by providing the IP address of the host machine (or virtualization) and the storage path on the host machine (or virtualization) to persist the state of the various containers.
### A. Scripted installation
To create a new deployment you can use following command.
```bash
ubuntu@xxxx:~/deployment$ ./configure.sh
Usage: ./configure.sh {apply|delete} [-s <storage_path>] [-i <ip_address>]
```
When looking into the `configure.sh` script, you will notice that `microk8s` is utilized. You are encouraged to adjust the overlay to suit your requirements or create a new overlay as needed.
```bash
ubuntu@xxxx:~/deployment$ ./configure.sh apply -i x.x.x.x -s /media/storage
```
To delete you can use the deletion argument.
```bash
ubuntu@xxxx:~/deployment$ ./configure.sh delete
```
### B. Native installation
If you prefer to use `kustomize` directly without the `configure.sh` script, that's perfectly fine. You can adjust an existing overlay or create a new one to suit your needs. By using the `kustomize` configuration mechanism, you can override our `base` directory settings.
```yaml
valuesInline:
@@ -207,6 +234,20 @@ sudo systemctl enable coturn
sudo systemctl restart coturn
```
## Custom layout
Once the installation is complete, you can customize the user interface with your own branding. A persistent volume claim (PVC) has been created and attached to the `hub-frontend` pod. To locate the persistent volume, navigate to your specified storage path. The volume will have a name starting with `kerberos-hub-custom-layout-claim-pvc`.
```bash
cp -r base/volume/* /media/storage/kerberos-hub-custom-layout-claim-pvc-.../
```
Once the files are copied, you should see the CSS override on the Hub landing page.
## Access and configuration
Todo
## Cleanup
If you consider to remove the complete stack you might just disable the Microk8s installation

View File

@@ -44,30 +44,52 @@ data:
db = conn.getDB('Kerberos');
// This will create a user with the following credentials.
// username: youruser
// password: yourpassword
// username: example-user
// password: example-password
db.users.updateOne(
{ '_id': ObjectId('57e1011e3178aa6c5cc774d1') },
{
$set: {
'username': 'youruser',
'email': 'your@email.com',
'password': '$2a$10$XS8XdjzgUCbvGHgt9KVHEuDBnmu1bfAhT/WFxcHCubJtHud8O8vSC',
'username': 'example-user',
'email': 'example-user@email.com',
'password': '$2a$10$jwLcD/.UT/1WLK7ct1XuHewI3GQXwW3zerPhCCs7QDrReEuIHbVYi',
'role': 'owner',
'google2fa_enabled': false,
'timezone': 'Europe/Brussels',
'isActive': NumberLong(1),
'registerToken': '',
'timezone': 'Europe/Brussels',
'updated_at': ISODate('2020-06-14T05:01:35.000Z'),
'created_at': ISODate('2016-09-20T09:27:58.811Z'),
'amazon_secret_access_key': 'K6rRLBI1xxxCk3C1H',
'amazon_access_key_id': 'AKIAxxxxxxG5Q',
'card_brand': 'MasterCard',
'card_last_four': '6888',
'sequence_first': 1510657836,
'card_brand': 'Visa',
'card_last_four': '0000',
'card_status': 'ok',
'card_status_message': null,
'role': 'owner',
'admin': true,
'google2fa_enabled': false
'card_status_message': null
}
},
{ upsert: true }
);
// This will create an application with the following credentials, which
// can be used to authenticate with the admin panel.
// username: example-application
// password: example-password
db.users.updateOne(
{ '_id': ObjectId('57e1011e3178aa6c5cc774d2') },
{
$set: {
'username': 'example-application',
'email': 'example-application@email.com',
'password': '$2a$10$jwLcD/.UT/1WLK7ct1XuHewI3GQXwW3zerPhCCs7QDrReEuIHbVYi',
'role': 'application',
'google2fa_enabled': false,
'timezone': 'Europe/Brussels',
'isActive': NumberLong(1),
'registerToken': '',
'updated_at': ISODate('2020-06-14T05:01:35.000Z'),
'created_at': ISODate('2016-09-20T09:27:58.811Z')
}
},
{ upsert: true }
@@ -218,4 +240,4 @@ data:
}
},
{ upsert: true }
);
);

View File

@@ -8,7 +8,7 @@
# Get your license from support@kerberos.io
#license: "---ENTER-YOUR-LICENSE-HERE---"
# License for 8 cameras (for more cameras, please contact us for a private license)
license: "L/+FAwEBB2xpY2Vuc2UB/4YAAQIBB1BheWxvYWQBCgABCVNpZ25hdHVyZQEKAAAA/gMw/4YB/gEl/8wQACxnaXRodWIuY29tL3V1Zy1haS9odWItbGljZW5zZS9tb2RlbHMuTGljZW5zZf+BAwEBB0xpY2Vuc2UB/4IAAQwBAklkAf+EAAEDS2V5AQwAAQdDb21wYW55AQwAAQdFeHBUaW1lAQQAAQREYXlzAQQAAQdDYW1lcmFzAQQAAQVTaXRlcwEEAAEGVmF1bHRzAQQAAQpNZWRpYUxpbWl0AQQAAQlQZXJwZXR1YWwBAgABBkFjdGl2ZQECAAEJSXBBZGRyZXNzAQwAAAAY/4MBAQEIT2JqZWN0SUQB/4QAAQYBGAAAPf+COgEMAAAAAAAAAAAAAAAAAg9nZW5lcmljLWxpY2Vuc2UB+AJl6LAHsRMYAfoB0alKIAABEAEUARQDAQAB/gIAFlQqo9yJj1a3OH1+5iGjCPcz9VtrRuGfz/iuQEFohbCfSiZGAdHh16gEc59Z2kPaey+eJcwY0BQsBoipW7SwFRmcHkrWLuxt+Yzi2kvwmL4TN0quWqM4xxBzH1sejS6kZpPm7bw11JBsBuaNOYMbl5lgpPCFajWUH6GzfmuQlptNQKosocacI/9PaaqEUUM0ALjDZNSqqFwZPPsFh9WTeaHGbRbmwQRMPFDgaPCxiHnCCUagbvuVZeOQbKaR5gPTUfPQY/L4mrN9QnMxdzwUJgqm7FbTH4UhoZn6EEzNGTN6DbHhpx8lezzCRW8dzMNuK8R1igiORV5gdWOPzBMZlTgodIZRD07e8iAo2XqT/BWcqaJXutdqXltaiJKshh2QzStdv2WZUynVTguYIQJyBNhrXEkewKZA0UftcSemDPkCmp6VovMMveV4X3Cpzkm7ZHtE7j39At/kpuqY/icTEzRWYuQqEDtqXMVar84VOpgVhxeNrrqZniLq8o3ezRdwy0BJG5xT9cuMxq13ZB3Am9iqTSjx2mh5VZZeB33GjLVAtLscj8NoKWy7BThchXB9xwoiy2RLO8nE+EI8wPbg+ajb2Ta7AFyxHgJJU6cea+zEpiBMARwjPKqk2nn02xdfdqMzQ+E9e115sIqhotBM5RI7uBIf8DDwT93HLsJZRBAA"
license: "L/+DAwEBB2xpY2Vuc2UB/4QAAQIBB1BheWxvYWQBCgABCVNpZ25hdHVyZQEKAAAA/gMk/4QB/gEZ/8sQACxnaXRodWIuY29tL3V1Zy1haS9odWItbGljZW5zZS9tb2RlbHMuTGljZW5zZX8DAQEHTGljZW5zZQH/gAABDAECSWQB/4IAAQNLZXkBDAABB0NvbXBhbnkBDAABB0V4cFRpbWUBBAABBERheXMBBAABB0NhbWVyYXMBBAABBVNpdGVzAQQAAQZWYXVsdHMBBAABCk1lZGlhTGltaXQBBAABCVBlcnBldHVhbAECAAEGQWN0aXZlAQIAAQlJcEFkZHJlc3MBDAAAABj/gQEBAQhPYmplY3RJRAH/ggABBgEYAAAy/4AvAQwAAAAAAAAAAAAAAAACDGZyZWUtbGljZW5zZQH81iZi6gH+AtoBEAEUARQDAQAB/gIAfeXxQb6kaPfAgOWeSAE6qEiQviFD6sciNmNfMel1mEL53FeV0GQe4cYBip9wyJag35az8A1yppxSymZD5V4my2FckyN2zmEW4E2sO/v+8eKepiAGYEzrKtfNCLxdWLmrHd0zjYQ3qk+PNfoPyzCOefeulw3aFsqBlzg9wDkF8cRx6tUW0qNTzki6sFGOuLoxS49cWqsftAvZmt+CRWa8u0VArIAjOpywN0RIZCkEYzp5RYF3LSVyWYEyvVhjE19DDnevzpJyCHRsIHTRcpTQkhboeapOdlEz8cx+PaOvxktN8hBWceTAH+nw96FARG7y6Cpjw3xo+NV1xb0tvRXGaGoK77JnErKLhd/haXji98rGvMakDt18WSbQfTVS84+Fw+/gKGsW3uS3fROAaZw1kZj4PgsEPZDvbVkCVyuS0O87UoYqpxH8S4by8cTF3wDP7FwyIRZbEbYjN2wzHSmlADYOBtdsdb1VGm7wvtB85vML9n7ZSlIpJdqfci06mGks102mDyG2LRMhUEvpUW3D/weErIvj2WiAwf6r0EUj+LO8VmAsYkME9da7FXEN6Vg/5f1u485LOpYki332RaDOhDn2eMG9DVb/HnmQSFagX+XXc/QwfsWiehCgKYGk4jQpyklTqoGu8BAt6Sm8CaoH8ngZ3cHLQT5DcZElV36/N/wA"
licenseServer:
url: "https://license.kerberos.io/verify"
token: "214%ˆ#ddfsf@#3rfdsgl_)23sffeqasSwefDSFNBM" # do not change otherwise Kerberos Hub will not work.
@@ -140,10 +140,22 @@ email:
# Following are all the different deployments needed to make
# Kerberos hub properly working.
kerberoshub:
api:
repository: uugai/hub-api
admin:
repository: uugai/admin
pullPolicy: IfNotPresent
tag: "v1.0.22"
tag: "v1.0.2"
replicas: 1
resources:
requests:
memory: 100Mi
cpu: 100m
limits:
memory: 100Mi
cpu: 100m
api:
repository: ghcr.io/uug-ai/hub-api
pullPolicy: IfNotPresent
tag: "v1.8.14"
replicas: 1
jwtSecret: "I1JcwzW3A0t_THIS-IS_NOT_A_SECRET_WJK9jnPkipbnVTpf0efMy" # change to a random value, this is for generating JWT tokens.
schema: "http"
@@ -224,9 +236,9 @@ kerberoshub:
# clientSecret: "xxx"
# clientVerificationId: "" # This is only required for SSO chaining.
frontend:
repository: uugai/hub-frontend
repository: ghcr.io/uug-ai/hub-frontend
pullPolicy: IfNotPresent
tag: "v1.0.41"
tag: "v1.8.0"
replicas: 1
schema: "http"
url: "yourdomain.com"
@@ -285,13 +297,13 @@ kerberoshub:
# Custom layout: override css
# By providing a style.css file in the custom folder
# this file will override any css styling.
volumeMounts:
- name: custom-layout
mountPath: /usr/share/nginx/html/assets/custom
volumes:
- name: custom-layout
persistentVolumeClaim:
claimName: custom-layout-claim
#volumeMounts:
# - name: custom-layout
# mountPath: /usr/share/nginx/html/assets/custom
#volumes:
# - name: custom-layout
# persistentVolumeClaim:
# claimName: custom-layout-claim
# By specifying the below environments variables, you can tweak the
# headings and paragraphs of Kerberos Hub front-end.
# Login page
@@ -336,17 +348,17 @@ kerberoshub:
organization: "github-organization"
team: "github-team"
cleanup:
repository: kerberos/hub-cleanup
repository: uugai/hub-cleanup
pullPolicy: IfNotPresent
tag: "1.0.6436406806"
tag: "v1.4.1"
resources:
requests:
memory: 50Mi
cpu: 50m
monitordevice:
repository: kerberos/hub-monitor-device
repository: uugai/hub-monitor-device
pullPolicy: IfNotPresent
tag: "1.0.6256190978"
tag: "v1.3.0"
resources:
requests:
memory: 50Mi
@@ -363,9 +375,9 @@ kerberoshub:
# persistentVolumeClaim:
# claimName: custom-layout-claim
reactivate:
repository: kerberos/hub-reactivate
repository: uugai/hub-reactivatesubscriptions
pullPolicy: IfNotPresent
tag: "1.0.6256184527"
tag: "v1.0.2"
resources:
requests:
memory: 50Mi
@@ -384,9 +396,9 @@ kerberoshub:
# cpu: 10m
# This proxy is legacy for the old agent, will be migrated in the new Hub API.
proxy:
repository: kerberos/vault-proxy
repository: uugai/hub-proxy
pullPolicy: IfNotPresent
tag: "1.0.2733724812"
tag: "v1.0.0"
resources:
requests:
memory: 50Mi
@@ -396,9 +408,9 @@ kerberoshub:
cpu: 50m
kerberospipeline:
event:
repository: kerberos/pipe-event
repository: uugai/hub-pipeline-event
pullPolicy: IfNotPresent
tag: "1.0.6256042211"
tag: "v1.2.0"
replicas: 1
resources:
requests:
@@ -408,9 +420,9 @@ kerberospipeline:
memory: 50Mi
cpu: 50m
monitor:
repository: uugai/hub-pipeline-monitor
repository: ghcr.io/uug-ai/hub-pipeline-monitor
pullPolicy: IfNotPresent
tag: "v1.1.0"
tag: "v1.3.9"
replicas: 1
resources:
requests:
@@ -420,9 +432,9 @@ kerberospipeline:
memory: 50Mi
cpu: 50m
sequence:
repository: uugai/hub-pipeline-sequence
repository: ghcr.io/uug-ai/hub-pipeline-sequence
pullPolicy: IfNotPresent
tag: "v1.0.1"
tag: "v1.6.11"
replicas: 1
resources:
requests:
@@ -432,9 +444,9 @@ kerberospipeline:
memory: 50Mi
cpu: 50m
throttler:
repository: kerberos/pipe-throttler
repository: uugai/hub-pipeline-throttler
pullPolicy: IfNotPresent
tag: "1.0.6256059962"
tag: "v1.2.0"
replicas: 1
resources:
requests:
@@ -444,9 +456,9 @@ kerberospipeline:
memory: 50Mi
cpu: 50m
notify:
repository: uugai/hub-pipeline-notification
repository: ghcr.io/uug-ai/hub-pipeline-notification
pullPolicy: IfNotPresent
tag: "v1.0.11"
tag: "v1.3.0"
replicas: 1
resources:
requests:
@@ -464,9 +476,9 @@ kerberospipeline:
# persistentVolumeClaim:
# claimName: custom-layout-claim
notifyTest:
repository: kerberos/pipe-notify-test
repository: uugai/hub-pipeline-notification-test
pullPolicy: IfNotPresent
tag: "1.0.6256094666"
tag: "v1.2.1"
replicas: 1
resources:
requests:
@@ -484,9 +496,9 @@ kerberospipeline:
# persistentVolumeClaim:
# claimName: custom-layout-claim
analysis:
repository: uugai/hub-pipeline-analysis
repository: ghcr.io/uug-ai/hub-pipeline-analysis
pullPolicy: IfNotPresent
tag: "v1.0.1"
tag: "v1.7.7"
replicas: 1
resources:
requests:
@@ -496,9 +508,9 @@ kerberospipeline:
memory: 50Mi
cpu: 50m
dominantColor:
repository: kerberos/pipe-dominantcolor
repository: ghcr.io/uug-ai/hub-pipeline-dominantcolors
pullPolicy: IfNotPresent
tag: "1.0.6971463620"
tag: "v2.0.2"
replicas: 1
resources:
requests:
@@ -508,9 +520,9 @@ kerberospipeline:
memory: 50Mi
cpu: 50m
thumbnail:
repository: kerberos/pipe-thumbnail
repository: ghcr.io/uug-ai/hub-pipeline-thumbnail
pullPolicy: IfNotPresent
tag: "1.0.6962799851"
tag: "v1.3.1"
replicas: 1
quality: "1" # 1 (best) - 31 (worst)
width: "600"
@@ -525,9 +537,9 @@ kerberospipeline:
memory: 50Mi
cpu: 50m
counting:
repository: kerberos/pipe-counting
repository: uugai/hub-pipeline-counting
pullPolicy: IfNotPresent
tag: "1.0.6251572994"
tag: "v1.6.3"
replicas: 1
resources:
requests:
@@ -537,7 +549,7 @@ kerberospipeline:
enabled: true # Enable or disable the sprite generation 'true' or 'false
repository: uugai/hub-pipeline-sprite
pullPolicy: IfNotPresent
tag: "v1.0.4"
tag: "v1.0.9"
replicas: 1
interval: "1" # Number of secondes between each thumbnail in the sprite
width: "240" # Should not be changed for the moment (hard coded in UI)
@@ -550,9 +562,9 @@ kerberospipeline:
memory: 50Mi
cpu: 50m
export:
repository: kerberos/pipe-export
repository: ghcr.io/uug-ai/hub-pipeline-export
pullPolicy: IfNotPresent
tag: "1.0.6437127898"
tag: "v1.1.3"
replicas: 1
resources:
requests:

View File

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

View File

@@ -18,21 +18,24 @@ global:
## - myRegistryKeySecretName
##
imagePullSecrets: []
storageClass: "openebs-hostpath"
storageClass: "ssd-hostpath"
security:
allowInsecureImages: true
## @section RabbitMQ Image parameters
## Bitnami RabbitMQ image version
## ref: https://hub.docker.com/r/bitnami/rabbitmq/tags/
## @param image.registry [default: REGISTRY_NAME] RabbitMQ image registry
## @param image.repository [default: REPOSITORY_NAME/rabbitmq] RabbitMQ image repository
## @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.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
##
image:
registry: docker.io
repository: bitnami/rabbitmq
repository: bitnamilegacy/rabbitmq
tag: 3.12.13-debian-12-r2
digest: ""
## set to true if you would like to see extra information on logs

View File

@@ -0,0 +1,14 @@
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: ssd-hostpath
annotations:
openebs.io/cas-type: local
cas.openebs.io/config: |
- name: StorageType
value: hostpath
- name: BasePath
value: /media/Storage
provisioner: openebs.io/local
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer

View File

@@ -24,7 +24,7 @@ spec:
command: ["sh", "-c", "until nc -z mongodb.mongodb 27017 > /dev/null; do echo Waiting for master.; sleep 2; done;"]
containers:
- name: vault
image: uugai/vault:v1.0.14
image: ghcr.io/uug-ai/vault:v1.2.4
resources:
requests:
memory: 128Mi

64
configure.sh Executable file
View File

@@ -0,0 +1,64 @@
#!/bin/bash
# Function to get the current network interface IP
get_ip_address() {
ip -4 addr show | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | head -n 1
}
# Parse command line arguments
command=$1
shift
while getopts ":s:i:" opt; do
case $opt in
s) storage_path="$OPTARG"
;;
i) ip_address="$OPTARG"
;;
\?) echo "Invalid option -$OPTARG" >&2
;;
esac
done
if [ "$command" == "apply" ]; then
if [ -z "$storage_path" ]; then
echo "Usage: $0 apply -s <storage_path> [-i <ip_address>]"
exit 1
fi
if [ -z "$ip_address" ]; then
ip_address=$(get_ip_address)
fi
# Make a local copy of kustomization.yaml
cp ./overlays/microk8s/kustomization.yaml ./kustomization.yaml
# Replace placeholders in the local copy of kustomization.yaml
sed -i "s|localhost|$ip_address|g" ./kustomization.yaml
sed -i "s|/media/Storage|$storage_path|g" ./kustomization.yaml
# Adjust the base path reference
sed -i "s|../../base|./base|g" ./kustomization.yaml
# Apply kustomize installation
kubectl kustomize ./ --enable-helm --load-restrictor LoadRestrictionsNone | kubectl apply -f -
# Clean up the local copy
rm ./kustomization.yaml
elif [ "$command" == "delete" ]; then
# Make a local copy of kustomization.yaml
cp ./overlays/microk8s/kustomization.yaml ./kustomization.yaml
# Adjust the base path reference
sed -i "s|../../base|./base|g" ./kustomization.yaml
# Delete kustomize installation
kubectl kustomize ./ --enable-helm --load-restrictor LoadRestrictionsNone | kubectl delete -f -
# Clean up the local copy
rm ./kustomization.yaml
else
echo "Usage: $0 {apply|delete} [-s <storage_path>] [-i <ip_address>]"
exit 1
fi

View File

@@ -1,43 +0,0 @@
#!/bin/bash
# Function to get the current network interface IP
get_ip_address() {
ip -4 addr show | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | head -n 1
}
# Parse command line arguments
while getopts ":s:i:" opt; do
case $opt in
s) storage_path="$OPTARG"
;;
i) ip_address="$OPTARG"
;;
\?) echo "Invalid option -$OPTARG" >&2
;;
esac
done
if [ -z "$storage_path" ]; then
echo "Usage: $0 -s <storage_path> [-i <ip_address>]"
exit 1
fi
if [ -z "$ip_address" ]; then
ip_address=$(get_ip_address)
fi
# Make a local copy of kustomization.yaml
cp ../overlays/microk8s/kustomization.yaml ./kustomization.yaml
# Replace placeholders in the local copy of kustomization.yaml
sed -i "s|localhost|$ip_address|g" ./kustomization.yaml
sed -i "s|/media/Storage|$storage_path|g" ./kustomization.yaml
# Adjust the base path reference
sed -i "s|../../base|../base|g" ./kustomization.yaml
# Apply kustomize installation
kubectl kustomize ./ --enable-helm --load-restrictor LoadRestrictionsNone | kubectl apply -f -
# Clean up the local copy
rm ./kustomization.yaml

View File

@@ -0,0 +1 @@
# Amazon DocumentDB

View File

@@ -0,0 +1,83 @@
metadata:
name: documentdb
resources:
- ../../base
patches:
- target:
kind: StorageClass
name: ssd-hostpath
patch: |-
- op: replace
path: /parameters/pvDir
value: /media/Storage
- target:
kind: Deployment
name: agent1
patch: |-
- op: replace
path: /spec/template/spec/containers/0/env/14/value
value: tcp://localhost:31883
- op: replace
path: /spec/template/spec/containers/0/env/17/value
value: turn:localhost:8443
- target:
kind: Job
name: hub-import-database-job
patch: |-
- op: replace
path: /spec/template/spec/initContainers/0/command
value: ["sh", "-c", "until nc -z docdb-x-x-x-x-x-x.xxx.xx-xx-x.docdb.amazonaws.com 27017 > /dev/null; do echo Waiting for master.; sleep 2; done;"]
- op: replace
path: /spec/template/spec/containers/0/command
value: ['sh', '-c', 'mongosh --host docdb-x-x-x-x-x-x.xxx.xx-xx-x.docdb.amazonaws.com:27017 --username xxxx --password "xxx" --authenticationDatabase admin --db Kerberos --file /data/hub-import.js']
helmCharts:
- name: hub
releaseName: hub
namespace: kerberos-hub
repo: https://charts.kerberos.io
version: 0.84.0
valuesFile: ../../base/hub/kerberos-hub-values.yaml
valuesInline:
license: "L/+FAwEBB2xpY2Vuc2UB/4YAAQIBB1BheWxvYWQBCgABCVNpZ25hdHVyZQEKAAAA/gMw/4YB/gEl/8wQACxnaXRodWIuY29tL3V1Zy1haS9odWItbGljZW5zZS9tb2RlbHMuTGljZW5zZf+BAwEBB0xpY2Vuc2UB/4IAAQwBAklkAf+EAAEDS2V5AQwAAQdDb21wYW55AQwAAQdFeHBUaW1lAQQAAQREYXlzAQQAAQdDYW1lcmFzAQQAAQVTaXRlcwEEAAEGVmF1bHRzAQQAAQpNZWRpYUxpbWl0AQQAAQlQZXJwZXR1YWwBAgABBkFjdGl2ZQECAAEJSXBBZGRyZXNzAQwAAAAY/4MBAQEIT2JqZWN0SUQB/4QAAQYBGAAAPf+COgEMAAAAAAAAAAAAAAAAAg9nZW5lcmljLWxpY2Vuc2UB+AJl6LAHsRMYAfoB0alKIAABEAEUARQDAQAB/gIAFlQqo9yJj1a3OH1+5iGjCPcz9VtrRuGfz/iuQEFohbCfSiZGAdHh16gEc59Z2kPaey+eJcwY0BQsBoipW7SwFRmcHkrWLuxt+Yzi2kvwmL4TN0quWqM4xxBzH1sejS6kZpPm7bw11JBsBuaNOYMbl5lgpPCFajWUH6GzfmuQlptNQKosocacI/9PaaqEUUM0ALjDZNSqqFwZPPsFh9WTeaHGbRbmwQRMPFDgaPCxiHnCCUagbvuVZeOQbKaR5gPTUfPQY/L4mrN9QnMxdzwUJgqm7FbTH4UhoZn6EEzNGTN6DbHhpx8lezzCRW8dzMNuK8R1igiORV5gdWOPzBMZlTgodIZRD07e8iAo2XqT/BWcqaJXutdqXltaiJKshh2QzStdv2WZUynVTguYIQJyBNhrXEkewKZA0UftcSemDPkCmp6VovMMveV4X3Cpzkm7ZHtE7j39At/kpuqY/icTEzRWYuQqEDtqXMVar84VOpgVhxeNrrqZniLq8o3ezRdwy0BJG5xT9cuMxq13ZB3Am9iqTSjx2mh5VZZeB33GjLVAtLscj8NoKWy7BThchXB9xwoiy2RLO8nE+EI8wPbg+ajb2Ta7AFyxHgJJU6cea+zEpiBMARwjPKqk2nn02xdfdqMzQ+E9e115sIqhotBM5RI7uBIf8DDwT93HLsJZRBAA"
mqtt:
host: "localhost"
port: "31080"
protocol: "ws"
username: "yourusername"
password: "yourpassword"
turn:
host: "turn:localhost:8443"
username: "username1"
password: "password1"
kerberoshub:
api:
url: "localhost:32081"
mongodb:
host: docdb-x-x-x-x-x-x.xxx.xx-xx-x.docdb.amazonaws.com:27017
adminDatabase: admin
authenticationMechanism: SCRAM-SHA-1
username: "xxx"
password: "xxx"
- name: mongodb
releaseName: mongodb
namespace: mongodb
repo: oci://registry-1.docker.io/bitnamicharts
valuesFile: ../../base/mongodb/mongodb-values.yaml
valuesInline:
global:
storageClass: "ssd-hostpath"
- name: rabbitmq
releaseName: rabbitmq
namespace: rabbitmq
repo: oci://registry-1.docker.io/bitnamicharts
valuesFile: ../../base/rabbitmq/rabbitmq-values.yaml
valuesInline:
global:
storageClass: "ssd-hostpath"
- name: vernemq
releaseName: vernemq
# For some reason it doesn't work with a namespace
#namespace: vernemq
repo: https://vernemq.github.io/docker-vernemq
valuesFile: ../../base/vernemq/vernemq-values.yaml

View File

@@ -26,10 +26,9 @@ helmCharts:
releaseName: hub
namespace: kerberos-hub
repo: https://charts.kerberos.io
version: 0.77.0
version: 0.84.0
valuesFile: ../../base/hub/kerberos-hub-values.yaml
valuesInline:
license: "L/+FAwEBB2xpY2Vuc2UB/4YAAQIBB1BheWxvYWQBCgABCVNpZ25hdHVyZQEKAAAA/gMw/4YB/gEl/8wQACxnaXRodWIuY29tL3V1Zy1haS9odWItbGljZW5zZS9tb2RlbHMuTGljZW5zZf+BAwEBB0xpY2Vuc2UB/4IAAQwBAklkAf+EAAEDS2V5AQwAAQdDb21wYW55AQwAAQdFeHBUaW1lAQQAAQREYXlzAQQAAQdDYW1lcmFzAQQAAQVTaXRlcwEEAAEGVmF1bHRzAQQAAQpNZWRpYUxpbWl0AQQAAQlQZXJwZXR1YWwBAgABBkFjdGl2ZQECAAEJSXBBZGRyZXNzAQwAAAAY/4MBAQEIT2JqZWN0SUQB/4QAAQYBGAAAPf+COgEMAAAAAAAAAAAAAAAAAg9nZW5lcmljLWxpY2Vuc2UB+AJl6LAHsRMYAfoB0alKIAABEAEUARQDAQAB/gIAFlQqo9yJj1a3OH1+5iGjCPcz9VtrRuGfz/iuQEFohbCfSiZGAdHh16gEc59Z2kPaey+eJcwY0BQsBoipW7SwFRmcHkrWLuxt+Yzi2kvwmL4TN0quWqM4xxBzH1sejS6kZpPm7bw11JBsBuaNOYMbl5lgpPCFajWUH6GzfmuQlptNQKosocacI/9PaaqEUUM0ALjDZNSqqFwZPPsFh9WTeaHGbRbmwQRMPFDgaPCxiHnCCUagbvuVZeOQbKaR5gPTUfPQY/L4mrN9QnMxdzwUJgqm7FbTH4UhoZn6EEzNGTN6DbHhpx8lezzCRW8dzMNuK8R1igiORV5gdWOPzBMZlTgodIZRD07e8iAo2XqT/BWcqaJXutdqXltaiJKshh2QzStdv2WZUynVTguYIQJyBNhrXEkewKZA0UftcSemDPkCmp6VovMMveV4X3Cpzkm7ZHtE7j39At/kpuqY/icTEzRWYuQqEDtqXMVar84VOpgVhxeNrrqZniLq8o3ezRdwy0BJG5xT9cuMxq13ZB3Am9iqTSjx2mh5VZZeB33GjLVAtLscj8NoKWy7BThchXB9xwoiy2RLO8nE+EI8wPbg+ajb2Ta7AFyxHgJJU6cea+zEpiBMARwjPKqk2nn02xdfdqMzQ+E9e115sIqhotBM5RI7uBIf8DDwT93HLsJZRBAA"
mqtt:
host: "localhost"
port: "31080"
@@ -43,6 +42,11 @@ helmCharts:
kerberoshub:
api:
url: "localhost:32081"
mongodb:
host: mongodb.mongodb
adminDatabase: admin
username: "root"
password: "yourpassword"
- name: mongodb
releaseName: mongodb
namespace: mongodb

View File

@@ -8,7 +8,7 @@ helmCharts:
releaseName: hub
namespace: kerberos-hub
repo: https://charts.kerberos.io
version: 0.77.0
version: 0.84.0
valuesFile: ../../base/hub/kerberos-hub-values.yaml
valuesInline:
kerberoshub: