mirror of
https://github.com/kerberos-io/deployment.git
synced 2026-08-23 15:18:32 +00:00
Compare commits
108 Commits
v1.1.0
...
2026-02-23
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b01604242f | ||
|
|
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 | ||
|
|
d9a22d6fe4 | ||
|
|
fe59c77895 | ||
|
|
512f0195b1 | ||
|
|
3b794c84a9 | ||
|
|
f71fb67958 | ||
|
|
d8b63d5510 | ||
|
|
5f1229c379 | ||
|
|
ecb7539f2e | ||
|
|
0e0c78dea6 | ||
|
|
aaeba402b9 | ||
|
|
fd252c134b | ||
|
|
b4441895d7 | ||
|
|
23efd91c02 | ||
|
|
f34cbb9cc0 | ||
|
|
a94738a02e | ||
|
|
7e4316020f | ||
|
|
a39c84a188 | ||
|
|
5b995772d1 | ||
|
|
78b23bb9a5 | ||
|
|
d7bf6b15d1 | ||
|
|
afae0d902c | ||
|
|
a9b14aee8f |
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
Normal file
19
Dockerfile
Normal file
@@ -0,0 +1,19 @@
|
||||
FROM ubuntu:latest
|
||||
LABEL maintainer="Cedric Verstraeten"
|
||||
|
||||
# Install curl
|
||||
RUN apt-get update && apt-get install -y curl
|
||||
|
||||
# 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)
|
||||
|
||||
@@ -45,28 +45,34 @@ To install MicroK8s on your system, follow these steps.
|
||||
su - $USER
|
||||
```
|
||||
|
||||
5. Check the status of MicroK8s. Ensure that MicroK8s is running correctly:
|
||||
5. After this, reload the user groups either via a reboot or by running 'newgrp microk8s'.
|
||||
|
||||
```bash
|
||||
newgrp microk8s
|
||||
```
|
||||
|
||||
6. Check the status of MicroK8s. Ensure that MicroK8s is running correctly:
|
||||
|
||||
```bash
|
||||
microk8s status --wait-ready
|
||||
```
|
||||
|
||||
6. Add an alias for kubectl as microk8s:
|
||||
7. Add an alias for kubectl as microk8s:
|
||||
|
||||
To simplify the usage of `kubectl` with MicroK8s, you can create an alias. This allows you to use the `kubectl` command without needing to prefix it with `microk8s.` every time. Add the following line to your shell configuration file (e.g., `.bashrc`, `.zshrc`):
|
||||
|
||||
```sh
|
||||
alias kubectl='microk8s kubectl'
|
||||
alias helm='microk8s helm'
|
||||
```
|
||||
|
||||
or use the `snap` command:
|
||||
|
||||
```sh
|
||||
sudo snap alias microk8s.kubectl kubectl
|
||||
sudo snap alias microk8s.helm helm
|
||||
```
|
||||
|
||||
or use the `alias` command:
|
||||
|
||||
```sh
|
||||
alias kubectl='microk8s kubectl'
|
||||
alias helm='microk8s helm'
|
||||
```
|
||||
|
||||
For more detailed instructions and troubleshooting, please refer to the official MicroK8s documentation.
|
||||
|
||||
## Dependencies
|
||||
@@ -95,34 +101,6 @@ Or view the pod status with:
|
||||
kubectl get po -w -A
|
||||
```
|
||||
|
||||
### Storage class
|
||||
|
||||
By default, the `hostpath-storage` module uses a dedicated directory on your filesystem. In most cases, you may prefer to use a dedicated hard drive for storing your recordings, database, and other data. To achieve this, you can create your own storage class and assign it to the desired directory. Create a file `ssd-hostpath-sc.yaml` with following contents.
|
||||
|
||||
```yaml
|
||||
kind: StorageClass
|
||||
apiVersion: storage.k8s.io/v1
|
||||
metadata:
|
||||
name: ssd-hostpath
|
||||
provisioner: microk8s.io/hostpath
|
||||
reclaimPolicy: Delete
|
||||
parameters:
|
||||
pvDir: /media/Storage
|
||||
volumeBindingMode: WaitForFirstConsumer
|
||||
```
|
||||
|
||||
Save the previously mentioned file `CTRL+O` and apply the Kubernetes resource.
|
||||
|
||||
```bash
|
||||
kubectl apply -f ssd-hostpath-sc.yaml
|
||||
```
|
||||
|
||||
You can verify the creation of the `storage class` using the following command. This `storage class` will be used in the subsequent installation steps, where each component, such as MongoDB, will create a `persistent volume` using the previously created `storage class`.
|
||||
|
||||
```bash
|
||||
kubectl get sc -A
|
||||
```
|
||||
|
||||
### Clone repository
|
||||
|
||||
Next, we will clone this repository to our local environment. This will allow us to execute the necessary configuration files for installing the Minio operator, MongoDB Helm chart, and other required components.
|
||||
@@ -136,21 +114,61 @@ 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.
|
||||
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:
|
||||
license: "L/+FAw...sJZRBAA"
|
||||
mqtt:
|
||||
host: "<ipaddress>"
|
||||
host: "localhost"
|
||||
port: "31080"
|
||||
protocol: "ws"
|
||||
...
|
||||
host: "turn:<ipaddress>:8443"
|
||||
host: "turn:localhost:8443"
|
||||
...
|
||||
kerberoshub:
|
||||
api:
|
||||
url: "<ipaddress>:32081"
|
||||
url: "localhost:32081"
|
||||
```
|
||||
|
||||
Within the deployment we are creating a new storage class, pointing to the desired location on disk to store database information, recordings and more. Change the `/media/Storage` value to point to the desired location.
|
||||
|
||||
```yaml
|
||||
patches:
|
||||
- target:
|
||||
kind: StorageClass
|
||||
name: ssd-hostpath
|
||||
patch: |-
|
||||
- op: replace
|
||||
path: /parameters/pvDir
|
||||
value: /media/Storage
|
||||
```
|
||||
|
||||
Run the modified overlay using the following command:
|
||||
@@ -182,9 +200,53 @@ customresourcedefinition.apiextensions.k8s.io/thanosrulers.monitoring.coreos.com
|
||||
...
|
||||
```
|
||||
|
||||
Verify the installation using the `kubectl` command, it might take some time until all the Kubernetes pods are spinned up. Once everything is stable you should be able to access Factory, Vault and Hub using the node ip address their designated node ports.
|
||||
Verify the installation using the `kubectl` command, it might take some time until all the Kubernetes pods are spinned up. Once everything is stable you should be able to access Factory, Vault and Hub using the node ip address their designated node ports. Continue with the [`configuration tutorial`](./README.configure.md) to start with the configuration and integration of the various tools.
|
||||
|
||||
Continue with the [`configuration tutorial`](./README.configure.md) to start with the configuration and integration of the various tools.
|
||||
### Install Turnserver
|
||||
|
||||
If installed and configured correctly, you should be able to access the various user interfaces and view live streams. However, to access the high-definition live view, it is necessary to install and configure a TURN server, such as coturn.
|
||||
|
||||
```bash
|
||||
sudo apt-get install -y coturn
|
||||
```
|
||||
|
||||
After installing, clear the contents of the `/etc/turnserver.conf` configuration file.
|
||||
|
||||
```bash
|
||||
sudo nano /etc/turnserver.conf
|
||||
```
|
||||
|
||||
Add following configuration and save the `turnserver.conf` file. Make sure to replace `<ip_address>` with the host IP address.
|
||||
|
||||
```conf
|
||||
listening-port=8443
|
||||
relay-ip=<ip_address>
|
||||
fingerprint
|
||||
lt-cred-mech
|
||||
user=username1:password1
|
||||
syslog
|
||||
```
|
||||
|
||||
Enable coturn on startup
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
|
||||
@@ -57,6 +57,18 @@ spec:
|
||||
value: AKIAxxxxxxG5Q
|
||||
- name: AGENT_HUB_PRIVATE_KEY
|
||||
value: K6rRLBI1xxxCk3C1H
|
||||
- name: AGENT_MQTT_URI
|
||||
value: tcp://localhost:31883
|
||||
- name: AGENT_MQTT_USERNAME
|
||||
value: yourusername
|
||||
- name: AGENT_MQTT_PASSWORD
|
||||
value: yourpassword
|
||||
- name: AGENT_TURN_URI
|
||||
value: turn:localhost:8443
|
||||
- name: AGENT_TURN_USERNAME
|
||||
value: username1
|
||||
- name: AGENT_TURN_PASSWORD
|
||||
value: password1
|
||||
# find full list of environment variables here: https://github.com/kerberos-io/agent#override-with-environment-variables
|
||||
#---
|
||||
#apiVersion: v1
|
||||
|
||||
@@ -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.
|
||||
@@ -101,15 +101,15 @@ kerberosvault:
|
||||
archive:
|
||||
provider: "minio"
|
||||
accesskey: "XJoi2@bgSOvOYBy#"
|
||||
secretkey: " OGGqat4lXRpL@9XBYc8FUaId@5"
|
||||
secretkey: "OGGqat4lXRpL@9XBYc8FUaId@5"
|
||||
thumbnail:
|
||||
provider: "minio"
|
||||
accessKey: "XJoi2@bgSOvOYBy#"
|
||||
secretKey: " OGGqat4lXRpL@9XBYc8FUaId@5"
|
||||
secretKey: "OGGqat4lXRpL@9XBYc8FUaId@5"
|
||||
sprite:
|
||||
provider: "minio"
|
||||
accessKey: "XJoi2@bgSOvOYBy#"
|
||||
secretKey: " OGGqat4lXRpL@9XBYc8FUaId@5"
|
||||
secretKey: "OGGqat4lXRpL@9XBYc8FUaId@5"
|
||||
email:
|
||||
provider: "mailgun"
|
||||
from: "support@yourdomain.com"
|
||||
@@ -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.19"
|
||||
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.39"
|
||||
tag: "v1.8.0"
|
||||
replicas: 1
|
||||
schema: "http"
|
||||
url: "yourdomain.com"
|
||||
@@ -267,7 +279,7 @@ kerberoshub:
|
||||
url: "https://posthog.domain.com"
|
||||
# You can disable the Kerberos agent buttons, this make sense
|
||||
# in a white-label setup, or where you are managing the Kerberos Agents for your customers.
|
||||
hideAddAgent: "false"
|
||||
hideAddAgent: "true"
|
||||
# Multi tenancy (domains)
|
||||
# By default the Kerberos Hub allows multi-tenancy through the concept
|
||||
# of accounts and subaccounts. However through the concept of domains, you
|
||||
@@ -288,16 +300,10 @@ kerberoshub:
|
||||
#volumeMounts:
|
||||
# - name: custom-layout
|
||||
# mountPath: /usr/share/nginx/html/assets/custom
|
||||
# - name: custom-favicon
|
||||
# mountPath: /usr/share/nginx/html/assets/favicon
|
||||
#volumes:
|
||||
# - name: custom-layout
|
||||
# persistentVolumeClaim:
|
||||
# claimName: custom-layout-claim
|
||||
# - name: custom-favicon
|
||||
# persistentVolumeClaim:
|
||||
# claimName: custom-favicon-claim
|
||||
|
||||
# By specifying the below environments variables, you can tweak the
|
||||
# headings and paragraphs of Kerberos Hub front-end.
|
||||
# Login page
|
||||
@@ -342,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
|
||||
@@ -369,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
|
||||
@@ -390,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
|
||||
@@ -402,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:
|
||||
@@ -414,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:
|
||||
@@ -426,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:
|
||||
@@ -438,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:
|
||||
@@ -450,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:
|
||||
@@ -470,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:
|
||||
@@ -490,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:
|
||||
@@ -502,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:
|
||||
@@ -514,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"
|
||||
@@ -531,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:
|
||||
@@ -543,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)
|
||||
@@ -556,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:
|
||||
|
||||
@@ -1,33 +1,30 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: data-filtering
|
||||
name: hub-yolov8
|
||||
labels:
|
||||
app: data-filtering
|
||||
app: hub-yolov8
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: data-filtering
|
||||
app: hub-yolov8
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: data-filtering
|
||||
app: hub-yolov8
|
||||
spec:
|
||||
containers:
|
||||
- name: data-filtering
|
||||
image: uugai/data-filter:1.0.4
|
||||
resources:
|
||||
limits:
|
||||
nvidia.com/gpu: 1 # requesting a single GPU
|
||||
- name: hub-yolov8
|
||||
image: uugai/hub-yolov8:latest
|
||||
#resources:
|
||||
# limits:
|
||||
# nvidia.com/gpu: 1 # requesting a single GPU
|
||||
env:
|
||||
- name: MODEL_NAME
|
||||
value: "yolov8n.pt"
|
||||
- name: CONDITION
|
||||
value: "1 persons detected"
|
||||
|
||||
- name: QUEUE_NAME
|
||||
value: "data-filtering" # This is the topic of kafka we will read messages from.
|
||||
value: "kcloud-classify-queue.fifo" # This is the topic of kafka we will read messages from.
|
||||
- name: TARGET_QUEUE_NAME
|
||||
value: "kcloud-analysis-queue" # Once we processed the recording with ML, we will send results/metadata to a target topic of Kafka.
|
||||
- name: QUEUE_HOST
|
||||
value: rabbitmq.rabbitmq:5672
|
||||
- name: QUEUE_EXCHANGE
|
||||
@@ -44,30 +41,58 @@ spec:
|
||||
- name: STORAGE_SECRET_KEY
|
||||
value: "OGGqat4lXRpL@9XBYc8FUaId@5"
|
||||
|
||||
|
||||
# YOLOv8 parameters
|
||||
- name: MODEL_NAME
|
||||
value: "yolov8n.pt"
|
||||
- name: MEDIA_SAVEPATH
|
||||
value: "/ml/data/input/video.mp4"
|
||||
|
||||
- name: LOGGING
|
||||
value: "True"
|
||||
- name: PLOT
|
||||
value: "False"
|
||||
- name: SAVE_VIDEO
|
||||
value: "False"
|
||||
- name: MEDIA_SAVEPATH
|
||||
value: "/ml/data/input/video.mp4"
|
||||
- name: OUTPUT_MEDIA_SAVEPATH
|
||||
value: "/ml/data/input/output_video.mp4"
|
||||
value: "path/to/your/output_video.mp4"
|
||||
|
||||
- name: CREATE_BBOX_FRAME
|
||||
value: "False"
|
||||
- name: SAVE_BBOX_FRAME
|
||||
value: "False"
|
||||
- name: BBOX_FRAME_SAVEPATH
|
||||
value: "path/to/your/output_bbox.jpg"
|
||||
|
||||
- name: CREATE_RETURN_JSON
|
||||
value: "True"
|
||||
- name: SAVE_RETURN_JSON
|
||||
value: "False"
|
||||
- name: RETURN_JSON_SAVEPATH
|
||||
value: "path/to/your/output_json.json"
|
||||
|
||||
- name: TIME_VERBOSE
|
||||
value: "True"
|
||||
|
||||
- name: CLASSIFICATION_FPS
|
||||
value: "3"
|
||||
value: "1"
|
||||
- name: CLASSIFICATION_THRESHOLD
|
||||
value: "0.3"
|
||||
- name: MIN_DETECTIONS
|
||||
value: "1"
|
||||
- name: MIN_DISTANCE
|
||||
value: "0"
|
||||
- name: MIN_STATIC_DISTANCE
|
||||
value: "0"
|
||||
- name: MAX_NUMBER_OF_PREDICTIONS
|
||||
value: "100"
|
||||
value: "10"
|
||||
- name: FIND_DOMINANT_COLORS
|
||||
value: "False"
|
||||
- name: ALLOWED_CLASSIFICATIONS
|
||||
value: "0, 1, 2, 3, 5, 7, 14, 15, 16, 24, 26, 28"
|
||||
|
||||
- name: FORWARDING_MEDIA
|
||||
value: "True"
|
||||
- name: REMOVE_AFTER_PROCESSED
|
||||
value: "True"
|
||||
- name: COLOR_PREDICTION_INTERVAL
|
||||
value: "5"
|
||||
- name: MIN_CLUSTERS
|
||||
value: "4"
|
||||
- name: MAX_CLUSTERS
|
||||
value: "4"
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
namespace: kerberos-hub
|
||||
resources:
|
||||
- kerberos-hub-nodeports.yaml
|
||||
- kerberos-hub-import-database-job.yaml
|
||||
- kerberos-hub-import-database-job.yaml
|
||||
- kerberos-hub-yolov8.yaml
|
||||
- ssd-hostpath-persistentvolumeclaim.yaml
|
||||
@@ -4,8 +4,8 @@ metadata:
|
||||
name: custom-layout-claim
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
storageClassName: azurefile-premium
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 25Mi
|
||||
storage: 100Mi
|
||||
storageClassName: ssd-hostpath
|
||||
@@ -1,4 +1,5 @@
|
||||
resources:
|
||||
- ssd-hostpath-storageclass.yaml
|
||||
- prometheus/base.yaml
|
||||
- namespaces
|
||||
- agent
|
||||
|
||||
@@ -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
|
||||
9
base/ssd-hostpath-storageclass.yaml
Normal file
9
base/ssd-hostpath-storageclass.yaml
Normal file
@@ -0,0 +1,9 @@
|
||||
kind: StorageClass
|
||||
apiVersion: storage.k8s.io/v1
|
||||
metadata:
|
||||
name: ssd-hostpath
|
||||
provisioner: microk8s.io/hostpath
|
||||
reclaimPolicy: Delete
|
||||
parameters:
|
||||
pvDir: /media/Storage
|
||||
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
|
||||
|
||||
@@ -13,6 +13,12 @@
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.92677 0.00271038C10.4021 -0.03219 10.836 0.273183 10.9635 0.732382L13.094 8.40217L13.4453 8.16798C13.6096 8.05846 13.8026 8.00003 14 8.00003H17C17.5523 8.00003 18 8.44774 18 9.00003C18 9.55231 17.5523 10 17 10H14.3028L13.0547 10.8321C12.7879 11.0099 12.4521 11.0491 12.1515 10.9374C11.851 10.8256 11.6223 10.5766 11.5365 10.2677L10.3729 6.07887L8.99228 17.1241C8.93316 17.597 8.54854 17.9624 8.07323 17.9973C7.59793 18.0322 7.16404 17.7269 7.03648 17.2677L4.90599 9.59789L4.5547 9.83208C4.39043 9.94159 4.19742 10 4 10H1C0.447715 10 0 9.55231 0 9.00003C0 8.44774 0.447715 8.00003 1 8.00003H3.69722L4.9453 7.16797C5.21207 6.99013 5.54794 6.95098 5.84846 7.0627C6.14898 7.17442 6.37771 7.42346 6.46352 7.73238L7.62707 11.9212L9.00772 0.875991C9.06684 0.403086 9.45146 0.0376109 9.92677 0.00271038Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
|
||||
/* Task activity log */
|
||||
window["env"]["svg"]["activity-task"] = `<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 2.25C0 2.01379 0.223858 1.75 0.5 1.75H2.5C2.77614 1.75 3 2.01379 3 2.25C3 2.48621 2.77614 2.75 2.5 2.75H0.5C0.223858 2.75 0 2.48621 0 2.25ZM4 2.25C4 2.01379 4.22386 1.75 4.5 1.75H14.5C14.7761 1.75 15 2.01379 15 2.25C15 2.48621 14.7761 2.75 14.5 2.75H4.5C4.22386 2.75 4 2.48621 4 2.25ZM4 5.25C4 5.01379 4.22386 4.75 4.5 4.75H11.5C11.7761 4.75 12 5.01379 12 5.25C12 5.48621 11.7761 5.75 11.5 5.75H4.5C4.22386 5.75 4 5.48621 4 5.25ZM0 8.25C0 8.01379 0.223858 7.75 0.5 7.75H2.5C2.77614 7.75 3 8.01379 3 8.25C3 8.48621 2.77614 8.75 2.5 8.75H0.5C0.223858 8.75 0 8.48621 0 8.25ZM4 8.25C4 8.01379 4.22386 7.75 4.5 7.75H14.5C14.7761 7.75 15 8.01379 15 8.25C15 8.48621 14.7761 8.75 14.5 8.75H4.5C4.22386 8.75 4 8.48621 4 8.25ZM4 11.25C4 11.0138 4.22386 10.75 4.5 10.75H11.5C11.7761 10.75 12 11.0138 12 11.25C12 11.4862 11.7761 11.75 11.5 11.75H4.5C4.22386 11.75 4 11.4862 4 11.25ZM0 14.25C0 14.0138 0.223858 13.75 0.5 13.75H2.5C2.77614 13.75 3 14.0138 3 14.25C3 14.4862 2.77614 14.75 2.5 14.75H0.5C0.223858 14.75 0 14.4862 0 14.25ZM4 14.25C4 14.0138 4.22386 13.75 4.5 13.75H14.5C14.7761 13.75 15 14.0138 15 14.25C15 14.4862 14.7761 14.75 14.5 14.75H4.5C4.22386 14.75 4 14.4862 4 14.25Z" fill="#A69D9D"/>
|
||||
</svg>`
|
||||
|
||||
/* Alerts */
|
||||
window["env"]["svg"]["alerts"] = `<svg class="icon icon-alerts" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 4C6.79086 4 5 5.79086 5 8V12H13V8C13 5.79086 11.2091 4 9 4ZM3 8C3 4.68629 5.68629 2 9 2C12.3137 2 15 4.68629 15 8V14H3V8Z" fill="currentColor"/>
|
||||
@@ -303,7 +309,7 @@
|
||||
<path d="M11 17H16C16.5523 17 17 16.5523 17 16V11" stroke="currentColor" stroke-width="2"/>
|
||||
<path d="M7 17H2C1.44772 17 1 16.5523 1 16V11" stroke="currentColor" stroke-width="2"/>
|
||||
</svg>`
|
||||
|
||||
|
||||
|
||||
/* Fullscreen close */
|
||||
window["env"]["svg"]["fullscreen-close"] = `<svg class="icon icon-fullscreen-close" <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
@@ -637,7 +643,7 @@
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 13C9.55228 13 10 12.5523 10 12V6C10 5.44772 9.55228 5 9 5C8.44772 5 8 5.44772 8 6V12C8 12.5523 8.44772 13 9 13Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 9C13 8.44772 12.5523 8 12 8L6 8C5.44772 8 5 8.44772 5 9C5 9.55229 5.44772 10 6 10L12 10C12.5523 10 13 9.55228 13 9Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
|
||||
|
||||
/* Plus circle ("add" button) */
|
||||
window["env"]["svg"]["play-circle"] = `<svg class="icon icon-play-circle" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
@@ -880,10 +886,83 @@
|
||||
<rect x="-448.5" y="-610.5" width="1860" height="1045" stroke="currentColor" stroke-width="3"/>
|
||||
</svg>`
|
||||
|
||||
|
||||
/* Video wall (navigation) */
|
||||
window["env"]["svg"]["videowall"] = `<svg class="icon icon-videowall" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 1C0 0.447715 0.447715 0 1 0H7C7.55228 0 8 0.447715 8 1V7C8 7.55228 7.55228 8 7 8H1C0.447715 8 0 7.55228 0 7V1ZM2 2V6H6V2H2Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 11C0 10.4477 0.447715 10 1 10H7C7.55228 10 8 10.4477 8 11V17C8 17.5523 7.55228 18 7 18H1C0.447715 18 0 17.5523 0 17V11ZM2 12V16H6V12H2Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 1C10 0.447715 10.4477 0 11 0H17C17.5523 0 18 0.447715 18 1V7C18 7.55228 17.5523 8 17 8H11C10.4477 8 10 7.55228 10 7V1ZM12 2V6H16V2H12Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 11C10 10.4477 10.4477 10 11 10H17C17.5523 10 18 10.4477 18 11V17C18 17.5523 17.5523 18 17 18H11C10.4477 18 10 17.5523 10 17V11ZM12 12V16H16V12H12Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17 4C17 5.65685 15.6569 7 14 7C12.3431 7 11 5.65685 11 4C11 2.34315 12.3431 1 14 1C15.6569 1 17 2.34315 17 4ZM13.4234 5.33486C13.3125 5.40617 13.1667 5.32653 13.1667 5.19467V2.80522C13.1667 2.67336 13.3125 2.59372 13.4234 2.66502L15.2819 3.85975C15.384 3.92535 15.384 4.07453 15.2819 4.14014L13.4234 5.33486Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17 14C17 15.6569 15.6569 17 14 17C12.3431 17 11 15.6569 11 14C11 12.3431 12.3431 11 14 11C15.6569 11 17 12.3431 17 14ZM13.4234 15.3349C13.3125 15.4062 13.1667 15.3265 13.1667 15.1947V12.8052C13.1667 12.6734 13.3125 12.5937 13.4234 12.665L15.2819 13.8597C15.384 13.9254 15.384 14.0745 15.2819 14.1401L13.4234 15.3349Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 4C7 5.65685 5.65685 7 4 7C2.34315 7 1 5.65685 1 4C1 2.34315 2.34315 1 4 1C5.65685 1 7 2.34315 7 4ZM3.42344 5.33486C3.31252 5.40617 3.16665 5.32653 3.16665 5.19467V2.80522C3.16665 2.67336 3.31252 2.59372 3.42344 2.66502L5.2819 3.85975C5.38395 3.92535 5.38395 4.07453 5.2819 4.14014L3.42344 5.33486Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 14C7 15.6569 5.65685 17 4 17C2.34315 17 1 15.6569 1 14C1 12.3431 2.34315 11 4 11C5.65685 11 7 12.3431 7 14ZM3.42344 15.3349C3.31252 15.4062 3.16665 15.3265 3.16665 15.1947V12.8052C3.16665 12.6734 3.31252 12.5937 3.42344 12.665L5.2819 13.8597C5.38395 13.9254 5.38395 14.0745 5.2819 14.1401L3.42344 15.3349Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* User (Profile > Edit profile) */
|
||||
window["env"]["svg"]["user"] = `<svg class="icon icon-user" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 2C7.89543 2 7 2.89543 7 4C7 5.10457 7.89543 6 9 6C10.1046 6 11 5.10457 11 4C11 2.89543 10.1046 2 9 2ZM5 4C5 1.79086 6.79086 0 9 0C11.2091 0 13 1.79086 13 4C13 6.20914 11.2091 8 9 8C6.79086 8 5 6.20914 5 4Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.9981 11.3995C5.29471 9.88675 7.08937 9 9 9C10.9106 9 12.7053 9.88675 14.0019 11.3995C15.2944 12.9074 16 14.9238 16 17C16 17.5523 15.5523 18 15 18L3 18C2.44772 18 2 17.5523 2 17C2 14.9238 2.70558 12.9074 3.9981 11.3995ZM9 11C7.72803 11 6.47044 11.5882 5.51662 12.701C4.75666 13.5877 4.24797 14.743 4.07017 16L13.9298 16C13.752 14.743 13.2433 13.5877 12.4834 12.701C11.5296 11.5882 10.272 11 9 11Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
})(this);
|
||||
/* Comments */
|
||||
window["env"]["svg"]["comments"] = `<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path clip-rule="evenodd" fill="#A69D9D" d="M9 17.25a1 1 0 0 1-1-1v-2.25H5.25a2 2 0 0 1-2-2V5.25a2 2 0 0 1 2-2h10.5a2 2 0 0 1 2 2v6.75a2 2 0 0 1-2 2h-3.075l-2.775 2.782c-.2.19-.45.293-.675.293zm.75-4.5v2.31L12.06 12.75h3.94V5.25H5.25v7.5zM2.25 11.25H.75V2.25a2 2 0 0 1 2-2h12V2.25H2.25z"/>
|
||||
</svg>`
|
||||
|
||||
/* Details */
|
||||
window["env"]["svg"]["details"] = `<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill="#A69D9D" d="M16 2.25H2a1 1 0 0 0-1 1v11.5a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V3.25a1 1 0 0 0-1-1zm0 12.5H2V3.25h14v11.5z"/>
|
||||
<path fill="#A69D9D" d="M4.5 8.25h9a.75.75 0 0 0 0-1.5h-9a.75.75 0 0 0 0 1.5zM4.5 10.25h9a.75.75 0 0 0 0-1.5h-9a.75.75 0 0 0 0 1.5zM4.5 12.25h5a.75.75 0 0 0 0-1.5h-5a.75.75 0 0 0 0 1.5z"/>
|
||||
</svg>`;
|
||||
|
||||
/* Dots */
|
||||
window["env"]["svg"]["dots"] = `<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M3.75 7.5C2.925 7.5 2.25 8.175 2.25 9C2.25 9.825 2.925 10.5 3.75 10.5C4.575 10.5 5.25 9.825 5.25 9C5.25 8.175 4.575 7.5 3.75 7.5ZM14.25 7.5C13.425 7.5 12.75 8.175 12.75 9C12.75 9.825 13.425 10.5 14.25 10.5C15.075 10.5 15.75 9.825 15.75 9C15.75 8.175 15.075 7.5 14.25 7.5ZM9 7.5C8.175 7.5 7.5 8.175 7.5 9C7.5 9.825 8.175 10.5 9 10.5C9.825 10.5 10.5 9.825 10.5 9C10.5 8.175 9.825 7.5 9 7.5Z" fill="black"/>
|
||||
</svg>`;
|
||||
|
||||
/* Label */
|
||||
window["env"]["svg"]["label"] = `<svg fill="#A69D9D" width="20" height="16" viewBox="0 0 20 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M2 16C1.45 16 0.979333 15.8043 0.588 15.413C0.196667 15.0217 0.000666667 14.5507 0 14V2C0 1.45 0.196 0.979333 0.588 0.588C0.98 0.196666 1.45067 0.000666667 2 0H13C13.3167 0 13.6167 0.0709998 13.9 0.213C14.1833 0.355 14.4167 0.550667 14.6 0.8L20 8L14.6 15.2C14.4167 15.45 14.1833 15.646 13.9 15.788C13.6167 15.93 13.3167 16.0007 13 16H7.5H2ZM2 14H13L17.5 8L13 2H2V14Z"/>
|
||||
</svg>`;
|
||||
|
||||
/* Settings */
|
||||
window["env"]["svg"]["settings"] = `<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill="currentColor" d="M14.5726 9.73502C14.6026 9.49502 14.6251 9.25502 14.6251 9.00002C14.6251 8.74502 14.6026 8.50502 14.5726 8.26502L16.1551 7.02752C16.2976 6.91502 16.3351 6.71252 16.2451
|
||||
6.54752L14.7451 3.95252C14.7009 3.87514 14.6306 3.81603 14.5467 3.7858C14.4629 3.75556 14.371 3.75617 14.2876 3.78752L12.4201 4.53752C12.0301 4.23752 11.6101 3.99002 11.1526 3.80252L10.8676 1.81502C10.8549 1.72691 10.8106
|
||||
1.64641 10.7431 1.58847C10.6755 1.53054 10.5891 1.49911 10.5001 1.50002H7.50012C7.31262 1.50002 7.15512 1.63502 7.13262 1.81502L6.84762 3.80252C6.39012 3.99002 5.97012 4.24502 5.58012 4.53752L3.71262 3.78752C3.66903 3.77318
|
||||
3.62351 3.76559 3.57762 3.76502C3.45012 3.76502 3.32262 3.83252 3.25512 3.95252L1.75512 6.54752C1.65762 6.71252 1.70262 6.91502 1.84512 7.02752L3.42762 8.26502C3.39762 8.50502 3.37512 8.75252 3.37512 9.00002C3.37512 9.24752
|
||||
3.39762 9.49502 3.42762 9.73502L1.84512 10.9725C1.70262 11.085 1.66512 11.2875 1.75512 11.4525L3.25512 14.0475C3.29934 14.1249 3.36966 14.184 3.4535 14.2142C3.53733 14.2445 3.6292 14.2439 3.71262 14.2125L5.58012 13.4625C5.97012
|
||||
13.7625 6.39012 14.01 6.84762 14.1975L7.13262 16.185C7.15512 16.365 7.31262 16.5 7.50012 16.5H10.5001C10.6876 16.5 10.8451 16.365 10.8676 16.185L11.1526 14.1975C11.6101 14.01 12.0301 13.755 12.4201 13.4625L14.2876 14.2125C14.3326
|
||||
14.2275 14.3776 14.235 14.4226 14.235C14.5501 14.235 14.6776 14.1675 14.7451 14.0475L16.2451 11.4525C16.3351 11.2875 16.2976 11.085 16.1551 10.9725L14.5726 9.73502ZM13.0876 8.45252C13.1176 8.68502 13.1251 8.84252 13.1251 9.00002C13.1251
|
||||
9.15752 13.1101 9.32252 13.0876 9.54752L12.9826 10.395L13.6501 10.92L14.4601 11.55L13.9351 12.4575L12.9826 12.075L12.2026 11.76L11.5276 12.27C11.2051 12.51 10.8976 12.69 10.5901 12.8175L9.79512 13.14L9.67512 13.9875L9.52512 15H8.47512L8.33262
|
||||
13.9875L8.21262 13.14L7.41762 12.8175C7.09512 12.6825 6.79512 12.51 6.49512 12.285L5.81262 11.76L5.01762 12.0825L4.06512 12.465L3.54012 11.5575L4.35012 10.9275L5.01762 10.4025L4.91262 9.55502C4.89012 9.32252 4.87512 9.15002 4.87512 9.00002C4.87512
|
||||
8.85002 4.89012 8.67752 4.91262 8.45252L5.01762 7.60502L4.35012 7.08002L3.54012 6.45002L4.06512 5.54252L5.01762 5.92502L5.79762 6.24002L6.47262 5.73002C6.79512 5.49002 7.10262 5.31002 7.41012 5.18252L8.20512 4.86002L8.32512 4.01252L8.47512 3.00002H9.51762L9.66012
|
||||
4.01252L9.78012 4.86002L10.5751 5.18252C10.8976 5.31752 11.1976 5.49002 11.4976 5.71502L12.1801 6.24002L12.9751 5.91752L13.9276 5.53502L14.4526 6.44252L13.6501 7.08002L12.9826 7.60502L13.0876 8.45252ZM9.00012 6.00002C7.34262 6.00002 6.00012 7.34252 6.00012 9.00002C6.00012
|
||||
10.6575 7.34262 12 9.00012 12C10.6576 12 12.0001 10.6575 12.0001 9.00002C12.0001 7.34252 10.6576 6.00002 9.00012 6.00002ZM9.00012 10.5C8.17512 10.5 7.50012 9.82502 7.50012 9.00002C7.50012 8.17502 8.17512 7.50002 9.00012 7.50002C9.82512 7.50002 10.5001 8.17502 10.5001 9.00002C10.5001 9.82502 9.82512 10.5 9.00012 10.5Z"/>
|
||||
</svg>`
|
||||
|
||||
/* Clock */
|
||||
window["env"]["svg"]["clock"] = `<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill="currentColor" d="M9 15C10.5913 15 12.1174 14.3679 13.2426 13.2426C14.3679 12.1174 15 10.5913 15 9C15 7.4087 14.3679 5.88258 13.2426 4.75736C12.1174 3.63214 10.5913 3 9 3C7.4087 3 5.88258 3.63214 4.75736 4.75736C3.63214 5.88258 3 7.4087 3 9C3 10.5913 3.63214 12.1174 4.75736 13.2426C5.88258 14.3679 7.4087 15 9 15ZM9 1.5C9.98491 1.5 10.9602 1.69399 11.8701 2.0709C12.7801 2.44781 13.6069 3.00026 14.3033 3.6967C14.9997 4.39314 15.5522 5.21993 15.9291 6.12987C16.306 7.03982 16.5 8.01509 16.5 9C16.5 10.9891 15.7098 12.8968 14.3033 14.3033C12.8968 15.7098 10.9891 16.5 9 16.5C4.8525 16.5 1.5 13.125 1.5 9C1.5 7.01088 2.29018 5.10322 3.6967 3.6967C5.10322 2.29018 7.01088 1.5 9 1.5ZM9.375 5.25V9.1875L12.75 11.19L12.1875 12.1125L8.25 9.75V5.25H9.375Z"/>
|
||||
</svg>`;
|
||||
|
||||
/* Light mode */
|
||||
window["env"]["svg"]["lightmode"] = `<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill="currentColor" d="M8 12C10.2091 12 12 10.2091 12 8C12 5.79086 10.2091 4 8 4C5.79086 4 4 5.79086 4 8C4 10.2091 5.79086 12 8 12Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path fill="currentColor" d="M14.667 8H15.3337" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path fill="currentColor" d="M8 1.33268V0.666016" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path fill="currentColor" d="M8 15.3327V14.666" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path fill="currentColor" d="M13.3337 13.3327L12.667 12.666" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path fill="currentColor" d="M13.3337 2.66602L12.667 3.33268" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path fill="currentColor" d="M2.66699 13.3327L3.33366 12.666" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path fill="currentColor" d="M2.66699 2.66602L3.33366 3.33268" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path fill="currentColor" d="M0.666992 8H1.33366" stroke="black" stroke-linecap="currentColor" stroke-linejoin="round"/>
|
||||
</svg>`;
|
||||
|
||||
/* Dark mode */
|
||||
window["env"]["svg"]["darkmode"] = `<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill="currentColor" d="M2 7.67107C2 11.1665 4.83356 14 8.32893 14C10.8139 14 12.9644 12.5679 14 10.4839C8.32893 10.4839 5.51607 7.67107 5.51607 2C3.43214 3.03563 2 5.1861 2 7.67107Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>`;
|
||||
|
||||
})(this);
|
||||
|
||||
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
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
|
||||
@@ -3,16 +3,32 @@ metadata:
|
||||
|
||||
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
|
||||
helmCharts:
|
||||
- name: hub
|
||||
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"
|
||||
@@ -26,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
|
||||
@@ -33,7 +54,7 @@ helmCharts:
|
||||
valuesFile: ../../base/mongodb/mongodb-values.yaml
|
||||
valuesInline:
|
||||
global:
|
||||
storageClass: "microk8s-hostpath"
|
||||
storageClass: "ssd-hostpath"
|
||||
- name: rabbitmq
|
||||
releaseName: rabbitmq
|
||||
namespace: rabbitmq
|
||||
@@ -41,7 +62,7 @@ helmCharts:
|
||||
valuesFile: ../../base/rabbitmq/rabbitmq-values.yaml
|
||||
valuesInline:
|
||||
global:
|
||||
storageClass: "microk8s-hostpath"
|
||||
storageClass: "ssd-hostpath"
|
||||
- name: vernemq
|
||||
releaseName: vernemq
|
||||
# For some reason it doesn't work with a namespace
|
||||
|
||||
@@ -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