mirror of
https://github.com/kerberos-io/deployment.git
synced 2026-08-23 15:18:32 +00:00
Compare commits
85 Commits
v1.2.0
...
public-rel
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a6101b4cf4 | ||
|
|
1b4c1f1b6c | ||
|
|
1911cd4d4d | ||
|
|
b5dff01923 | ||
|
|
60cfe2e331 | ||
|
|
b19365e9a5 | ||
|
|
7a13391a8a | ||
|
|
6bed1269de | ||
|
|
33270d2655 | ||
|
|
0bb4b9c381 | ||
|
|
ddef4397bb | ||
|
|
5786c5073e | ||
|
|
3162d1f915 | ||
|
|
6074c020f5 | ||
|
|
f87467b4fa | ||
|
|
ff78886fa5 | ||
|
|
ef95fcb752 | ||
|
|
55d8f58aa2 | ||
|
|
53a444849b | ||
|
|
795ac2735c | ||
|
|
f8935c266d | ||
|
|
3eb58faed1 | ||
|
|
1dd572a044 | ||
|
|
4eca2a165a | ||
|
|
88b9b016a1 | ||
|
|
8cf0c7453b | ||
|
|
e76fdbdc2c | ||
|
|
ac82305775 | ||
|
|
e3d74865f7 | ||
|
|
f3ff7c4c67 | ||
|
|
bf6eed584e | ||
|
|
9be4475ec0 | ||
|
|
b7d4b8bd83 | ||
|
|
d78e4adcf4 | ||
|
|
25172b8cb0 | ||
|
|
088e7f3600 | ||
|
|
f9b6c24e81 | ||
|
|
3d1d804c54 | ||
|
|
4f4512c332 | ||
|
|
18edad9b0d | ||
|
|
48975025bb | ||
|
|
48bbc7da4e | ||
|
|
c522cf1f51 | ||
|
|
2339cde1df | ||
|
|
80fe4c2057 | ||
|
|
3df31f6914 | ||
|
|
934429598b | ||
|
|
0d68c7be84 | ||
|
|
6de19cd487 | ||
|
|
fb6bf6844d | ||
|
|
e3a835360e | ||
|
|
15640363e2 | ||
|
|
52da738fd3 | ||
|
|
0843c80e22 | ||
|
|
93e3982c86 | ||
|
|
cfee18b876 | ||
|
|
4d2211b92b | ||
|
|
f758c17cc5 | ||
|
|
67672593da | ||
|
|
e736f8dd72 | ||
|
|
65628ed746 | ||
|
|
78cc37cbb9 | ||
|
|
9ebdb11b34 | ||
|
|
e8b4b72654 | ||
|
|
ec2ba23985 | ||
|
|
d059c6a051 | ||
|
|
ae9c09e342 | ||
|
|
5aac77dfbc | ||
|
|
8d23cb0946 | ||
|
|
c4197c4293 | ||
|
|
dc730670d8 | ||
|
|
647651082b | ||
|
|
24b071418b | ||
|
|
919ad7669a | ||
|
|
c240f1e83a | ||
|
|
8a6a92155b | ||
|
|
edf63802bc | ||
|
|
cf12ce78d5 | ||
|
|
9d0a6d4d71 | ||
|
|
1e574ffbbf | ||
|
|
3f8e104b3f | ||
|
|
03290c03c3 | ||
|
|
36bc47a10c | ||
|
|
47fcb7cfd9 | ||
|
|
1107c9509c |
7
.devcontainer/Dockerfile
Normal file
7
.devcontainer/Dockerfile
Normal 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
|
||||
22
.devcontainer/devcontainer.json
Normal file
22
.devcontainer/devcontainer.json
Normal 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"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
101
.github/workflows/k3d.yaml
vendored
101
.github/workflows/k3d.yaml
vendored
@@ -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
|
||||
97
.github/workflows/kind.yaml
vendored
97
.github/workflows/kind.yaml
vendored
@@ -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
43
.github/workflows/kustomize.yaml
vendored
Normal 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
|
||||
97
.github/workflows/microk8s.yaml
vendored
97
.github/workflows/microk8s.yaml
vendored
@@ -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
|
||||
|
||||
18
.github/workflows/pr-description.yml
vendored
18
.github/workflows/pr-description.yml
vendored
@@ -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
|
||||
|
||||
19
Dockerfile
19
Dockerfile
@@ -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
|
||||
@@ -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.
|
||||
|
||||

|
||||
|
||||
- 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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 }
|
||||
);
|
||||
);
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
14
base/ssd-hostpath-storageclass-openebs.yaml
Normal file
14
base/ssd-hostpath-storageclass-openebs.yaml
Normal 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
|
||||
@@ -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
64
configure.sh
Executable 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
|
||||
@@ -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
|
||||
1
modules/amazon-documentdb/README.md
Normal file
1
modules/amazon-documentdb/README.md
Normal file
@@ -0,0 +1 @@
|
||||
# Amazon DocumentDB
|
||||
83
overlays/documentdb/kustomization.yaml
Normal file
83
overlays/documentdb/kustomization.yaml
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user