30 Commits

Author SHA1 Message Date
Cédric Verstraeten
d9a22d6fe4 Merge pull request #10 from kerberos-io/public-release-1740756659
A new public release - 1740756659
2025-02-28 16:33:56 +01:00
uug4ai
fe59c77895 A new public release - 1740756659 2025-02-28 15:31:00 +00:00
Cedric Verstraeten
512f0195b1 update turn server config 2025-02-23 22:11:14 +01:00
Cedric Verstraeten
3b794c84a9 Update README.kustomize.md 2025-02-23 22:09:11 +01:00
Cedric Verstraeten
f71fb67958 add turn server configuration 2025-02-23 22:02:46 +01:00
Cedric Verstraeten
d8b63d5510 Update kustomization.yaml 2025-02-23 21:53:18 +01:00
Cedric Verstraeten
5f1229c379 replace MQTT_URI in agent 2025-02-23 21:52:09 +01:00
Cedric Verstraeten
ecb7539f2e Update kerberos-agent-deployment.yaml 2025-02-23 21:44:42 +01:00
Cedric Verstraeten
0e0c78dea6 Merge branch 'main' of https://github.com/kerberos-io/deployment 2025-02-23 21:32:25 +01:00
Cedric Verstraeten
aaeba402b9 update readme 2025-02-23 21:32:23 +01:00
uug.ai
fd252c134b Update icons.js 2025-02-23 21:07:26 +01:00
uug.ai
b4441895d7 Update icons.js 2025-02-23 21:04:59 +01:00
Cedric Verstraeten
23efd91c02 Update kerberos-hub-values.yaml 2025-02-23 20:30:33 +01:00
Cedric Verstraeten
f34cbb9cc0 Update kustomization.yaml 2025-02-23 20:18:47 +01:00
Cedric Verstraeten
a94738a02e add persistent volume claim 2025-02-23 20:00:04 +01:00
Cedric Verstraeten
7e4316020f Update full_installation.sh 2025-02-23 11:01:09 +01:00
Cedric Verstraeten
a39c84a188 Update full_installation.sh 2025-02-23 10:48:45 +01:00
Cedric Verstraeten
5b995772d1 replace with variables 2025-02-23 10:39:15 +01:00
Cedric Verstraeten
78b23bb9a5 Update README.kustomize.md 2025-02-23 10:21:12 +01:00
Cedric Verstraeten
d7bf6b15d1 move storage class in base and modify through overlay 2025-02-23 10:16:55 +01:00
Cedric Verstraeten
afae0d902c update yolov8 workload + fix issues credentials vault 2025-02-21 14:35:44 +01:00
Cedric Verstraeten
a9b14aee8f update yolov8 workload in deployment 2025-02-21 12:45:39 +01:00
Cédric Verstraeten
03075a90b8 Merge pull request #9 from kerberos-io/public-release-1739963582
A new public release - 1739963582
2025-02-19 12:14:24 +01:00
uug4ai
e790f713bd A new public release - 1739963582 2025-02-19 11:13:03 +00:00
Cedric Verstraeten
a5afeb6a8d Update README.kustomize.md 2025-02-19 09:26:12 +01:00
Cedric Verstraeten
9d87c58cbb downgrade resources 2025-02-19 08:17:46 +01:00
Cedric Verstraeten
a3dc846ca8 decrease resources 2025-02-19 08:12:12 +01:00
Cedric Verstraeten
45340390cc add kustomize tutorial + configure.md 2025-02-19 07:44:30 +01:00
Cedric Verstraeten
a8a2fb0ea3 add minio nodeports 2025-02-19 00:34:41 +01:00
Cedric Verstraeten
cd67f73700 remove minio, use microk8s instead, bucket creation on deployment 2025-02-19 00:07:18 +01:00
18 changed files with 612 additions and 209 deletions

8
Dockerfile Normal file
View File

@@ -0,0 +1,8 @@
FROM ubuntu:latest
LABEL maintainer="Cedric Verstraeten"
# Install dependencies
RUN apt-get update && apt-get install snapd snap-confine -y
# Install microk8s
RUN snap install microk8s --classic --channel=1.32/stable

0
README.configure.md Normal file
View File

View File

