Compare commits

...
Author SHA1 Message Date
Cedric Verstraeten 3143384c1f upgrade to 0.82.0 2025-03-07 17:27:08 +01:00
Cedric Verstraeten 0cee9420cc enable oauth proxy 2025-03-07 17:05:13 +01:00
Cédric Verstraeten e92fa41437 Merge pull request #34 from kerberos-io/fix/admin-service-reference
Upgrade to 0.80.0 and change reference
2025-03-07 14:18:53 +01:00
Cedric Verstraeten 08b06d5ba0 upgrade to 0.80.0 and change reference 2025-03-07 14:07:57 +01:00
Cédric Verstraeten 63fcb3e0a4 Merge pull request #33 from kerberos-io/feature/add-admin-panel
Feature/add admin panel
2025-03-07 13:42:59 +01:00
Cedric Verstraeten 28087cb072 Update Chart.yaml 2025-03-07 13:42:27 +01:00
Cedric Verstraeten 39fb2a11f2 fix service.yaml 2025-03-07 13:29:20 +01:00
Cedric Verstraeten 0a26eb00b3 fix ingress templating 2025-03-07 12:23:36 +01:00
Cedric Verstraeten 9afc0e7e97 add admin deployment, ingress, service, and oauth2-proxy templates 2025-03-07 11:25:27 +01:00
Cedric Verstraeten 764c580962 add admin panel to helm chart + cleanup values.yaml 2025-03-07 11:22:51 +01:00
Cédric Verstraeten f0d544c009 Merge pull request #32 from kerberos-io/feature/add-authentication-mechanism
Add authentication mechanism
2025-03-06 13:13:14 +01:00
Cédric Verstraeten 903bf847af Merge pull request #31 from kerberos-io/public-release-1740815636
A new public release - 1740815640
2025-03-06 13:06:14 +01:00
Cedric Verstraeten 926c59ac48 add authentication mechanism 2025-03-06 12:59:21 +01:00
uug4ai 57881d35c2 A new public release - 1740815640 2025-03-01 07:54:00 +00:00
Cédric Verstraeten 6964daed46 Merge pull request #30 from kerberos-io/public-release-1740756659
A new public release - 1740756663
2025-02-28 16:37:50 +01:00
Cédric Verstraeten 818bad12c7 Merge pull request #29 from kerberos-io/cedricve-patch-1
Add dark and light mode icon
2025-02-28 16:35:55 +01:00
uug4ai ed003dfb13 A new public release - 1740756663 2025-02-28 15:31:03 +00:00
Cédric Verstraeten ba5d74e719 add dark and light mode icon 2025-02-19 14:42:09 +01:00
Cédric Verstraeten 2c10d6eace Merge pull request #28 from kerberos-io/public-release-1739963582
A new public release - 1739963586
2025-02-19 14:40:29 +01:00
uug4ai b19aa8af9f A new public release - 1739963586 2025-02-19 11:13:06 +00:00
Cédric Verstraeten 17fb252380 Merge pull request #27 from kerberos-io/public-release-1739395154
A new public release - 1739395158
2025-02-12 22:21:03 +01:00
uug4ai 794f424fe2 A new public release - 1739395158 2025-02-12 21:19:18 +00:00
20 changed files with 396 additions and 66 deletions
+2 -2
View File
@@ -16,10 +16,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.77.0
version: 0.82.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.3.0"
appVersion: "3.3.0"
+19 -1
View File
@@ -886,4 +886,22 @@
<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);
/* 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);
@@ -0,0 +1,41 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: admin
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.admin.replicas }}
selector:
matchLabels:
app: admin
template:
metadata:
labels:
app: admin
spec:
containers:
- name: admin
image: "{{ .Values.global.imageRegistry }}{{ .Values.admin.repository }}:{{ .Values.admin.tag }}"
imagePullPolicy: {{ .Values.admin.pullPolicy }}
{{- with .Values.admin.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
ports:
- name: http
containerPort: 80
protocol: TCP
env:
- name: API_URL
value: "{{ .Values.kerberoshub.api.schema }}://{{ .Values.kerberoshub.api.url }}"
- name: TITLE
value: Hub Admin | Scale for everyone, anywhere
- name: LOGO_NAME
- name: ENVIRONMENT
value: staging
- name: PRIVATE_EDITION
value: "false"
- name: PRODUCTION
value: "true"
- name: DEMO
value: "false"
+50
View File
@@ -0,0 +1,50 @@
{{ if ne .Values.ingress "" }}
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
apiVersion: networking.k8s.io/v1
{{- else }}
apiVersion: networking.k8s.io/v1beta1
{{- end }}
kind: Ingress
metadata:
name: admin-ingress
namespace: {{ .Release.Namespace }}
annotations:
{{- if eq .Values.admin.oauth2Proxy.enabled true }}
nginx.ingress.kubernetes.io/auth-url: "https://$host/oauth2/auth"
nginx.ingress.kubernetes.io/auth-signin: "https://$host/oauth2/start?rd=$escaped_request_uri"
{{- end }}
{{- if eq .Values.ingress "nginx" }}
kubernetes.io/tls-acme: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
cert-manager.io/cluster-issuer: "letsencrypt-prod"
{{- end }}
spec:
ingressClassName: {{ .Values.ingress }}
{{- with .Values.admin.tls }}
tls:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
rules:
- host: "{{ .Values.admin.url }}"
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: admin-svc
port:
number: 80
{{- else }}
rules:
- host: "{{ .Values.admin.url }}"
http:
paths:
- path: /
backend:
serviceName: admin-svc
servicePort: 80
{{- end }}
{{- end }}
@@ -0,0 +1,96 @@
{{- if eq .Values.admin.oauth2Proxy.enabled true }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: oauth2-proxy-admin
namespace: kube-system
annotations:
{{- if eq .Values.ingress "nginx" }}
cert-manager.io/cluster-issuer: letsencrypt-prod
kubernetes.io/tls-acme: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/enable-cors: "true"
{{- end }}
spec:
ingressClassName: {{ .Values.ingress }}
rules:
- host: "{{ .Values.admin.url }}"
http:
paths:
- path: /oauth2
pathType: Prefix
backend:
service:
name: oauth2-proxy-admin
port:
number: 4180
tls:
- hosts:
- "{{ .Values.admin.url }}"
secretName:
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: oauth2-proxy-admin
namespace: kube-system
labels:
k8s-app: oauth2-proxy-admin
spec:
replicas: 1
selector:
matchLabels:
k8s-app: oauth2-proxy-admin
template:
metadata:
labels:
k8s-app: oauth2-proxy-admin
spec:
containers:
- args:
- --provider=github
- --email-domain=*
- --upstream=file:///dev/null
- --http-address=0.0.0.0:4180
- --skip-auth-preflight=true
env:
- name: OAUTH2_PROXY_CLIENT_ID
value: "{{ .Values.admin.oauth2Proxy.github.clientId }}"
- name: OAUTH2_PROXY_CLIENT_SECRET
value: "{{ .Values.admin.oauth2Proxy.github.clientSecret }}"
- name: OAUTH2_PROXY_COOKIE_SECRET
value: "{{ .Values.admin.oauth2Proxy.github.cookieSecret }}"
- name: OAUTH2_PROXY_GITHUB_ORG
value: "{{ .Values.admin.oauth2Proxy.github.organization }}"
- name: OAUTH2_PROXY_GITHUB_TEAM
value: "{{ .Values.admin.oauth2Proxy.github.team }}"
image: quay.io/oauth2-proxy/oauth2-proxy:latest
imagePullPolicy: Always
name: oauth2-proxy
ports:
- containerPort: 4180
protocol: TCP
resources:
limits:
cpu: 100m
memory: 50Mi
requests:
cpu: 100m
memory: 50Mi
---
apiVersion: v1
kind: Service
metadata:
labels:
k8s-app: oauth2-proxy-admin
name: oauth2-proxy-admin
namespace: kube-system
spec:
ports:
- name: http
port: 4180
protocol: TCP
targetPort: 4180
selector:
k8s-app: oauth2-proxy-admin
{{- end -}}
+15
View File
@@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
name: admin-svc
namespace: {{ .Release.Namespace }}
labels:
app: admin-svc
spec:
ports:
- protocol: TCP
port: 80
targetPort: 80
name: http
selector:
app: admin
@@ -270,6 +270,8 @@ spec:
value: "{{ .Values.mongodb.uri }}"
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_AUTHENTICATION_MECHANISM
value: "{{ .Values.mongodb.authenticationMechanism }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
@@ -42,6 +42,8 @@ spec:
value: "{{ .Values.mongodb.uri }}"
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_AUTHENTICATION_MECHANISM
value: "{{ .Values.mongodb.authenticationMechanism }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
@@ -49,6 +49,8 @@ spec:
value: "{{ .Values.mongodb.uri }}"
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_AUTHENTICATION_MECHANISM
value: "{{ .Values.mongodb.authenticationMechanism }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
@@ -34,6 +34,8 @@ spec:
value: "{{ .Values.mongodb.uri }}"
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_AUTHENTICATION_MECHANISM
value: "{{ .Values.mongodb.authenticationMechanism }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
@@ -42,6 +42,8 @@ spec:
value: "{{ .Values.mongodb.uri }}"
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_AUTHENTICATION_MECHANISM
value: "{{ .Values.mongodb.authenticationMechanism }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
@@ -46,6 +46,8 @@ spec:
value: "{{ .Values.mongodb.uri }}"
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_AUTHENTICATION_MECHANISM
value: "{{ .Values.mongodb.authenticationMechanism }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
@@ -44,6 +44,8 @@ spec:
value: "{{ .Values.mongodb.uri }}"
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_AUTHENTICATION_MECHANISM
value: "{{ .Values.mongodb.authenticationMechanism }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
@@ -37,6 +37,8 @@ spec:
value: "{{ .Values.mongodb.uri }}"
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_AUTHENTICATION_MECHANISM
value: "{{ .Values.mongodb.authenticationMechanism }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
@@ -48,6 +48,8 @@ spec:
value: "{{ .Values.mongodb.uri }}"
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_AUTHENTICATION_MECHANISM
value: "{{ .Values.mongodb.authenticationMechanism }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
@@ -45,6 +45,8 @@ spec:
value: "{{ .Values.mongodb.uri }}"
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_AUTHENTICATION_MECHANISM
value: "{{ .Values.mongodb.authenticationMechanism }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
@@ -42,6 +42,8 @@ spec:
value: "{{ .Values.mongodb.uri }}"
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_AUTHENTICATION_MECHANISM
value: "{{ .Values.mongodb.authenticationMechanism }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
@@ -42,6 +42,8 @@ spec:
value: "{{ .Values.mongodb.uri }}"
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_AUTHENTICATION_MECHANISM
value: "{{ .Values.mongodb.authenticationMechanism }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
@@ -45,6 +45,8 @@ spec:
value: "Kerberos"
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_AUTHENTICATION_MECHANISM
value: "{{ .Values.mongodb.authenticationMechanism }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
+147 -63
View File
@@ -1,38 +1,48 @@
# Default values for kerberoshub.
# Default values for hub.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
###########################################################################
# LICENSING information: you will a license to run Kerberos Hub.
# ----
# 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)
#######################################################
# LICENSING information: you will a license to run Hub.
# Get your license from support@kerberos.io or
# use the 8 camera license for testing.
#######################################################
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"
licenseServer:
url: "https://license.kerberos.io/verify"
token: "214%ˆ#ddfsf@#3rfdsgl_)23sffeqasSwefDSFNBM" # do not change otherwise Kerberos Hub will not work.
url: ""
token: ""
###########################################################################
# # Environment: set to 'production', 'develop', 'demo', 'staging' or 'acceptance'.
# Change the environment to 'staging' or 'acceptance' will add a banner on the
# front-end, to indicate the environment.
###########################################################################
environment: "production"
isPrivate: true # Set to 'true' if this is a private deployment.
readOnly: false # Set to 'true' to halt all write operations to the database (e.g. migration, etc).
###########################################################################
# Global configuration
###########################################################################
global:
imageRegistry: "docker.io/"
# Private Docker Registry: The registry secret is required if you have your Docker images behind a private registry.
# By default it will pull from Docker hub (https://hub.docker.com/r/kerberos).
#imagePullSecrets:
# - name: regcred
# Environment: set to 'production', 'develop', 'demo', 'staging' or 'acceptance'.
# Change the environment to 'staging' or 'acceptance' will add a banner on the
# front-end, to indicate the environment.
environment: "production"
# Set to 'true' if this is a private deployment.
isPrivate: true
# If you plan a migration or doing maintenance, you can enable readonly.
# This will stop any write process to mongodb or any processing done in the Kerberos Hub pipeline.
readOnly: false
# Which network ingress you are using in your Kubernetes Cluster
ingress: "nginx" # or "traefik"
# A mongodb instance is required to store all the relevant metadata (this can be standalone or in a cluster).
#########################################
# Database configuration (metadata store)
#########################################
mongodb:
# MongoDB URI (for example for a SaaS service like MongoDB Atlas)
# If uri is set, the below properties are not used (host, adminDatabase, username, password)
@@ -41,11 +51,16 @@ mongodb:
# Self-hosted mongodb, you could also use the uri property above.
host: mongodb.mongodb
adminDatabase: admin
authenticationMechanism: SCRAM-SHA-256
username: yourusername
password: "yourpassword"
# A MQTT broker (vernemq or other like mosquitto) is used to have a bi-directional
# communication between Kerberos Agents and Kerberos Hub.
# we recommend to use vernemq (as part of this installation), but a stand-alone mosquitto broker is also possible.
###################################################
# MQTT configuration (bi-directional communication)
###################################################
# A MQTT broker (vernemq or other like mosquitto) is used to have a bi-directional communication between Agents and Hub.
# We recommend to use VernemQ (as part of this installation), but a stand-alone mosquitto broker is also possible.
mqtt:
host: "mqtt.yourdomain.com" # this needs to be a public accessible DNS name (it's used to communicate between Kerberos Agents and Kerberos Hub)
port: "8443"
@@ -55,6 +70,15 @@ mqtt:
legacy:
host: ""
port: ""
################################################################
# AMQP configuration (asynchronous processing for microservices)
#
# Usecases:
# - Hub pipeline: each time a recording is created, a message is
# send to the pipeline to process the recording.
################################################################
# We are using a pipeline that is orchestrated through Kafka topics or RabbitMQ queues
# Events are send back and forth until the processing is done.
queueProvider: "RABBITMQ" # or "KAFKA"
@@ -74,18 +98,35 @@ kafka:
password: "yourpassword"
mechanism: "PLAIN"
security: "SASL_PLAINTEXT"
############################################
# TURN/STUN configuration (live streaming)
#
# Usecases:
# - WebRTC: for live streaming in full HD.
############################################
# For allowing WEBRTC a STUN and TURN server is required.
# You might want to install coturn in a seperate VM.
# -> https://help.hcltechsw.com/sametime/11.6/admin/turnserver_ubuntu.html
turn:
host: "turn:turn.yourdomain.com:8443" # this needs to be a public accessible DNS name.
username: "username1"
password: "password1"
# (optional) OpenAI integration, used for semantic search
# Langchain is used to translate text to a filter on the media page
############################################
# OpenAI configuration (semantic search)
#
# Usecases:
# - Semantic search: search for recordings based on text.
############################################
openai:
enabled: false
apikey: "xxx"
# We have a kerberos vault component installed which contains all the
# recordings. Kerberos vault is queried to retrieve the recordings
# from the appropriate provider.
@@ -109,42 +150,42 @@ kerberosvault:
provider: "a-sprite-provider"
accessKey: "xxx"
secretKey: "xxx"
email:
provider: "mailgun"
from: "support@yourdomain.com"
displayName: "yourdomain.com"
mailgun:
domain: "mg.yourdomain.com"
apikey: "xxxx"
smtp:
server: "smtp.yourdomain.com"
port: "465"
username: "yourusername"
password: "yourpassword"
templates:
welcome: "welcome"
welcomeTitle: "Welcome to Kerberos Hub"
activate: "activate"
activateTitle: "Wonderful! Your Kerberos Hub is now active"
forgot: "forgot"
forgotTitle: "Password reset Kerberos Hub. You forgot your password"
share: "share"
shareTitle: "[Action] You received a recording from Kerberos Hub"
assignTask: "assign_task"
assignTaskTitle: "[Action] You've been assigned to a task"
detection: "detection"
disabled: "disabled"
highupload: "highupload"
device: "device"
alertTitle: "[Alert] Kerberos Hub detected something an event"
deviceTitle: "[Device] A Kerberos Agent's status has been changed"
###########################################################################
# Administration panel for managing the Hub database (and more in future).
# For now it's used to create, edit users for Hub.
###########################################################################
admin:
repository: uugai/admin
pullPolicy: IfNotPresent
tag: "v1.1.0"
replicas: 2
resources:
requests:
memory: 100Mi
cpu: 250m
url: "admin.yourdomain.com"
tls:
- hosts:
- "admin.yourdomain.com"
secretName: admin
oauth2Proxy:
enabled: false
github:
clientId: "github-client-id"
clientSecret: "github-client-secret"
cookieSecret: "generate-a-random-cookie-secret"
organization: "github-organization"
team: "github-team"
# Following are all the different deployments needed to make
# Kerberos hub properly working.
kerberoshub:
api:
repository: uugai/hub-api
pullPolicy: IfNotPresent
tag: "v1.0.7"
tag: "v1.0.22"
replicas: 2
jwtSecret: "this-is-a-secret-please-change-to-random-string" # change to a random value, this is for generating JWT tokens.
schema: "https"
@@ -224,7 +265,7 @@ kerberoshub:
frontend:
repository: uugai/hub-frontend
pullPolicy: IfNotPresent
tag: "v1.0.17"
tag: "v1.0.42"
replicas: 2
schema: "https"
url: "yourdomain.com"
@@ -387,6 +428,11 @@ kerberoshub:
requests:
memory: 10Mi
cpu: 10m
# The Kerberos Hub pipeline is a series of microservices that process the recordings.
# Each microservice is responsible for a specific task, like counting objects, generating thumbnails, etc.
# The pipeline is orchestrated through Kafka topics or RabbitMQ queues.
# The pipeline is a critical component of Kerberos Hub, and should be monitored closely.
kerberospipeline:
event:
repository: kerberos/pipe-event
@@ -398,18 +444,18 @@ kerberospipeline:
memory: 10Mi
cpu: 10m
monitor:
repository: kerberos/pipe-monitor
repository: uugai/hub-pipeline-monitor
pullPolicy: IfNotPresent
tag: "1.0.6256044005"
tag: "v1.1.0"
replicas: 1
resources:
requests:
memory: 10Mi
cpu: 10m
sequence:
repository: kerberos/pipe-sequence
repository: uugai/hub-pipeline-sequence
pullPolicy: IfNotPresent
tag: "1.0.6256054139"
tag: "v1.0.1"
replicas: 1
resources:
requests:
@@ -427,7 +473,7 @@ kerberospipeline:
notify:
repository: uugai/hub-pipeline-notification
pullPolicy: IfNotPresent
tag: "v1.0.8"
tag: "v1.0.11"
replicas: 1
resources:
requests:
@@ -459,9 +505,9 @@ kerberospipeline:
# persistentVolumeClaim:
# claimName: custom-layout-claim
analysis:
repository: kerberos/pipe-analysis
repository: uugai/hub-pipeline-analysis
pullPolicy: IfNotPresent
tag: "1.0.6897439184"
tag: "v1.0.1"
replicas: 1
resources:
requests:
@@ -507,9 +553,9 @@ kerberospipeline:
cpu: 10m
sprite:
enabled: false # Enable or disable the sprite generation 'true' or 'false
repository: kerberos/pipe-sprite
repository: uugai/hub-pipeline-sprite
pullPolicy: IfNotPresent
tag: "1.0.7190736361"
tag: "v1.0.4"
replicas: 5
interval: "1" # Number of secondes between each thumbnail in the sprite
width: "240" # Should not be changed for the moment (hard coded in UI)
@@ -530,3 +576,41 @@ kerberospipeline:
requests:
memory: 10Mi
cpu: 10m
###########################################################################
# Email configuration
#
# Preferred email provider, we support mailgun and smtp.
# Email templates are used to send out emails to users.
###########################################################################
email:
provider: "mailgun"
from: "support@yourdomain.com"
displayName: "yourdomain.com"
mailgun:
domain: "mg.yourdomain.com"
apikey: "xxxx"
smtp:
server: "smtp.yourdomain.com"
port: "465"
username: "yourusername"
password: "yourpassword"
templates:
welcome: "welcome"
welcomeTitle: "Welcome to Kerberos Hub"
activate: "activate"
activateTitle: "Wonderful! Your Kerberos Hub is now active"
forgot: "forgot"
forgotTitle: "Password reset Kerberos Hub. You forgot your password"
share: "share"
shareTitle: "[Action] You received a recording from Kerberos Hub"
assignTask: "assign_task"
assignTaskTitle: "[Action] You've been assigned to a task"
detection: "detection"
disabled: "disabled"
highupload: "highupload"
device: "device"
alertTitle: "[Alert] Kerberos Hub detected something an event"
deviceTitle: "[Device] A Kerberos Agent's status has been changed"