@@ -45,41 +45,48 @@ 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
When installing the Kerberos.io stack, several dependencies are required for storage, such as a database (e.g., MongoDB) and a message broker (e.g., RabbitMQ) for asynchronous behavior. We will install these components before setting up the Kerberos Agents and Kerberos Vault.
When deploying the various solutions, several dependencies are essential for storage, including a database (e.g., MongoDB) and a message broker (e.g., RabbitMQ) for asynchronous operations. These components must be installed prior to setting up the Agents, Factory, Vault, and Hub.
One of the key advantages of MicroK8s is its out-of-the-box addons, which can be enabled with a single command. This eliminates the need for complex Helm charts or operators, simplifying the setup process. We will enable some common services, such as DNS, GPU support, and storage, to streamline the installation.
One of the significant advantages of MicroK8s is its built-in addons, which can be enabled with a single command. This feature eliminates the need for complex Helm charts or operators, thereby simplifying the setup process. In this guide, we will enable several common services, such as DNS, GPU support, and storage, to streamline the installation. However, if you prefer more control, you may opt to manually install these components using their respective Helm charts or operators.
```bash
microk8s enable dns
microk8s enable dashboard
microk8s enable nvidia
microk8s enable hostpath-storage
microk8s enable minio
```
You can verify the status of the enabled addons by running the following command:
@@ -107,7 +114,98 @@ 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.
kubectl kustomize overlays/microk8s/ --enable-helm --load-restrictor LoadRestrictionsNone | kubectl apply -f -
Kustomize uses the concept of `bases` and `overlays`, allowing you to customize the base installation with different settings (an overlay). Before executing the `kustomize` command below, navigate to the `overlays/microk8s/kustomization.yaml` file and modify the `inlineValues` of the Hub to match the IP address of your node. Please note that when you use multipass, WSL or any other type of virtualisation, your IP address will be different than the IP address of your host machine. Verify your IP address using the `ifconfig` command.
```yaml
valuesInline:
license: "L/+FAw...sJZRBAA"
mqtt:
host: "localhost"
port: "31080"
protocol: "ws"
...
host: "turn:localhost:8443"
...
kerberoshub:
api:
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:
```bash
kubectl kustomize overlays/microk8s/ --enable-helm --load-restrictor LoadRestrictionsNone | kubectl apply -f -
```
Once the installation is running you should see something like following:
```bash
ubuntuvms@ubuntuvms:~/deployment$ kubectl kustomize overlays/microk8s/ --enable-helm --load-restrictor LoadRestrictionsNone | kubectl apply -f -
namespace/kerberos-agent unchanged
namespace/kerberos-factory unchanged
namespace/kerberos-hub unchanged
namespace/kerberos-vault unchanged
namespace/minio-tenant unchanged
namespace/mongodb unchanged
namespace/rabbitmq unchanged
namespace/vernemq unchanged
customresourcedefinition.apiextensions.k8s.io/alertmanagerconfigs.monitoring.coreos.com configured
customresourcedefinition.apiextensions.k8s.io/alertmanagers.monitoring.coreos.com configured
customresourcedefinition.apiextensions.k8s.io/podmonitors.monitoring.coreos.com configured
customresourcedefinition.apiextensions.k8s.io/probes.monitoring.coreos.com configured
customresourcedefinition.apiextensions.k8s.io/prometheuses.monitoring.coreos.com configured
customresourcedefinition.apiextensions.k8s.io/prometheusrules.monitoring.coreos.com configured
customresourcedefinition.apiextensions.k8s.io/servicemonitors.monitoring.coreos.com configured
customresourcedefinition.apiextensions.k8s.io/thanosrulers.monitoring.coreos.com configured
...
```
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.
### 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
```
## Cleanup
@@ -118,18 +216,6 @@ microk8s reset
sudo snap remove microk8s
```
or if you want to keep the Microk8s installation you can also delete the individual deployments.
```bash
kubectl delete -f data-filtering-deployment.yaml
kubectl delete -f kerberos-agent-deployment.yaml
kubectl delete -f ./kerberos-vault-deployment.yaml -n kerberos-vault
kubectl delete -f ./mongodb-config.yaml -n kerberos-vault
helm del rabbitmq -n rabbitmq
helm del mongodb -n mongodb
git clone --depth 1 --branch v6.0.1 https://github.com/minio/operator.git && kubectl delete -k operator/
```
You can confirm all the workloads were removed from your system.
```bash

View File

@@ -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

View File

@@ -27,11 +27,11 @@ spec:
image: "uugai/factory:v1.0.5"
resources:
requests:
memory: 256Mi
cpu: 500m
memory: 128Mi
cpu: 100m
limits:
memory: 256Mi
cpu: 500m
memory: 128Mi
cpu: 100m
ports:
- containerPort: 80
envFrom:

View File

@@ -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"
@@ -143,7 +143,7 @@ kerberoshub:
api:
repository: uugai/hub-api
pullPolicy: IfNotPresent
tag: "v1.0.16"
tag: "v1.0.22"
replicas: 1
jwtSecret: "I1JcwzW3A0t_THIS-IS_NOT_A_SECRET_WJK9jnPkipbnVTpf0efMy" # change to a random value, this is for generating JWT tokens.
schema: "http"
@@ -226,7 +226,7 @@ kerberoshub:
frontend:
repository: uugai/hub-frontend
pullPolicy: IfNotPresent
tag: "v1.0.35"
tag: "v1.0.41"
replicas: 1
schema: "http"
url: "yourdomain.com"
@@ -267,7 +267,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
@@ -285,19 +285,13 @@ kerberoshub:
# Custom layout: override css
# By providing a style.css file in the custom folder
# this file will override any css styling.
#volumeMounts:
# - name: custom-layout
# mountPath: /usr/share/nginx/html/assets/custom
# - 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
volumeMounts:
- name: custom-layout
mountPath: /usr/share/nginx/html/assets/custom
volumes:
- name: custom-layout
persistentVolumeClaim:
claimName: custom-layout-claim
# By specifying the below environments variables, you can tweak the
# headings and paragraphs of Kerberos Hub front-end.
# Login page
@@ -347,18 +341,18 @@ kerberoshub:
tag: "1.0.6436406806"
resources:
requests:
memory: 10Mi
cpu: 10m
memory: 50Mi
cpu: 50m
monitordevice:
repository: kerberos/hub-monitor-device
pullPolicy: IfNotPresent
tag: "1.0.6256190978"
resources:
requests:
memory: 100Mi
memory: 50Mi
cpu: 100m
limits:
memory: 100Mi
memory: 50Mi
cpu: 100m
# E-mail templates
#volumeMounts:
@@ -374,11 +368,11 @@ kerberoshub:
tag: "1.0.6256184527"
resources:
requests:
memory: 100Mi
cpu: 100m
memory: 50Mi
cpu: 50m
limits:
memory: 100Mi
cpu: 100m
memory: 50Mi
cpu: 50m
forwarder:
enabled: false
#repository: kerberos/vault-forwarder
@@ -395,11 +389,11 @@ kerberoshub:
tag: "1.0.2733724812"
resources:
requests:
memory: 100Mi
cpu: 100m
memory: 50Mi
cpu: 50m
limits:
memory: 100Mi
cpu: 100m
memory: 50Mi
cpu: 50m
kerberospipeline:
event:
repository: kerberos/pipe-event
@@ -408,11 +402,11 @@ kerberospipeline:
replicas: 1
resources:
requests:
memory: 100Mi
cpu: 100m
memory: 50Mi
cpu: 50m
limits:
memory: 100Mi
cpu: 100m
memory: 50Mi
cpu: 50m
monitor:
repository: uugai/hub-pipeline-monitor
pullPolicy: IfNotPresent
@@ -420,11 +414,11 @@ kerberospipeline:
replicas: 1
resources:
requests:
memory: 100Mi
cpu: 100m
memory: 50Mi
cpu: 50m
limits:
memory: 100Mi
cpu: 100m
memory: 50Mi
cpu: 50m
sequence:
repository: uugai/hub-pipeline-sequence
pullPolicy: IfNotPresent
@@ -432,11 +426,11 @@ kerberospipeline:
replicas: 1
resources:
requests:
memory: 100Mi
cpu: 100m
memory: 50Mi
cpu: 50m
limits:
memory: 100Mi
cpu: 100m
memory: 50Mi
cpu: 50m
throttler:
repository: kerberos/pipe-throttler
pullPolicy: IfNotPresent
@@ -444,11 +438,11 @@ kerberospipeline:
replicas: 1
resources:
requests:
memory: 100Mi
cpu: 100m
memory: 50Mi
cpu: 50m
limits:
memory: 100Mi
cpu: 100m
memory: 50Mi
cpu: 50m
notify:
repository: uugai/hub-pipeline-notification
pullPolicy: IfNotPresent
@@ -456,11 +450,11 @@ kerberospipeline:
replicas: 1
resources:
requests:
memory: 100Mi
cpu: 100m
memory: 50Mi
cpu: 50m
limits:
memory: 100Mi
cpu: 100m
memory: 50Mi
cpu: 50m
# E-mail templates
#volumeMounts:
# - name: custom-email-templates
@@ -476,11 +470,11 @@ kerberospipeline:
replicas: 1
resources:
requests:
memory: 100Mi
cpu: 100m
memory: 50Mi
cpu: 50m
limits:
memory: 100Mi
cpu: 100m
memory: 50Mi
cpu: 50m
# E-mail templates
#volumeMounts:
# - name: custom-email-templates
@@ -496,11 +490,11 @@ kerberospipeline:
replicas: 1
resources:
requests:
memory: 100Mi
cpu: 100m
memory: 50Mi
cpu: 50m
limits:
memory: 100Mi
cpu: 100m
memory: 50Mi
cpu: 50m
dominantColor:
repository: kerberos/pipe-dominantcolor
pullPolicy: IfNotPresent
@@ -508,11 +502,11 @@ kerberospipeline:
replicas: 1
resources:
requests:
memory: 512Mi
cpu: 250m
memory: 50Mi
cpu: 50m
limits:
memory: 512Mi
cpu: 250m
memory: 50Mi
cpu: 50m
thumbnail:
repository: kerberos/pipe-thumbnail
pullPolicy: IfNotPresent
@@ -525,11 +519,11 @@ kerberospipeline:
enabled: true # If you want to use Kerberos Vault to store the thumbnails
resources:
requests:
memory: 512Mi
cpu: 250m
memory: 50Mi
cpu: 50m
limits:
memory: 512Mi
cpu: 250m
memory: 50Mi
cpu: 50m
counting:
repository: kerberos/pipe-counting
pullPolicy: IfNotPresent
@@ -537,8 +531,8 @@ kerberospipeline:
replicas: 1
resources:
requests:
memory: 10Mi
cpu: 10m
memory: 50Mi
cpu: 50m
sprite:
enabled: true # Enable or disable the sprite generation 'true' or 'false
repository: uugai/hub-pipeline-sprite
@@ -550,11 +544,11 @@ kerberospipeline:
height: "135" # Should not be changed for the moment (hard coded in UI)
resources:
requests:
memory: 512Mi
cpu: 250m
memory: 50Mi
cpu: 50m
limits:
memory: 512Mi
cpu: 250m
memory: 50Mi
cpu: 50m
export:
repository: kerberos/pipe-export
pullPolicy: IfNotPresent
@@ -562,5 +556,5 @@ kerberospipeline:
replicas: 1
resources:
requests:
memory: 256Mi
cpu: 100m
memory: 50Mi
cpu: 50m

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -1,4 +1,5 @@
resources:
- ssd-hostpath-storageclass.yaml
- prometheus/base.yaml
- namespaces
- agent

View File

@@ -1,2 +1,4 @@
namespace: minio-tenant
resources:
- minio-tenant-base.yaml
- minio-tenant-base.yaml
- minio-nodeports.yaml

View File

@@ -0,0 +1,17 @@
---
apiVersion: v1
kind: Service
metadata:
name: minio-nodeport
labels:
app: myminio
spec:
type: NodePort
ports:
- port: 9000
targetPort: 9000
nodePort: 30090 # You can specify a port in the range 30000-32767 or let Kubernetes assign one automatically
name: myminio
protocol: TCP
selector:
v1.min.io/tenant: myminio

View File

@@ -1,13 +1,13 @@
#apiVersion: v1
#kind: Namespace
#metadata:
# name: minio-tenant
#---
apiVersion: v1
kind: Namespace
metadata:
name: minio-tenant
---
apiVersion: v1
kind: Secret
metadata:
name: storage-configuration
# namespace: minio-tenant
namespace: minio-tenant
stringData:
config.env: |-
export MINIO_ROOT_USER="minio"
@@ -29,77 +29,190 @@ type: Opaque
apiVersion: minio.min.io/v2
kind: Tenant
metadata:
name: myminio
namespace: minio-tenant
## Optionally pass labels to be applied to the statefulset pods
labels:
app: minio
## Optionally pass annotations to be applied to the statefulset pods
annotations:
prometheus.io/path: /minio/v2/metrics/cluster
prometheus.io/port: "9000"
prometheus.io/scrape: "true"
labels:
app: minio
name: myminio
# namespace: minio-tenant
## If a scheduler is specified here, Tenant pods will be dispatched by specified scheduler.
## If not specified, the Tenant pods will be dispatched by default scheduler.
# scheduler:
# name: my-custom-scheduler
spec:
certConfig: {}
features:
## Enable S3 specific features such as Bucket DNS which would allow `buckets` to be
## accessible as DNS entries of form `<bucketname>.minio.namespace.svc.cluster.local`
## This feature is turned off by default
bucketDNS: false
## Specify a list of domains used to access MinIO and Console
domains: { }
## Enable access via SFTP
## This feature is turned off by default
# enableSFTP: false
## Create users in the Tenant using this field. Make sure to create secrets per user added here.
## Secret should follow the format used in `minio-creds-secret`.
users:
- name: storage-user
## Create buckets using the console user
buckets:
- name: "mybucket"
## This field is used only when "requestAutoCert" is set to true. Use this field to set CommonName
## for the auto-generated certificate. Internal DNS name for the pod will be used if CommonName is
## not provided. DNS name format is *.minio.default.svc.cluster.local
certConfig: { }
## PodManagement policy for MinIO Tenant Pods. Can be "OrderedReady" or "Parallel"
## Refer https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#pod-management-policy
## for details.
podManagementPolicy: Parallel
## Secret with credentials and configurations to be used by MinIO Tenant.
configuration:
name: storage-configuration
env: []
externalCaCertSecret: []
externalCertSecret: []
externalClientCertSecrets: []
features:
bucketDNS: false
domains: {}
image: quay.io/minio/minio:RELEASE.2024-08-03T04-33-23Z
imagePullSecret: {}
## Add environment variables to be set in MinIO container (https://github.com/minio/minio/tree/master/docs/config)
env: [ ]
## serviceMetadata allows passing additional labels and annotations to MinIO and Console specific
## services created by the operator.
serviceMetadata:
minioServiceLabels: { }
minioServiceAnnotations: { }
consoleServiceLabels: { }
consoleServiceAnnotations: { }
## PriorityClassName indicates the Pod priority and hence importance of a Pod relative to other Pods.
## This is applied to MinIO pods only.
## Refer Kubernetes documentation for details https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass/
priorityClassName: ""
## Use this field to provide one or more external CA certificates. This is used by MinIO
## to verify TLS connections with other applications.
## Certificate secret files will be mounted under /tmp/certs/CAs folder, supported types:
## Opaque | kubernetes.io/tls | cert-manager.io/v1alpha2 | cert-manager.io/v1
##
## ie:
##
## externalCaCertSecret:
## - name: ca-certificate-1
## type: Opaque
## - name: ca-certificate-2
## type: Opaque
## - name: ca-certificate-3
## type: Opaque
##
## Create secrets as explained here:
## https://github.com/minio/minio/tree/master/docs/tls/kubernetes#2-create-kubernetes-secret
externalCaCertSecret: [ ]
## Use this field to provide one or more Secrets with external certificates. This can be used to configure
## TLS for MinIO Tenant pods.
## Certificate secret files will be mounted under /tmp/certs folder, supported types:
## Opaque | kubernetes.io/tls | cert-manager.io/v1alpha2 | cert-manager.io/v1
##
## ie:
##
## externalCertSecret:
## - name: domain-certificate-1
## type: kubernetes.io/tls
## - name: domain-certificate-2
## type: kubernetes.io/tls
## - name:domain-certificate-3
## type: kubernetes.io/tls
##
## Create secrets as explained here:
## https://github.com/minio/minio/tree/master/docs/tls/kubernetes#2-create-kubernetes-secret
externalCertSecret: [ ]
## Create secrets as explained here:
## https://github.com/minio/minio/tree/master/docs/tls/kubernetes#2-create-kubernetes-secret
externalClientCertSecrets: [ ]
## Registry location and Tag to download MinIO Server image
image: quay.io/minio/minio:RELEASE.2024-11-07T00-52-20Z
imagePullSecret: { }
## Mount path where PV will be mounted inside container(s).
mountPath: /export
podManagementPolicy: Parallel
## Sub path inside Mount path where MinIO stores data.
## WARNING:
## We recommend you to keep the same mountPath and the same subPath once the
## Tenant has been deployed over your different PVs.
## This is because if you change these values once Tenant is deployed, then
## you will end up with multiple paths for different buckets. So please, be
## very careful to keep same value for the life of the Tenant.
subPath: ""
## Service account to be used for all the MinIO Pods
serviceAccountName: ""
## Specification for MinIO Pool(s) in this Tenant.
pools:
- affinity:
nodeAffinity: {}
podAffinity: {}
podAntiAffinity: {}
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
runAsGroup: 1000
runAsNonRoot: true
runAsUser: 1000
seccompProfile:
type: RuntimeDefault
## Servers specifies the number of MinIO Tenant Pods / Servers in this pool.
## For standalone mode, supply 1. For distributed mode, supply 4 or more.
## Note that the operator does not support upgrading from standalone to distributed mode.
- servers: 1
## custom name for the pool
name: pool-0
nodeSelector: {}
resources: {}
securityContext:
fsGroup: 1000
fsGroupChangePolicy: OnRootMismatch
runAsGroup: 1000
runAsNonRoot: true
runAsUser: 1000
servers: 1
tolerations: []
topologySpreadConstraints: []
## Specify one or more Pod Topology Spread Constraints to apply to pods deployed in the MinIO pool.
## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints
topologySpreadConstraints: [ ]
## volumesPerServer specifies the number of volumes attached per MinIO Tenant Pod / Server.
volumesPerServer: 4
## nodeSelector parameters for MinIO Pods. It specifies a map of key-value pairs. For the pod to be
## eligible to run on a node, the node must have each of the
## indicated key-value pairs as labels.
## Read more here: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
nodeSelector: { }
## Used to specify a toleration for a pod
tolerations: [ ]
## Affinity settings for MinIO pods. Read more about affinity
## here: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity.
affinity:
nodeAffinity: { }
podAffinity: { }
podAntiAffinity: { }
## Configure resource requests and limits for MinIO containers
resources: { }
## This VolumeClaimTemplate is used across all the volumes provisioned for MinIO Tenant in this
## Pool.
volumeClaimTemplate:
apiVersion: v1
kind: persistentvolumeclaims
metadata: {}
metadata: { }
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Ti
storageClassName: openebs-hostpath
status: {}
volumesPerServer: 4
priorityClassName: ""
storageClassName: "ssd-hostpath"
status: { }
## Configure Pod's security context
## We recommend to skip the recursive permission change by using
## fsGroupChangePolicy as OnRootMismatch because it can be pretty
## expensive for larger volumes with lots of small files.
securityContext:
runAsUser: 1000
runAsGroup: 1000
runAsNonRoot: true
fsGroup: 1000
fsGroupChangePolicy: "OnRootMismatch"
## Configure container security context
containerSecurityContext:
runAsUser: 1000
runAsGroup: 1000
runAsNonRoot: true
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
seccompProfile:
type: RuntimeDefault
## Enable automatic Kubernetes based certificate generation and signing as explained in
## https://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster
requestAutoCert: false
serviceAccountName: ""
serviceMetadata:
consoleServiceAnnotations: {}
consoleServiceLabels: {}
minioServiceAnnotations: {}
minioServiceLabels: {}
subPath: ""
users:
- name: storage-user
# The minimum number of days to expiry before an alert for an expiring certificate is fired.
# In the below example, if a given certificate will expire in 7 days then expiration events will only be triggered 1 day before expiry
# certExpiryAlertThreshold: 1
## Prometheus Operator's Service Monitor for MinIO Tenant Pods.
# prometheusOperator:
# labels:
# app: minio-sm
## Audit Logs will be deprecated soon, commenting out for now!.

View 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

View File

@@ -27,11 +27,11 @@ spec:
image: uugai/vault:v1.0.14
resources:
requests:
memory: 512Mi
cpu: 256m
memory: 128Mi
cpu: 100m
limits:
memory: 512Mi
cpu: 256m
memory: 128Mi
cpu: 100m
ports:
- containerPort: 80
envFrom:

View File

@@ -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);

View File

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

View File

@@ -3,7 +3,24 @@ 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
@@ -33,7 +50,7 @@ helmCharts:
valuesFile: ../../base/mongodb/mongodb-values.yaml
valuesInline:
global:
storageClass: "microk8s-hostpath"
storageClass: "ssd-hostpath"
- name: rabbitmq
releaseName: rabbitmq
namespace: rabbitmq
@@ -41,15 +58,10 @@ 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
#namespace: vernemq
repo: https://vernemq.github.io/docker-vernemq
valuesFile: ../../base/vernemq/vernemq-values.yaml
- name: minio-operator
releaseName: minio-operator
# For some reason it doesn't work with a namespace
#namespace: minio
repo: https://operator.min.io
valuesFile: ../../base/vernemq/vernemq-values.yaml