mirror of
https://github.com/kerberos-io/helm-charts.git
synced 2026-10-19 17:38:27 +00:00
Compare commits
140
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3143384c1f | ||
|
|
0cee9420cc | ||
|
|
e92fa41437 | ||
|
|
08b06d5ba0 | ||
|
|
63fcb3e0a4 | ||
|
|
28087cb072 | ||
|
|
39fb2a11f2 | ||
|
|
0a26eb00b3 | ||
|
|
9afc0e7e97 | ||
|
|
764c580962 | ||
|
|
f0d544c009 | ||
|
|
903bf847af | ||
|
|
926c59ac48 | ||
|
|
57881d35c2 | ||
|
|
6964daed46 | ||
|
|
818bad12c7 | ||
|
|
ed003dfb13 | ||
|
|
ba5d74e719 | ||
|
|
2c10d6eace | ||
|
|
b19aa8af9f | ||
|
|
17fb252380 | ||
|
|
794f424fe2 | ||
|
|
9ba5d83501 | ||
|
|
1f089fba28 | ||
|
|
a07ddeb0e4 | ||
|
|
df4d848105 | ||
|
|
054d3d6079 | ||
|
|
bdd07d3936 | ||
|
|
4a774420c2 | ||
|
|
121ea686a2 | ||
|
|
e7f90babc2 | ||
|
|
e6cbe866fd | ||
|
|
eb75a46972 | ||
|
|
24ef6047f8 | ||
|
|
d93a5d228c | ||
|
|
8b016ca2f8 | ||
|
|
d8a29e37ec | ||
|
|
14c6737f5c | ||
|
|
c71eadd28a | ||
|
|
90c892eb12 | ||
|
|
19399a01ca | ||
|
|
a75358affb | ||
|
|
9b8050a7f6 | ||
|
|
99b6f71971 | ||
|
|
39bb5a5f60 | ||
|
|
3a68cf38d5 | ||
|
|
84d40e805e | ||
|
|
98daf4eb31 | ||
|
|
f6817864ba | ||
|
|
b62360f72f | ||
|
|
465b6d91b2 | ||
|
|
db96c2a203 | ||
|
|
1a816be11e | ||
|
|
41957b69d6 | ||
|
|
b19eb7f640 | ||
|
|
d3390d519d | ||
|
|
aa73e9585c | ||
|
|
c70cf7f222 | ||
|
|
d30b7446c0 | ||
|
|
d816910742 | ||
|
|
7a3fde3b4c | ||
|
|
19d3f0c448 | ||
|
|
a935bed9e4 | ||
|
|
d72e7aecf5 | ||
|
|
4dfad6497e | ||
|
|
93ba207017 | ||
|
|
bebfc33aa5 | ||
|
|
fb9c0d1a03 | ||
|
|
95a431f46d | ||
|
|
7631b10aeb | ||
|
|
2ef457d2da | ||
|
|
60f5eb7b0d | ||
|
|
a48d866036 | ||
|
|
4da81e158f | ||
|
|
6d542eadef | ||
|
|
ecfaf23499 | ||
|
|
e6449b761f | ||
|
|
90cf8a2f36 | ||
|
|
f0c88c6b62 | ||
|
|
aebd16d510 | ||
|
|
79faf46156 | ||
|
|
d23dd5fa42 | ||
|
|
f65a75ae33 | ||
|
|
5a506cfe6a | ||
|
|
ea3c96b4f9 | ||
|
|
95ca1689dc | ||
|
|
601147a3d5 | ||
|
|
3478d42681 | ||
|
|
a88c2253e7 | ||
|
|
3de5ef6936 | ||
|
|
11172c1e44 | ||
|
|
10e0adddca | ||
|
|
89630528e4 | ||
|
|
8373a1df86 | ||
|
|
178f509ecf | ||
|
|
e1b19b47cd | ||
|
|
6a836bc9b4 | ||
|
|
90fba44e8a | ||
|
|
96549fa58c | ||
|
|
c72902bacd | ||
|
|
b3d7c61108 | ||
|
|
127887b374 | ||
|
|
0242a5c657 | ||
|
|
f765361e2e | ||
|
|
0ab642f766 | ||
|
|
1deab0d3b9 | ||
|
|
c3cb5b4ea9 | ||
|
|
fb1c40e930 | ||
|
|
62c95a7dbe | ||
|
|
59815dcd71 | ||
|
|
9151cc6344 | ||
|
|
d4da31233f | ||
|
|
372f129355 | ||
|
|
1549f5f365 | ||
|
|
2ee475ca3d | ||
|
|
73bec39ab7 | ||
|
|
bd9908c1c5 | ||
|
|
24bdab5bb8 | ||
|
|
a77ed61488 | ||
|
|
231c5db46f | ||
|
|
a3ed4b7565 | ||
|
|
b0f23d1879 | ||
|
|
77236d0b29 | ||
|
|
4391d94065 | ||
|
|
986412db35 | ||
|
|
98e7472fd6 | ||
|
|
0ecd66db77 | ||
|
|
b7cc6ea99c | ||
|
|
955144df23 | ||
|
|
609662ac9b | ||
|
|
75860c305e | ||
|
|
b265d07f22 | ||
|
|
3871aab416 | ||
|
|
f5df23d53d | ||
|
|
d0c8b616dc | ||
|
|
0831003651 | ||
|
|
86249ad2a3 | ||
|
|
59a3c1f9d8 | ||
|
|
f5b2dbc210 | ||
|
|
229bb31f6f |
@@ -0,0 +1,42 @@
|
||||
name: Deploy on Kind
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened]
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
kind: [v0.21.0, v0.22.0, v0.23.0, v0.24.0]
|
||||
steps:
|
||||
- name: Create k8s Kind Cluster
|
||||
uses: helm/kind-action@v1
|
||||
with:
|
||||
version: ${{ matrix.kind }}
|
||||
- name: Print Kubernetes Version
|
||||
run: |
|
||||
kubectl version
|
||||
- name: Test Kubernetes Cluster
|
||||
run: |
|
||||
kubectl get no
|
||||
kubectl get pods -A -o wide
|
||||
kubectl get sc
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
- 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 get crd
|
||||
kubectl get po -A -o wide
|
||||
- name: Install Kerberos Hub helm chart
|
||||
id: install-kerberos-hub
|
||||
run: |
|
||||
kubectl create namespace kerberos-hub
|
||||
helm install hub ./charts/hub --values charts/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
|
||||
kubectl get pods -A -o wide
|
||||
kubectl get pods -A -o wide | grep hub-frontend | awk '{print $3}' | grep -q '1/1' && echo "hub-frontend pod is running with status 1/1" || (echo "kerberos-hub pod is not running with status 1/1" && exit 1)
|
||||
@@ -0,0 +1,43 @@
|
||||
name: Deploy on Microk8s
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened]
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04]
|
||||
name: MicroK8s
|
||||
steps:
|
||||
- uses: balchua/microk8s-actions@v0.4.3
|
||||
with:
|
||||
channel: "1.30/stable"
|
||||
addons: '["dns", "dashboard", "hostpath-storage", "nvidia"]'
|
||||
- name: Set permissions
|
||||
run: |
|
||||
sudo chown -f -R $USER $HOME/.kube $HOME/.config
|
||||
- name: Test MicroK8s
|
||||
id: list-pods
|
||||
run: |
|
||||
kubectl get no
|
||||
kubectl get pods -A -o wide
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
- 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 get crd
|
||||
kubectl get po -A -o wide
|
||||
- name: Install Kerberos Hub helm chart
|
||||
id: install-kerberos-hub
|
||||
run: |
|
||||
kubectl create namespace kerberos-hub
|
||||
helm install hub ./charts/hub --values charts/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
|
||||
kubectl get pods -A -o wide
|
||||
kubectl get pods -A -o wide | grep hub-frontend | awk '{print $3}' | grep -q '1/1' && echo "hub-frontend pod is running with status 1/1" || (echo "kerberos-hub pod is not running with status 1/1" && exit 1)
|
||||
@@ -0,0 +1,19 @@
|
||||
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
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Kerberos.io ecosystem can be deployed through Helm charts. Use one of the following charts to boost the installation:
|
||||
|
||||
- [Hub](https://github.com/kerberos-io/helm-charts/tree/main/charts/hub) chart
|
||||
- [Hub](https://github.com/kerberos-io/helm-charts/tree/main/charts/hub)
|
||||
|
||||
## Prerequisite
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
apiVersion: v2
|
||||
name: hub
|
||||
description: A Helm chart for install Kerberos Hub in Kubernetes
|
||||
description: A Helm chart to install Kerberos Hub in Kubernetes
|
||||
icon: https://doc.kerberos.io/images/kerberos-logo.svg
|
||||
|
||||
# A chart can be either an 'application' or a 'library' chart.
|
||||
@@ -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.44.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: "3.0.0"
|
||||
appVersion: "3.3.0"
|
||||
|
||||
+15
-3
@@ -42,6 +42,7 @@ Below all configuration options and parameters are listed.
|
||||
| `licenseServer.token` | The license server API token to sign the license validation by default `'214%ˆ#ddfsf@#3rfdsgl_)23sffeqasSwefDSFNBM'`. | `""` |
|
||||
| `imagePullSecrets.name` | Docker registry secret name, which is also granted with the license. This allows you to download the Docker images. | `""` |
|
||||
| `isPrivate` | Global StorageClass for Persistent Volume(s) | `""` |
|
||||
| `environment` | A colored banner will be shown on top of the application to illustrate a non-production environment: `staging`, `demo`, .. | `""` |
|
||||
| `readOnly` | This will stop any write process to mongodb or any processing done in the Kerberos Hub pipeline. | `""` |
|
||||
| `ingress` | The ingress being used for `kerberoshub.api.url` and `kerberoshub.frontend.url`. | `""` |
|
||||
| `mongodb.host` | MongoDB hostname (`'mongodb:27017'`) or mongodb replicas (`'mongodb-0:27017,mongodb-1:27017'`). | `""` |
|
||||
@@ -53,13 +54,17 @@ Below all configuration options and parameters are listed.
|
||||
| `mqtt.protocol` | MQTT (Vernemq) protocol, by default `'wss'`. | `""` |
|
||||
| `mqtt.username` | MQTT (Vernemq) username, by default `'yourusername'`. | `""` |
|
||||
| `mqtt.password` | MQTT (Vernemq) password, by default `'yourpassword'`. | `""` |
|
||||
| `queueProvider` | The queue we are using for the [Kerberos Hub pipeline](https://doc.kerberos.io/hub/pipeline/), can be 'SQS' or 'KAFKA'. | `""` |
|
||||
| `queueProvider` | The queue we are using for the [pipeline](https://doc.kerberos.io/hub/pipeline/): 'SQS', 'KAFKA' or `RABBITMQ`. | `""` |
|
||||
| `queueName` | The event queue which is propagating messages in the [Kerberos Hub pipeline](https://doc.kerberos.io/hub/pipeline/). | `""` |
|
||||
| `kafka.broker` | Kafka brokers, by default `'kafka1.yourdomain.com:9094,kafka2.yourdomain.com:9094'` | `""` |
|
||||
| `kafka.username` | Kafka username, by default `'yourusername'` | `""` |
|
||||
| `kafka.password` | Kafka password, by default `'yourpassword'` | `""` |
|
||||
| `kafka.mechanism` | Kafka mechanism, by default `'PLAIN'` | `""` |
|
||||
| `kafka.security` | Kafka security, by default `'SASL_PLAINTEXT'` | `""` |
|
||||
| `rabbitmq.host` | RabbitMQ host, by default `'rabbitmq.yourdomain.com:5671'` | `""` |
|
||||
| `rabbitmq.username` | RabbitMQ username, by default `'yourusername'` | `""` |
|
||||
| `rabbitmq.password` | RabbitMQ password, by default `'yourpassword'` | `""` |
|
||||
| `rabbitmq.exchange` | RabbitMQ exchange, by default `''` | `""` |
|
||||
| `turn.host` | TURN/STUN hostname, by default `'turn:turn.yourdomain.com:8443'` | `""` |
|
||||
| `turn.username` | TURN/STUN username, by default `'username1'` | `""` |
|
||||
| `turn.password` | TURN/STUN password, by default `'password1'` | `""` |
|
||||
@@ -218,13 +223,14 @@ Within the Kerberos Hub front-end you'll see the option to filter through classi
|
||||
|
||||
### Indexing
|
||||
|
||||
Following indexes should be executed on the MongoDB database (Kerberos) to improve future performance.
|
||||
Following indexes should be executed on the MongoDB database (Kerberos) to improve future performance. Within Kerberos Hub several queries are executed, following indexes will improve the loading times. If not applied you might experience application timeouts or reduced performance when storing lots of data.
|
||||
|
||||
#### Sequences collection
|
||||
|
||||
db.getCollection('sequences').createIndex({start:1})
|
||||
db.getCollection('sequences').createIndex({user_id:1, "images.key":1})
|
||||
db.getCollection('sequences').createIndex({user_id:1, end:1, start: -1, devices: 1})
|
||||
db.getCollection('sequences').createIndex({user_id:1, end:1, start: 1, "images.instanceName": 1})
|
||||
db.getCollection('sequences').createIndex({user_id:1, "images.key":1})
|
||||
|
||||
#### Notifications collection
|
||||
|
||||
@@ -234,9 +240,15 @@ Following indexes should be executed on the MongoDB database (Kerberos) to impro
|
||||
|
||||
#### Analysis collection
|
||||
|
||||
db.getCollection("analysis").createIndex({start:1})
|
||||
db.getCollection("analysis").createIndex({userid:1, key:1})
|
||||
db.getCollection("analysis").createIndex({userid:1, start:1})
|
||||
|
||||
#### Heatmap collection
|
||||
|
||||
db.getCollection("heatmap").createIndex({timestamp:1})
|
||||
db.getCollection("heatmap").createIndex({user_id:1, timestamp: 1})
|
||||
|
||||
# Upgrade
|
||||
|
||||
After installation, you might want to upgrade Kerberos Hub to the latest version, or change some settings. With Helm charts all settings are configured through the `values.yaml` file. After you made modifications to the `values.yaml` file, for example the version tag, or a new DNS name, you can run the `helm upgrade` command as following.
|
||||
|
||||
@@ -55,6 +55,11 @@
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M18 9C18 8.44772 17.5523 8 17 8H1C0.447716 8 0 8.44772 0 9C0 9.55228 0.447716 10 1 10H17C17.5523 10 18 9.55228 18 9Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Book */
|
||||
window["env"]["svg"]["book"] = `<svg class="icon icon-book" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M17.6133 1.69102C17.6133 0.970312 17.0227 0.386719 16.2949 0.386719H1.70508C0.977344 0.386719 0.386719 0.970312 0.386719 1.69102V14.7094C0.386719 16.0453 1.87383 17.6133 4.35234 17.6133H16.8926C17.7152 17.5465 17.7082 16.7695 17.4832 16.4883C17.4832 16.4883 17.4832 16.4848 17.4797 16.4848C16.2 14.6672 17.427 12.8391 17.4832 12.7582C17.4832 12.7582 17.6098 12.593 17.6133 12.3469V1.69102V1.69102ZM1.82109 1.82109H16.1754V11.6262H4.35234C3.38203 11.6262 2.50312 11.8758 1.82109 12.2977V1.82109V1.82109ZM1.82109 14.6215C1.82109 13.7777 2.98125 13.0641 4.35234 13.0641H15.75C15.4723 13.8516 15.2789 14.9695 15.7148 16.1789H4.35234C2.98125 16.1789 1.82109 15.4652 1.82109 14.6215Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Calendar */
|
||||
window["env"]["svg"]["calendar"] = `<svg class="icon icon-calendar" 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 4C0 2.89543 0.89543 2 2 2H16C17.1046 2 18 2.89543 18 4V16C18 17.1046 17.1046 18 16 18H2C0.89543 18 0 17.1046 0 16V4ZM16 4L2 4V16H16V4Z" fill="currentColor"/>
|
||||
@@ -100,7 +105,7 @@
|
||||
|
||||
|
||||
/* Change / Refresh (Subscription > Change plan) */
|
||||
window["env"]["svg"]["change"] = `<svg class="icon icon-change" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
window["env"]["svg"]["change"] = `<svg class="icon icon-change" width="18" height="18" viewBox="0 0 18 18" fill="none" airxmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M1 17C0.447715 17 0 16.5523 0 16V12C0 11.4477 0.447715 11 1 11H5C5.55228 11 6 11.4477 6 12C6 12.5523 5.55228 13 5 13H2V16C2 16.5523 1.55228 17 1 17Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17 1C17.5523 1 18 1.44772 18 2V6C18 6.55228 17.5523 7 17 7H13C12.4477 7 12 6.55228 12 6C12 5.44772 12.4477 5 13 5H16V2C16 1.44772 16.4477 1 17 1Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.16201 0.0391048C9.81613 -0.115589 11.4808 0.190586 12.9716 0.923718C14.4625 1.65685 15.7213 2.78833 16.6087 4.19283C16.9036 4.65973 16.7643 5.27737 16.2974 5.57236C15.8305 5.86736 15.2128 5.72799 14.9178 5.26109C14.2277 4.1687 13.2486 3.28866 12.0891 2.71845C10.9295 2.14823 9.63478 1.9101 8.34824 2.03042C7.06169 2.15073 5.83356 2.62481 4.79986 3.40013C3.76616 4.17546 2.96723 5.22178 2.49157 6.4232C2.28827 6.9367 1.70718 7.18817 1.19368 6.98486C0.680172 6.78156 0.428706 6.20047 0.63201 5.68696C1.24358 4.14228 2.27077 2.79702 3.59981 1.80017C4.92885 0.803323 6.50788 0.193799 8.16201 0.0391048Z" fill="currentColor"/>
|
||||
@@ -113,6 +118,11 @@
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 5C4.55228 5 5 5.44772 5 6V10.3496L6.73857 16H7V11C7 10.4477 7.44772 10 8 10C8.55228 10 9 10.4477 9 11V17C9 17.5523 8.55228 18 8 18H6C5.561 18 5.17333 17.7137 5.04422 17.2941L3.04422 10.7941C3.01491 10.6988 3 10.5997 3 10.5V6C3 5.44772 3.44772 5 4 5Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Chair */
|
||||
window["env"]["svg"]["chair"] = `<svg class="icon icon-chair" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M15.0001 3.609V2.39101C15.0001 1.07023 13.9295 0 12.6091 0H5.39033C4.06996 0 3.00009 1.07019 3.00009 2.39101V3.609C3.00009 4.88261 3.99494 5.92281 5.24988 5.99555V7.49999H3.74987C3.33566 7.49999 2.99988 7.83577 2.99988 8.24998V11.25V17.25C2.99988 17.6642 3.33566 18 3.74987 18C4.16408 18 4.49985 17.6642 4.49985 17.25V12H5.99987V15.75C5.99987 16.1642 6.33564 16.5 6.74985 16.5C7.16407 16.5 7.49984 16.1642 7.49984 15.75V12H10.4998V15.75C10.4998 16.1642 10.8356 16.5 11.2498 16.5C11.664 16.5 11.9998 16.1642 11.9998 15.75V12H13.4999V17.25C13.4999 17.6642 13.8356 18 14.2498 18C14.6641 18 14.9998 17.6642 14.9998 17.25V11.25V8.25001C14.9998 7.8358 14.6641 7.50002 14.2498 7.50002H12.7498V5.99555C14.0047 5.92263 15.0001 4.88246 15.0001 3.609ZM4.50007 3.609V2.39101C4.50007 1.89854 4.89846 1.50001 5.39033 1.50001H12.6091C13.1011 1.50001 13.5001 1.89879 13.5001 2.39101V3.609C13.5001 4.10122 13.1011 4.5 12.6091 4.5H5.39033C4.89846 4.5 4.50007 4.10147 4.50007 3.609ZM13.4999 10.5H4.49985V9H13.4999V10.5ZM6.74985 7.49999V5.99998H11.2499V7.49999H6.74985Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Chart Bars */
|
||||
window["env"]["svg"]["chart-bars"] = `<svg class="icon icon-chart-bars" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="10" width="18" height="2.00001" rx="1.00001" transform="rotate(90 10 0)" fill="currentColor"/>
|
||||
@@ -190,6 +200,14 @@
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11 11C11 10.4477 11.4477 10 12 10H17C17.5523 10 18 10.4477 18 11V17C18 17.5523 17.5523 18 17 18H12C11.4477 18 11 17.5523 11 17V11ZM13 12V16H16V12H13Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Datasets */
|
||||
window["env"]["svg"]["datasets"] = `<svg class="icon icon-datasets" 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 0.999878C0 0.447593 0.447715 -0.00012207 1 -0.00012207H7C7.55228 -0.00012207 8 0.447593 8 0.999878V7.99988C8 8.55216 7.55228 8.99988 7 8.99988H1C0.447715 8.99988 0 8.55216 0 7.99988V0.999878ZM2 1.99988V6.99988H6V1.99988H2Z" fill="#A69D9D"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 10.9999C10 10.4476 10.4477 9.99988 11 9.99988H17C17.5523 9.99988 18 10.4476 18 10.9999V16.9999C18 17.5522 17.5523 17.9999 17 17.9999H11C10.4477 17.9999 10 17.5522 10 16.9999V10.9999ZM12 11.9999V15.9999H16V11.9999H12Z" fill="#A69D9D"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 10.9999C4.35126 10.9999 4.67677 11.1842 4.85749 11.4854L7.85749 16.4854C8.04285 16.7943 8.04771 17.1791 7.8702 17.4926C7.69269 17.8061 7.36027 17.9999 7 17.9999L1 17.9999C0.639728 17.9999 0.307306 17.8061 0.1298 17.4926C-0.0477054 17.1791 -0.0428512 16.7943 0.142507 16.4854L3.14251 11.4854C3.32323 11.1842 3.64874 10.9999 4 10.9999ZM4 13.9435L2.76619 15.9999H5.23381L4 13.9435Z" fill="#A69D9D"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 3.99988C10 1.79074 11.7909 -0.00012207 14 -0.00012207C16.2091 -0.00012207 18 1.79074 18 3.99988C18 6.20902 16.2091 7.99988 14 7.99988C11.7909 7.99988 10 6.20902 10 3.99988ZM14 1.99988C12.8954 1.99988 12 2.89531 12 3.99988C12 5.10445 12.8954 5.99988 14 5.99988C15.1046 5.99988 16 5.10445 16 3.99988C16 2.89531 15.1046 1.99988 14 1.99988Z" fill="#A69D9D"/>
|
||||
</svg>`
|
||||
|
||||
/* Docs */
|
||||
window["env"]["svg"]["docs"] = `<svg class="icon icon-docs" 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="M2 4.60302V12.464C2.75731 12.2175 3.77322 12 5 12C6.22678 12 7.24269 12.2175 8 12.464V4.60302C7.88559 4.55183 7.75049 4.49606 7.59576 4.43979C6.9995 4.22297 6.11545 4 5 4C3.88455 4 3.0005 4.22297 2.40424 4.43979C2.24951 4.49606 2.11441 4.55183 2 4.60302ZM9 4L9.5547 3.16795C9.8329 3.35342 10 3.66565 10 4V14C10 14.3688 9.79702 14.7077 9.47186 14.8817C9.14856 15.0547 8.75666 15.0368 8.45057 14.8355L8.44925 14.8347C8.45014 14.8352 8.45012 14.8353 8.45057 14.8355C8.44881 14.8344 8.44705 14.8332 8.4453 14.8321L9 14C8.4453 14.8321 8.445 14.8319 8.4453 14.8321L8.44754 14.8335L8.44925 14.8347C8.44479 14.8319 8.43416 14.8252 8.41886 14.8161C8.38824 14.7979 8.3363 14.7681 8.264 14.7303C8.11924 14.6548 7.89395 14.5482 7.59576 14.4398C6.9995 14.223 6.11545 14 5 14C3.88455 14 3.0005 14.223 2.40424 14.4398C2.10605 14.5482 1.88076 14.6548 1.736 14.7303C1.6637 14.7681 1.61176 14.7979 1.58114 14.8161C1.56584 14.8252 1.55591 14.8314 1.55145 14.8343L1.55246 14.8335L1.55352 14.8328C1.55197 14.8339 1.55099 14.8345 1.54944 14.8355C1.24335 15.0368 0.851445 15.0547 0.528142 14.8817C0.202985 14.7077 0 14.3688 0 14V4C0 3.66565 0.167101 3.35342 0.4453 3.16795L1 4C0.4453 3.16795 0.444975 3.16817 0.4453 3.16795L0.446621 3.16707L0.448085 3.1661L0.45144 3.16388L0.459854 3.15839L0.483463 3.14328C0.5022 3.13145 0.52693 3.11616 0.557531 3.09793C0.618713 3.06148 0.703488 3.01319 0.810871 2.95717C1.02549 2.84519 1.33145 2.70177 1.72076 2.56021C2.4995 2.27703 3.61545 2 5 2C6.38455 2 7.5005 2.27703 8.27924 2.56021C8.66855 2.70177 8.97451 2.84519 9.18913 2.95717C9.29651 3.01319 9.38129 3.06148 9.44247 3.09793C9.47307 3.11616 9.4978 3.13145 9.51654 3.14328L9.54015 3.15839L9.54856 3.16388L9.55192 3.1661L9.55338 3.16707L9.5547 3.16795C9.55502 3.16817 9.5547 3.16795 9 4ZM1.54944 14.8355C1.54989 14.8352 1.55056 14.8348 1.55145 14.8343L1.54944 14.8355C1.54912 14.8357 1.54876 14.836 1.54944 14.8355Z" fill="currentColor"/>
|
||||
@@ -278,6 +296,23 @@
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11 3C11.5523 3 12 3.44772 12 4V10H13C13.5523 10 14 10.4477 14 11C14 11.5523 13.5523 12 13 12H11C10.4477 12 10 11.5523 10 11V4C10 3.44772 10.4477 3 11 3Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Fullscreen */
|
||||
window["env"]["svg"]["fullscreen"] = `<svg class="icon icon-fullscreen" svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M7 1H2C1.44772 1 1 1.44772 1 2V7" stroke="currentColor" stroke-width="2"/>
|
||||
<path d="M11 1H16C16.5523 1 17 1.44772 17 2V7" stroke="currentColor" stroke-width="2"/>
|
||||
<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">
|
||||
<path d="M0 6H5C5.55228 6 6 5.55228 6 5V0" stroke="currentColor" stroke-width="2"/>
|
||||
<path d="M16 6H11C10.4477 6 10 5.55228 10 5V0" stroke="currentColor" stroke-width="2"/>
|
||||
<path d="M16 10H11C10.4477 10 10 10.4477 10 11V16" stroke="currentColor" stroke-width="2"/>
|
||||
<path d="M0 10H5C5.55228 10 6 10.4477 6 11V16" stroke="currentColor" stroke-width="2"/>
|
||||
</svg>`
|
||||
|
||||
/* Github */
|
||||
window["env"]["svg"]["github"] = `<svg class="icon icon-github" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.1886 16.968C16.0495 15.4609 18 12.4583 18 9C18 4.02944 13.9706 0 9 0C4.02944 0 0 4.02944 0 9C0 12.4446 1.93513 15.4372 4.77756 16.95L4.78165 16.9511C4.80365 16.9551 4.83021 16.9602 4.86078 16.9662C5.38688 17.0689 7.09762 17.4026 7.09762 15.7268C7.09762 15.6401 7.09614 15.487 7.09416 15.2822C7.09187 15.0449 7.08891 14.7381 7.0868 14.3848C4.85932 14.8615 4.38934 13.3267 4.38934 13.3267C4.02506 12.4154 3.50002 12.1726 3.50002 12.1726C2.77293 11.6828 3.55508 11.6925 3.55508 11.6925C4.35886 11.7487 4.78165 12.506 4.78165 12.506C5.49595 13.7118 6.65615 13.3635 7.11236 13.162C7.18512 12.6518 7.3916 12.3039 7.62069 12.1068C5.84254 11.9076 3.97295 11.2303 3.97295 8.20622C3.97295 7.34482 4.28512 6.64038 4.79738 6.08856C4.71479 5.88896 4.43998 5.08666 4.87554 3.99998C4.87554 3.99998 5.54806 3.78778 7.07795 4.80906C7.71655 4.63416 8.40186 4.54647 9.08273 4.54356C9.76263 4.54647 10.4479 4.63416 11.0875 4.80906C12.6164 3.78778 13.2875 3.99998 13.2875 3.99998C13.7245 5.08666 13.4497 5.88896 13.3671 6.08856C13.8803 6.64038 14.1906 7.34482 14.1906 8.20622C14.1906 11.2381 12.318 11.9052 10.534 12.1005C10.8216 12.3441 11.0777 12.8257 11.0777 13.5621C11.0777 14.2673 11.0733 14.8814 11.0704 15.2884C11.0689 15.49 11.0679 15.6411 11.0679 15.7268C11.0679 17.3972 12.6636 17.0753 13.1886 16.968Z" fill="currentColor"/>
|
||||
@@ -348,6 +383,11 @@
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.44781 0.328888C7.93778 0.112406 8.46542 0 9 0C9.53458 0 10.0622 0.112406 10.5522 0.328888C11.042 0.545285 11.4826 0.860547 11.8509 1.25332C12.219 1.64595 12.5078 2.10863 12.7038 2.61342C12.8998 3.11815 13 3.65709 13 4.2V5C13 5.55228 12.5523 6 12 6C11.4477 6 11 5.55228 11 5V4.2C11 3.90245 10.945 3.60916 10.8395 3.3374C10.734 3.06571 10.5808 2.82286 10.3918 2.6212C10.2029 2.41967 9.98209 2.26352 9.74391 2.15828C9.50593 2.05313 9.25335 2 9 2C8.74665 2 8.49407 2.05313 8.25609 2.15828C8.01791 2.26352 7.79715 2.41967 7.60822 2.6212C7.41916 2.82286 7.26605 3.06571 7.16054 3.3374C7.05501 3.60916 7 3.90245 7 4.2V5C7 5.55228 6.55228 6 6 6C5.44772 6 5 5.55228 5 5V4.2C5 3.65709 5.10018 3.11815 5.29618 2.61342C5.4922 2.10863 5.78105 1.64595 6.14914 1.25332C6.51736 0.860547 6.95803 0.545285 7.44781 0.328888Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Hammer (used for functions) */
|
||||
window["env"]["svg"]["hammer"] = `<svg class="icon icon-hammer" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10.6816 0.417437L7.46793 0.361142C7.40493 0.359516 7.34315 0.368458 7.28299 0.386546L6.74687 0.546489C6.4845 0.183315 5.98313 0 5.24662 0H5.14297C4.19733 0 3.4281 0.769434 3.4281 1.71487V3.92541C3.4281 4.87105 4.19753 5.64028 5.14297 5.64028H5.24662C6.04592 5.64028 6.56843 5.42445 6.80865 4.99705L7.15963 5.0312V10.6231C6.84544 10.8739 6.64302 11.2596 6.64302 11.6921V16.6325C6.64302 17.3866 7.25637 18 8.01036 18H9.98902C10.743 18 11.3564 17.3864 11.3564 16.6325V11.6919C11.3564 11.2743 11.1678 10.9001 10.8719 10.6491V4.5914C10.9249 4.55157 11.0117 4.50218 11.0952 4.46418C12.6436 4.42516 13.5291 5.15761 13.5614 5.18464C13.7413 5.34153 13.9965 5.37913 14.2144 5.27995C14.4319 5.18098 14.5717 4.96393 14.5717 4.72513C14.5715 2.44589 12.7511 0.433086 10.6816 0.417437ZM10.1372 16.6325C10.1372 16.714 10.0709 16.7806 9.98922 16.7806H8.01056C7.92907 16.7806 7.86261 16.7142 7.86261 16.6325V11.6919C7.86261 11.6104 7.92886 11.5437 8.01056 11.5437H9.98922C10.0707 11.5437 10.1372 11.6104 10.1372 11.6919V16.6325ZM10.9373 3.24967C10.8765 3.25251 10.8166 3.2643 10.7595 3.28483C10.4999 3.37811 9.65267 3.73966 9.65267 4.478V10.2935H8.37922V4.478C8.37922 4.16421 8.14104 3.90164 7.82867 3.87115L6.41113 3.73295C6.24001 3.71649 6.0697 3.77279 5.94228 3.88822C5.81485 4.00366 5.7423 4.16767 5.7423 4.3398C5.7423 4.35403 5.74169 4.36541 5.74087 4.37456C5.68844 4.39325 5.55797 4.42069 5.24662 4.42069H5.14297C4.86962 4.42069 4.64749 4.19835 4.64749 3.92521V1.71466C4.64749 1.44132 4.86982 1.21919 5.14297 1.21919H5.24662C5.55797 1.21919 5.68824 1.24682 5.74087 1.26573C5.74169 1.27487 5.7423 1.28645 5.7423 1.30048C5.7423 1.49294 5.83314 1.67422 5.9876 1.78925C6.14205 1.90428 6.34203 1.93984 6.52616 1.88477L7.54089 1.58236L10.6664 1.63723C11.777 1.64556 12.7044 2.54202 13.1188 3.57951C12.5605 3.37181 11.826 3.20801 10.9373 3.24967Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Backpack (detection classification) */
|
||||
window["env"]["svg"]["backpack"] = `<svg class="icon icon-backpack" 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="M1 4C1 3.44772 1.44772 3 2 3H16C16.5523 3 17 3.44772 17 4V17C17 17.5523 16.5523 18 16 18H2C1.44772 18 1 17.5523 1 17V4ZM3 5V16H15V5H3Z" fill="currentColor"/>
|
||||
@@ -370,6 +410,12 @@
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 7C9.55228 7 10 6.55228 10 6C10 5.44772 9.55228 5 9 5C8.44772 5 8 5.44772 8 6C8 6.55228 8.44772 7 9 7Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* IO (Navigation menu) */
|
||||
window["env"]["svg"]["io"] = `<svg class="icon icon-io" 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 2C5.13401 2 2 5.13401 2 9C2 12.866 5.13401 16 9 16C12.866 16 16 12.866 16 9C16 5.13401 12.866 2 9 2ZM0 9C0 4.02944 4.02944 0 9 0C13.9706 0 18 4.02944 18 9C18 13.9706 13.9706 18 9 18C4.02944 18 0 13.9706 0 9Z" fill="currentColor"/>
|
||||
<path d="M5.81481 12V6.54545H7.10032V12H5.81481ZM6.46112 5.77131C6.25752 5.77131 6.08233 5.70384 5.93555 5.56889C5.78877 5.43158 5.71538 5.26705 5.71538 5.07528C5.71538 4.88116 5.78877 4.71662 5.93555 4.58168C6.08233 4.44437 6.25752 4.37571 6.46112 4.37571C6.66708 4.37571 6.84227 4.44437 6.98668 4.58168C7.13346 4.71662 7.20685 4.88116 7.20685 5.07528C7.20685 5.26705 7.13346 5.43158 6.98668 5.56889C6.84227 5.70384 6.66708 5.77131 6.46112 5.77131ZM10.8015 12.1065C10.2688 12.1065 9.80717 11.9893 9.41655 11.755C9.02592 11.5206 8.72289 11.1927 8.50746 10.7713C8.29439 10.3499 8.18786 9.85748 8.18786 9.29403C8.18786 8.73059 8.29439 8.23698 8.50746 7.81321C8.72289 7.38944 9.02592 7.06037 9.41655 6.82599C9.80717 6.59162 10.2688 6.47443 10.8015 6.47443C11.3342 6.47443 11.7958 6.59162 12.1864 6.82599C12.5771 7.06037 12.8789 7.38944 13.092 7.81321C13.3074 8.23698 13.4151 8.73059 13.4151 9.29403C13.4151 9.85748 13.3074 10.3499 13.092 10.7713C12.8789 11.1927 12.5771 11.5206 12.1864 11.755C11.7958 11.9893 11.3342 12.1065 10.8015 12.1065ZM10.8086 11.0767C11.0974 11.0767 11.3389 10.9974 11.533 10.8388C11.7272 10.6778 11.8716 10.4624 11.9663 10.1925C12.0633 9.92259 12.1119 9.62192 12.1119 9.29048C12.1119 8.95668 12.0633 8.65483 11.9663 8.38494C11.8716 8.11269 11.7272 7.89607 11.533 7.73509C11.3389 7.5741 11.0974 7.49361 10.8086 7.49361C10.5127 7.49361 10.2665 7.5741 10.07 7.73509C9.87583 7.89607 9.73023 8.11269 9.63317 8.38494C9.53847 8.65483 9.49112 8.95668 9.49112 9.29048C9.49112 9.62192 9.53847 9.92259 9.63317 10.1925C9.73023 10.4624 9.87583 10.6778 10.07 10.8388C10.2665 10.9974 10.5127 11.0767 10.8086 11.0767Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Key (Profile > Change password) */
|
||||
window["env"]["svg"]["key"] = `<svg class="icon icon-key" 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="M15.809 0.0183059C15.6199 0.0549176 15.4393 0.146447 15.2929 0.292894L10.2929 5.29289L6.89574 8.69005C6.20201 8.25291 5.38054 8 4.5 8C2.01472 8 0 10.0147 0 12.5C0 14.9853 2.01472 17 4.5 17C6.98528 17 9 14.9853 9 12.5C9 11.6195 8.74709 10.798 8.30995 10.1043L11 7.41421L12.2929 8.70711C12.6834 9.09763 13.3166 9.09763 13.7071 8.70711C14.0976 8.31658 14.0976 7.68342 13.7071 7.29289L12.4142 6L13.5 4.91421L15.2929 6.70711C15.6834 7.09763 16.3166 7.09763 16.7071 6.70711C17.0976 6.31658 17.0976 5.68342 16.7071 5.29289L14.9142 3.5L16 2.41421L16.2929 2.70711C16.6834 3.09763 17.3166 3.09763 17.7071 2.70711C18.0976 2.31658 18.0976 1.68342 17.7071 1.29289L16.7071 0.292894C16.509 0.0948186 16.2485 -0.00279238 15.9889 6.07713e-05C15.9286 0.000723416 15.8684 0.00680511 15.809 0.0183059ZM2 12.5C2 11.1193 3.11929 10 4.5 10C5.88071 10 7 11.1193 7 12.5C7 13.8807 5.88071 15 4.5 15C3.11929 15 2 13.8807 2 12.5Z" fill="currentColor"/>
|
||||
@@ -381,6 +427,17 @@
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 8C8.44772 8 8 8.44772 8 9C8 9.55228 8.44772 10 9 10C9.55228 10 10 9.55228 10 9C10 8.44772 9.55228 8 9 8ZM6 9C6 7.34315 7.34315 6 9 6C10.6569 6 12 7.34315 12 9C12 10.6569 10.6569 12 9 12C7.34315 12 6 10.6569 6 9Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Labeling */
|
||||
window["env"]["svg"]["labeling"] = `<svg class="icon icon-labeling" 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="M5.66675 4.33333C5.66675 3.59695 6.26368 3 7.00003 3C7.73639 3 8.33332 3.59695 8.33332 4.33333C8.33332 5.06971 7.73639 5.66667 7.00003 5.66667C6.26368 5.66667 5.66675 5.06971 5.66675 4.33333Z" fill="#A69D9D"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.40381 6.7019C4.51673 6.47604 4.74757 6.33337 5.00007 6.33337H8.99993C9.25243 6.33337 9.48327 6.47604 9.59619 6.7019L10.9295 9.36857C11.0941 9.69788 10.9607 10.0983 10.6313 10.263C10.302 10.4277 9.9016 10.2942 9.73695 9.96485L8.58792 7.66671H5.41208L4.26305 9.96485C4.0984 10.2942 3.69796 10.4277 3.36866 10.263C3.03935 10.0983 2.90587 9.69788 3.07053 9.36857L4.40381 6.7019Z" fill="#A69D9D"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.00012 11C5.00012 10.6319 5.29859 10.3334 5.66676 10.3334H8.33333C8.70151 10.3334 8.99998 10.6319 8.99998 11C8.99998 11.3682 8.70151 11.6667 8.33333 11.6667H5.66676C5.29859 11.6667 5.00012 11.3682 5.00012 11Z" fill="#A69D9D"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.00012 7.00004C5.00012 6.63185 5.29859 6.33337 5.66676 6.33337H8.33333C8.70151 6.33337 8.99998 6.63185 8.99998 7.00004V14.3334C8.99998 14.7016 8.70151 15 8.33333 15C7.96516 15 7.66669 14.7016 7.66669 14.3334V7.66671H6.33341V14.3334C6.33341 14.7016 6.03494 15 5.66676 15C5.29859 15 5.00012 14.7016 5.00012 14.3334V7.00004Z" fill="#A69D9D"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M16 18C17.1046 18 18 17.1046 18 16L18 2C18 0.89543 17.1046 -3.91405e-08 16 -8.74228e-08L2 -6.99382e-07C0.89543 1.15968e-06 7.47664e-07 0.895431 6.99382e-07 2L8.74228e-08 16C3.91405e-08 17.1046 0.89543 18 2 18L16 18ZM16 2L16 16L2 16L2 2L16 2Z" fill="#A69D9D"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.3136 10.0007C13.4257 9.99274 13.5315 10.0531 13.5818 10.1536L13.8024 10.5948L14.7896 10.8416C14.9133 10.8725 15 10.9836 15 11.1111V11.9444C15 12.064 14.9235 12.1702 14.8101 12.208L14.1159 12.4394L13.9418 13.0505V14.4444C13.9418 14.5978 13.8174 14.7222 13.664 14.7222H13.0291C12.9066 14.7222 12.7985 14.6419 12.7632 14.5246L12.5714 13.8889H11.728L11.5135 14.5323C11.4757 14.6457 11.3696 14.7222 11.25 14.7222H10.4894C10.4103 14.7222 10.3349 14.6885 10.2822 14.6294C10.2295 14.5704 10.2045 14.4917 10.2134 14.4131L10.4102 12.6807L10.0225 11.7761C9.97655 11.6689 10.0024 11.5445 10.0872 11.4646C10.172 11.3846 10.2977 11.3661 10.402 11.4182L11.1657 11.8L12.5722 11.6828L13.0698 10.1899C13.1053 10.0834 13.2016 10.0087 13.3136 10.0007ZM13.3865 10.9967L13.0413 12.0323C13.0062 12.1377 12.9116 12.212 12.8009 12.2213L11.1342 12.3601C11.0834 12.3644 11.0325 12.3546 10.9869 12.3318L10.8318 12.2542L10.9498 12.5295C10.9688 12.5738 10.9759 12.6223 10.9705 12.6702L10.8005 14.1666H11.0498L11.2643 13.5233C11.3021 13.4098 11.4082 13.3333 11.5278 13.3333H12.7778C12.9003 13.3333 13.0084 13.4136 13.0437 13.5309L13.2355 14.1666H13.3863V13.0117C13.3863 12.986 13.3898 12.9603 13.3969 12.9356L13.6217 12.1461C13.6469 12.0579 13.714 11.9877 13.801 11.9587L14.4444 11.7442V11.328L13.5437 11.1028C13.48 11.0869 13.4245 11.0491 13.3865 10.9967Z" fill="#A69D9D"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.7913 12.6213L12.6802 12.2046L12.8752 11.6844L13.9863 12.1011L13.7913 12.6213Z" fill="#A69D9D"/>
|
||||
</svg>`
|
||||
|
||||
/* Lightbulb (suggest new: alert, channel) */
|
||||
window["env"]["svg"]["lightbulb"] = `<svg class="icon icon-lightbulb" 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 2C6.23858 2 4 4.23858 4 7C4 8.93153 5.09498 10.609 6.70272 11.4424C7.26034 11.7315 7.75508 12.2005 8.10683 12.5339C8.19009 12.6129 8.26535 12.6842 8.33152 12.7438C8.50937 12.9038 8.74227 13 9 13C9.25773 13 9.49063 12.9038 9.66848 12.7438C9.73465 12.6842 9.80991 12.6129 9.89317 12.5339C10.2449 12.2005 10.7397 11.7315 11.2973 11.4424C12.905 10.609 14 8.93153 14 7C14 4.23858 11.7614 2 9 2ZM2 7C2 3.13401 5.13401 0 9 0C12.866 0 16 3.13401 16 7C16 9.70754 14.4626 12.0543 12.2177 13.218C11.9338 13.3652 11.7145 13.5712 11.399 13.8675C11.2836 13.9758 11.1554 14.0963 11.0064 14.2304C10.4756 14.7081 9.7707 15 9 15C8.2293 15 7.52442 14.7081 6.99362 14.2304C6.84463 14.0963 6.71638 13.9758 6.601 13.8675C6.28552 13.5712 6.06624 13.3652 5.78227 13.218C3.53744 12.0543 2 9.70754 2 7Z" fill="currentColor"/>
|
||||
@@ -429,6 +486,14 @@
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 11C9.55228 11 10 11.4477 10 12V13C10 13.5523 9.55228 14 9 14C8.44772 14 8 13.5523 8 13V12C8 11.4477 8.44772 11 9 11Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
|
||||
/* Lock-unlocked (2FA) */
|
||||
window["env"]["svg"]["lock-unlocked"] = `<svg class="icon icon-lock-unlocked" 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="M2 8C2 7.44772 2.44772 7 3 7H15C15.5523 7 16 7.44772 16 8V17C16 17.5523 15.5523 18 15 18H3C2.44772 18 2 17.5523 2 17V8ZM4 9V16H14V9H4Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 9C11.4477 9 11 8.55228 11 8L11 4C11 3.73736 10.9483 3.47728 10.8478 3.23463C10.7473 2.99198 10.5999 2.7715 10.4142 2.58579C10.2285 2.40007 10.008 2.25275 9.76537 2.15224C9.52272 2.05173 9.26264 2 9 2C8.73736 2 8.47728 2.05173 8.23463 2.15224C7.99198 2.25275 7.7715 2.40007 7.58579 2.58579C7.40007 2.7715 7.25275 2.99198 7.15224 3.23463C7.05173 3.47728 7 3.73736 7 4L7 4.5C7 5.05228 6.55228 5.5 6 5.5C5.44772 5.5 5 5.05228 5 4.5L5 4C5 3.47471 5.10346 2.95457 5.30448 2.46927C5.5055 1.98396 5.80014 1.54301 6.17157 1.17157C6.54301 0.800138 6.98396 0.5055 7.46927 0.304481C7.95457 0.103462 8.47471 -3.95613e-07 9 -3.49691e-07C9.52529 -3.03769e-07 10.0454 0.103463 10.5307 0.304481C11.016 0.5055 11.457 0.800138 11.8284 1.17157C12.1999 1.54301 12.4945 1.98396 12.6955 2.46927C12.8965 2.95457 13 3.47471 13 4L13 8C13 8.55228 12.5523 9 12 9Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 11C9.55228 11 10 11.4477 10 12V13C10 13.5523 9.55228 14 9 14C8.44772 14 8 13.5523 8 13V12C8 11.4477 8.44772 11 9 11Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Login (Profile > Login audit)
|
||||
* https://ui.kerberos.io/?path=/story/icons-icon--logout
|
||||
* */
|
||||
@@ -485,6 +550,14 @@
|
||||
<rect y="13" width="14" height="2" rx="1" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Mic */
|
||||
window["env"]["svg"]["mic"] = `<svg class="icon icon-mic" 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="M5.91241 3C5.91241 1.34315 7.29475 0 8.99996 0C10.7052 0 12.0875 1.34315 12.0875 3V8C12.0875 9.65685 10.7052 11 8.99996 11C7.29475 11 5.91241 9.65685 5.91241 8V3ZM8.99996 2C8.43156 2 7.97078 2.44772 7.97078 3V8C7.97078 8.55228 8.43156 9 8.99996 9C9.56836 9 10.0291 8.55228 10.0291 8V3C10.0291 2.44772 9.56836 2 8.99996 2Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.2369 8.32815C14.786 8.47109 15.1118 9.01942 14.9647 9.55289C14.6129 10.8287 13.8376 11.956 12.7592 12.7601C11.6807 13.5642 10.3593 14 9 14C7.64065 14 6.31929 13.5642 5.24085 12.7601C4.1624 11.956 3.38715 10.8287 3.03532 9.55289C2.88821 9.01943 3.21403 8.47109 3.76306 8.32815C4.3121 8.1852 4.87644 8.50179 5.02355 9.03525C5.2581 9.88579 5.77493 10.6374 6.4939 11.1734C7.21286 11.7094 8.09377 12 9 12C9.90623 12 10.7871 11.7094 11.5061 11.1734C12.2251 10.6374 12.7419 9.88579 12.9764 9.03525C13.1236 8.50179 13.6879 8.1852 14.2369 8.32815Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.99995 13C9.56835 13 10.0291 13.4477 10.0291 14V17C10.0291 17.5523 9.56835 18 8.99995 18C8.43154 18 7.97076 17.5523 7.97076 17V14C7.97076 13.4477 8.43154 13 8.99995 13Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.91241 17C5.91241 16.4477 6.37319 16 6.9416 16L11.0583 16C11.6267 16 12.0875 16.4477 12.0875 17C12.0875 17.5523 11.6267 18 11.0583 18L6.9416 18C6.37319 18 5.91241 17.5523 5.91241 17Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Mic muted */
|
||||
window["env"]["svg"]["mic-muted"] = `<svg class="icon icon-mic-muted" 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="M17.7071 1.70711C18.0976 1.31658 18.0976 0.683417 17.7071 0.292893C17.3166 -0.0976311 16.6834 -0.0976311 16.2929 0.292893L12 4.58579V3C12 1.34315 10.6569 0 9.00002 0C7.34316 0 6.00002 1.34315 6.00002 3V8C6.00002 8.72295 6.25574 9.38617 6.68166 9.90414L5.97212 10.6137C5.5804 10.1599 5.29334 9.62103 5.13638 9.03525C4.99343 8.50179 4.4451 8.1852 3.91163 8.32815C3.37817 8.47109 3.06158 9.01943 3.20452 9.55289C3.45277 10.4793 3.91796 11.3275 4.55537 12.0304L0.292908 16.2929C-0.0976158 16.6834 -0.0976158 17.3166 0.292908 17.7071C0.683433 18.0976 1.3166 18.0976 1.70712 17.7071L17.7071 1.70711ZM8.11666 8.46914L10 6.58579V3C10 2.44772 9.5523 2 9.00002 2C8.44773 2 8.00002 2.44772 8.00002 3V8C8.00002 8.16954 8.04221 8.32923 8.11666 8.46914ZM8.99479 18H7.00002C6.44773 18 6.00002 17.5523 6.00002 17C6.00002 16.4477 6.44773 16 7.00002 16H8.00002V14.1213L8.17796 13.9434L9.11482 13.0065L10.3594 11.7619C10.7436 11.6231 11.1067 11.4254 11.4351 11.1734C12.1337 10.6374 12.6359 9.88579 12.8638 9.03525C13.0067 8.50179 13.5551 8.1852 14.0885 8.32815C14.622 8.47109 14.9386 9.01943 14.7956 9.55289C14.4538 10.8287 13.7005 11.956 12.6526 12.7601C11.8711 13.3598 10.9582 13.7547 9.99659 13.9167C9.99886 13.9441 10 13.9719 10 14V16H11C11.5523 16 12 16.4477 12 17C12 17.5523 11.5523 18 11 18H9.00524L9.00002 18L8.99479 18Z" fill="currentColor"/>
|
||||
@@ -520,6 +593,14 @@
|
||||
<path d="M10.9888 9.33342C10.1801 10.5437 8.95898 11.4188 7.55293 11.7956L6.60717 8.26595C7.38922 8.05562 8.0409 7.44557 8.26558 6.60707C8.60085 5.35584 7.85831 4.06974 6.60708 3.73447C5.35585 3.39921 4.06975 4.14174 3.73448 5.39297C3.39922 6.64419 4.14174 7.93029 5.39296 8.26556L4.4471 11.7956C3.04105 11.4188 1.81991 10.5437 1.0112 9.33342C0.202481 8.12309 -0.138655 6.66004 0.0513455 5.21684C0.241346 3.77365 0.949525 2.44874 2.04394 1.48896C3.13836 0.529184 4.54437 -2.15956e-07 6.00002 0C7.45566 1.68642e-07 8.86168 0.529185 9.95609 1.48896C11.0505 2.44874 11.7587 3.77365 11.9487 5.21684C12.1387 6.66004 11.7975 8.12309 10.9888 9.33342Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Other */
|
||||
window["env"]["svg"]["other"] = `<svg class="icon icon-other" 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="M16 18C17.1046 18 18 17.1046 18 16L18 2C18 0.89543 17.1046 -3.91405e-08 16 -8.74228e-08L2 -6.99382e-07C0.89543 1.15968e-06 7.47664e-07 0.895431 6.99382e-07 2L8.74228e-08 16C3.91405e-08 17.1046 0.89543 18 2 18L16 18ZM16 2L16 16L2 16L2 2L16 2Z" fill="currentColor"/>
|
||||
<path d="M10 13C10 13.5523 9.55228 14 9 14C8.44772 14 8 13.5523 8 13C8 12.4477 8.44772 12 9 12C9.55228 12 10 12.4477 10 13Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 14C9.55228 14 10 13.5523 10 13C10 12.4477 9.55228 12 9 12C8.44772 12 8 12.4477 8 13C8 13.5523 8.44772 14 9 14Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.42779 5.35557C7.80007 5.16943 8.32724 5 9 5C9.64804 5 10.3917 5.15968 10.9957 5.63783C11.6367 6.14533 12 6.91736 11.9999 7.87504C11.9999 9.84193 10.5118 11 8.99995 11C8.44766 11 7.99995 10.5523 7.99995 10C7.99995 9.44772 8.44766 9 8.99995 9C9.4882 9 9.99992 8.65807 9.99995 7.87496C9.99996 7.45764 9.86324 7.29217 9.75428 7.20592C9.60827 7.09032 9.35196 7 9 7C8.67276 7 8.44993 7.08057 8.32221 7.14443C8.25672 7.17717 8.21379 7.20685 8.19375 7.22187C8.18965 7.22495 8.18657 7.22737 8.18451 7.22902C7.79252 7.59749 7.17597 7.59018 6.79289 7.20711C6.40237 6.81658 6.40237 6.18342 6.79289 5.79289L7.49995 6.49995C6.79289 5.79289 6.79324 5.79255 6.79359 5.7922L6.7943 5.79149L6.79576 5.79003L6.79885 5.78699L6.80567 5.78033L6.82192 5.76485C6.83391 5.75361 6.84824 5.74054 6.86493 5.72594C6.89828 5.69676 6.9412 5.66129 6.99375 5.62187C7.09871 5.54315 7.24328 5.44783 7.42779 5.35557Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Person (Alerts > Detections, detection classification) */
|
||||
window["env"]["svg"]["person"] = `<svg class="icon icon-person" 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="M7.00024 2C7.00024 0.89543 7.89567 0 9.00024 0C10.1048 0 11.0002 0.89543 11.0002 2C11.0002 3.10457 10.1048 4 9.00024 4C7.89567 4 7.00024 3.10457 7.00024 2Z" fill="currentColor"/>
|
||||
@@ -592,11 +673,22 @@
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.29289 11.7071C2.90237 11.3166 2.90237 10.6834 3.29289 10.2929L8.29289 5.29289C8.68342 4.90237 9.31658 4.90237 9.70711 5.29289L14.7071 10.2929C15.0976 10.6834 15.0976 11.3166 14.7071 11.7071C14.3166 12.0976 13.6834 12.0976 13.2929 11.7071L9 7.41421L4.70711 11.7071C4.31658 12.0976 3.68342 12.0976 3.29289 11.7071Z" fill="white"/>
|
||||
</svg>`
|
||||
/* PTZ Center */
|
||||
window["env"]["svg"]["ptz-center"] = `<svg class="icon icon-ptz-center" 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="M16 18C17.1046 18 18 17.1046 18 16L18 2C18 0.89543 17.1046 -3.91405e-08 16 -8.74228e-08L11 -3.0598e-07L6 -5.24537e-07L2 -6.99382e-07C0.89543 1.15968e-06 7.47664e-07 0.895431 6.99382e-07 2L8.74228e-08 16C3.91405e-08 17.1046 0.89543 18 2 18L16 18ZM16 2L16 16L2 16L2 2L6 2L16 2Z" fill="white"/>
|
||||
<path d="M18 6H0V12H18V6Z" fill="black"/>
|
||||
<path d="M6 0L6 18H12V0H6Z" fill="black"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 11.3333C7.71134 11.3333 6.66667 10.2887 6.66667 9C6.66667 7.71134 7.71134 6.66667 9 6.66667C10.2887 6.66667 11.3333 7.71134 11.3333 9C11.3333 10.2887 10.2887 11.3333 9 11.3333ZM6 9C6 10.6569 7.34315 12 9 12C10.6569 12 12 10.6569 12 9C12 7.34315 10.6569 6 9 6C7.34315 6 6 7.34315 6 9Z" fill="currentColor" stroke="white"/>
|
||||
window["env"]["svg"]["ptz-center"] = `<svg class="icon icon-ptz-center" svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M7 1H2C1.44772 1 1 1.44772 1 2V7" stroke="currentColor" stroke-width="2"/>
|
||||
<path d="M11 1H16C16.5523 1 17 1.44772 17 2V7" stroke="currentColor" stroke-width="2"/>
|
||||
<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"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.2 12.0667C7.39587 12.0667 5.93333 10.6041 5.93333 8.8C5.93333 6.99587 7.39587 5.53333 9.2 5.53333C11.0041 5.53333 12.4667 6.99587 12.4667 8.8C12.4667 10.6041 11.0041 12.0667 9.2 12.0667ZM5 8.8C5 11.1196 6.8804 13 9.2 13C11.5196 13 13.4 11.1196 13.4 8.8C13.4 6.4804 11.5196 4.6 9.2 4.6C6.8804 4.6 5 6.4804 5 8.8Z" fill="white" stroke="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Queue */
|
||||
window["env"]["svg"]["queue"] = `<svg class="icon icon-queue" 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="M13 2C12.4477 2 12 2.44772 12 3C12 3.55228 12.4477 4 13 4C13.5523 4 14 3.55228 14 3C14 2.44772 13.5523 2 13 2ZM10 3C10 1.34315 11.3431 0 13 0C14.6569 0 16 1.34315 16 3C16 4.65685 14.6569 6 13 6C11.3431 6 10 4.65685 10 3Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5 14C4.44772 14 4 14.4477 4 15C4 15.5523 4.44772 16 5 16C5.55228 16 6 15.5523 6 15C6 14.4477 5.55228 14 5 14ZM2 15C2 13.3431 3.34315 12 5 12C6.65685 12 8 13.3431 8 15C8 16.6569 6.65685 18 5 18C3.34315 18 2 16.6569 2 15Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 8C8.44772 8 8 8.44772 8 9C8 9.55228 8.44772 10 9 10C9.55228 10 10 9.55228 10 9C10 8.44772 9.55228 8 9 8ZM6 9C6 7.34315 7.34315 6 9 6C10.6569 6 12 7.34315 12 9C12 10.6569 10.6569 12 9 12C7.34315 12 6 10.6569 6 9Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5 2C4.44772 2 4 2.44772 4 3C4 3.55228 4.44772 4 5 4C5.55228 4 6 3.55228 6 3C6 2.44772 5.55228 2 5 2ZM2 3C2 1.34315 3.34315 0 5 0C6.65685 0 8 1.34315 8 3C8 4.65685 6.65685 6 5 6C3.34315 6 2 4.65685 2 3Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.2929 12.2929C14.6834 11.9024 15.3166 11.9024 15.7071 12.2929L17.7071 14.2929C18.0976 14.6834 18.0976 15.3166 17.7071 15.7071L15.7071 17.7071C15.3166 18.0976 14.6834 18.0976 14.2929 17.7071C13.9024 17.3166 13.9024 16.6834 14.2929 16.2929L15.5858 15L14.2929 13.7071C13.9024 13.3166 13.9024 12.6834 14.2929 12.2929Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3 2H1C0.447715 2 0 2.44772 0 3C0 3.55228 0.447715 4 1 4H3V2ZM7 4V2H11V4H7ZM15 4.26756C15.5978 4.61337 16 5.25972 16 6C16 7.10457 15.1046 8 14 8H11V10H14C16.2091 10 18 8.20914 18 6C18 4.13616 16.7252 2.57006 15 2.12602V4.26756ZM7 10V8H4C1.79086 8 0 9.79086 0 12C0 13.8638 1.27477 15.4299 3 15.874V13.7324C2.4022 13.3866 2 12.7403 2 12C2 10.8954 2.89543 10 4 10H7ZM7 14V16H17C17.5523 16 18 15.5523 18 15C18 14.4477 17.5523 14 17 14H7Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Refresh */
|
||||
@@ -614,6 +706,15 @@
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 9V7H10V9H15C15.5523 9 16 9.44772 16 10V13H14V11H10V13H8V11H4V13H2V10C2 9.44772 2.44772 9 3 9H8Z" fill="#A69D9D"/>
|
||||
</svg>`
|
||||
|
||||
/* Rules */
|
||||
window["env"]["svg"]["rules"] = `<svg class="icon icon-rules" 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.55229 0 8 0.447715 8 1V4.35659L10.6126 1.78711C11.004 1.40211 11.6326 1.40473 12.0209 1.79296L16.2635 6.0356C16.6512 6.42325 16.6544 7.05075 16.2708 7.44242L13.7659 10H17C17.2652 10 17.5196 10.1054 17.7071 10.2929C17.8946 10.4804 18 10.7348 18 11V17C18 17.5523 17.5523 18 17 18H4C1.79086 18 0 16.2091 0 14V1ZM11.8071 12L7.88946 16H16V12H11.8071ZM8 13.0288L14.1495 6.75002L11.3079 3.90843L8 7.1618V13.0288ZM6 14C6 15.1046 5.10457 16 4 16C2.89543 16 2 15.1046 2 14V2H6V14Z" fill="#A69D9D"/>
|
||||
<path d="M5 14C5 14.5523 4.55228 15 4 15C3.44772 15 3 14.5523 3 14C3 13.4477 3.44772 13 4 13C4.55228 13 5 13.4477 5 14Z" fill="#A69D9D"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 15C4.55228 15 5 14.5523 5 14C5 13.4477 4.55228 13 4 13C3.44772 13 3 13.4477 3 14C3 14.5523 3.44772 15 4 15Z" fill="#A69D9D"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 6H1V5H7V6Z" fill="#A69D9D"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 10H1V9H7V10Z" fill="#A69D9D"/>
|
||||
</svg>`
|
||||
|
||||
/* Save */
|
||||
window["env"]["svg"]["save"] = `<svg class="icon icon-save" 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 0H14C14.2652 0 14.5196 0.105357 14.7071 0.292893L17.7071 3.29289C17.8946 3.48043 18 3.73478 18 4V17C18 17.5523 17.5523 18 17 18H1C0.447715 18 0 17.5523 0 17V1ZM2 2V16H16V4.41421L13.5858 2H2Z" fill="currentColor"/>
|
||||
@@ -663,6 +764,20 @@
|
||||
<rect x="12" y="14" width="5.99999" height="2" rx="1" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Sound on */
|
||||
window["env"]["svg"]["sound-on"] = `<svg class="icon icon-sound-on" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M3 7.70711V10.7929C3 11.2456 3.17986 11.6799 3.5 12C3.82014 12.3201 4.25435 12.5 4.70711 12.5H5.17157C5.70201 12.5 6.21071 12.7107 6.58579 13.0858L8.79289 15.2929C9.18342 15.6834 9.81658 15.6834 10.2071 15.2929C10.3946 15.1054 10.5 14.851 10.5 14.5858V3.91421C10.5 3.649 10.3946 3.39464 10.2071 3.20711C9.81658 2.81658 9.18342 2.81658 8.79289 3.20711L6.58579 5.41421C6.21071 5.78929 5.70201 6 5.17157 6H4.70711C4.25435 6 3.82014 6.17986 3.5 6.5C3.17986 6.82014 3 7.25435 3 7.70711Z" stroke="currentColor" stroke-width="2"/>
|
||||
<path d="M13 14.5C15.5 13 19.1 8.8 13.5 4" stroke="currentColor" stroke-width="2"/>
|
||||
</svg>`
|
||||
|
||||
/* Sound off */
|
||||
window["env"]["svg"]["sound-off"] = `<svg class="icon icon-sound-off" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M3 7.70711V10.7929C3 11.2456 3.17986 11.6799 3.5 12C3.82014 12.3201 4.25435 12.5 4.70711 12.5H5.17157C5.70201 12.5 6.21071 12.7107 6.58579 13.0858L8.79289 15.2929C9.18342 15.6834 9.81658 15.6834 10.2071 15.2929C10.3946 15.1054 10.5 14.851 10.5 14.5858V3.91421C10.5 3.649 10.3946 3.39464 10.2071 3.20711C9.81658 2.81658 9.18342 2.81658 8.79289 3.20711L6.58579 5.41421C6.21071 5.78929 5.70201 6 5.17157 6H4.70711C4.25435 6 3.82014 6.17986 3.5 6.5C3.17986 6.82014 3 7.25435 3 7.70711Z" stroke="currentColor" stroke-width="2"/>
|
||||
<path d="M13 14.5C15.5 13 19.1 8.8 13.5 4" stroke="currentColor" stroke-width="2"/>
|
||||
<path d="M4 15.5L15 3" stroke="currentColor"/>
|
||||
<path d="M3.07037 15.0685L14.4038 2.41365" stroke="white"/>
|
||||
</svg>`
|
||||
|
||||
/* Star (mark as fav) */
|
||||
window["env"]["svg"]["star"] = `<svg class="icon icon-star" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M8.09306 1.95257C8.45148 1.18092 9.54852 1.18092 9.90694 1.95257L11.4346 5.24154C11.5808 5.55636 11.8799 5.77283 12.2246 5.81342L15.8347 6.23847C16.6842 6.33849 17.0241 7.3896 16.3941 7.96815L13.7346 10.4105C13.4772 10.6469 13.3619 11.0005 13.4304 11.3432L14.1379 14.8787C14.3051 15.7147 13.4166 16.3631 12.6714 15.9489L9.48585 14.1782C9.18372 14.0102 8.81628 14.0102 8.51415 14.1782L5.32856 15.9489C4.58338 16.3632 3.69487 15.7147 3.86215 14.8787L4.56955 11.3432C4.63813 11.0005 4.5228 10.6469 4.26538 10.4105L1.60586 7.96815C0.975867 7.3896 1.31584 6.33849 2.16532 6.23847L5.77538 5.81342C6.12012 5.77283 6.41916 5.55636 6.56539 5.24154L8.09306 1.95257Z" stroke="currentColor" stroke-width="2"/>
|
||||
@@ -730,14 +845,13 @@
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.42779 5.35557C7.80007 5.16943 8.32724 5 9 5C9.64804 5 10.3917 5.15968 10.9957 5.63783C11.6367 6.14533 12 6.91736 11.9999 7.87504C11.9999 9.84193 10.5118 11 8.99995 11C8.44766 11 7.99995 10.5523 7.99995 10C7.99995 9.44772 8.44766 9 8.99995 9C9.4882 9 9.99992 8.65807 9.99995 7.87496C9.99996 7.45764 9.86324 7.29217 9.75428 7.20592C9.60827 7.09032 9.35196 7 9 7C8.67276 7 8.44993 7.08057 8.32221 7.14443C8.25672 7.17717 8.21379 7.20685 8.19375 7.22187C8.18965 7.22495 8.18657 7.22737 8.18451 7.22902C7.79252 7.59749 7.17597 7.59018 6.79289 7.20711C6.40237 6.81658 6.40237 6.18342 6.79289 5.79289L7.49995 6.49995C6.79289 5.79289 6.79324 5.79255 6.79359 5.7922L6.7943 5.79149L6.79576 5.79003L6.79885 5.78699L6.80567 5.78033L6.82192 5.76485C6.83391 5.75361 6.84824 5.74054 6.86493 5.72594C6.89828 5.69676 6.9412 5.66129 6.99375 5.62187C7.09871 5.54315 7.24328 5.44783 7.42779 5.35557Z" fill="#A69D9D"/>
|
||||
</svg>`
|
||||
|
||||
/* Task approved */
|
||||
window["env"]["svg"]["task-approved"] = `<svg class="icon icon-task-approved" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g opacity="1">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.29289 8.29289C5.68342 7.90237 6.31658 7.90237 6.70711 8.29289L8 9.58579L11.2929 6.29289C11.6834 5.90237 12.3166 5.90237 12.7071 6.29289C13.0976 6.68342 13.0976 7.31658 12.7071 7.70711L8.70711 11.7071C8.31658 12.0976 7.68342 12.0976 7.29289 11.7071L5.29289 9.70711C4.90237 9.31658 4.90237 8.68342 5.29289 8.29289Z" fill="green"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M16 18C17.1046 18 18 17.1046 18 16L18 2C18 0.89543 17.1046 -3.91405e-08 16 -8.74228e-08L2 -6.99382e-07C0.89543 1.15968e-06 7.47664e-07 0.895431 6.99382e-07 2L8.74228e-08 16C3.91405e-08 17.1046 0.89543 18 2 18L16 18ZM16 2L16 16L2 16L2 2L16 2Z" fill="green"/>
|
||||
</g>
|
||||
</svg>`
|
||||
|
||||
/* Task approved */
|
||||
window["env"]["svg"]["task-approved"] = `<svg class="icon icon-task-approved" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g opacity="1">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.29289 8.29289C5.68342 7.90237 6.31658 7.90237 6.70711 8.29289L8 9.58579L11.2929 6.29289C11.6834 5.90237 12.3166 5.90237 12.7071 6.29289C13.0976 6.68342 13.0976 7.31658 12.7071 7.70711L8.70711 11.7071C8.31658 12.0976 7.68342 12.0976 7.29289 11.7071L5.29289 9.70711C4.90237 9.31658 4.90237 8.68342 5.29289 8.29289Z" fill="green"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M16 18C17.1046 18 18 17.1046 18 16L18 2C18 0.89543 17.1046 -3.91405e-08 16 -8.74228e-08L2 -6.99382e-07C0.89543 1.15968e-06 7.47664e-07 0.895431 6.99382e-07 2L8.74228e-08 16C3.91405e-08 17.1046 0.89543 18 2 18L16 18ZM16 2L16 16L2 16L2 2L16 2Z" fill="green"/>
|
||||
</g>
|
||||
</svg>`
|
||||
|
||||
/* Trash */
|
||||
window["env"]["svg"]["trash"] = `<svg class="icon icon-trash" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
@@ -746,6 +860,11 @@ window["env"]["svg"]["task-approved"] = `<svg class="icon icon-task-approved" wi
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 1C7 0.447715 7.44772 0 8 0H10C10.5523 0 11 0.447715 11 1V3H7V1Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* TV monitor */
|
||||
window["env"]["svg"]["tvmonitor"] = `<svg class="icon icon-tvmonitor" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M11.5605 3.74998H15.756C16.167 3.74998 16.5 4.08373 16.5 4.49998V15C16.5 15.414 16.1588 15.75 15.756 15.75H2.24401C2.14586 15.7498 2.04871 15.7302 1.95814 15.6924C1.86757 15.6545 1.78537 15.5992 1.71624 15.5295C1.64711 15.4598 1.59243 15.3772 1.55532 15.2863C1.51822 15.1954 1.49942 15.0981 1.50001 15V4.49998C1.50001 4.08598 1.84126 3.74998 2.24401 3.74998H6.43951L4.53751 1.84798L5.59801 0.787476L8.56051 3.74998H9.43951L12.402 0.787476L13.4625 1.84798L11.5605 3.74998ZM3.00001 5.24998V14.25H15V5.24998H3.00001Z" fill="currentColor"/>
|
||||
</svg>`
|
||||
|
||||
/* Upload (Forward buttons) */
|
||||
window["env"]["svg"]["upload"] = `<svg class="icon icon-upload" 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="M1 13C1.55228 13 2 13.4477 2 14V16H16V14C16 13.4477 16.4477 13 17 13C17.5523 13 18 13.4477 18 14V17C18 17.5523 17.5523 18 17 18H1C0.447715 18 0 17.5523 0 17V14C0 13.4477 0.447715 13 1 13Z" fill="currentColor"/>
|
||||
@@ -767,4 +886,22 @@ window["env"]["svg"]["task-approved"] = `<svg class="icon icon-task-approved" wi
|
||||
<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>`
|
||||
|
||||
/* 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,409 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"
|
||||
/>
|
||||
<meta name="description" content="Kerberos.io Mailing">
|
||||
<style type="text/css">
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-Medium.woff2?v=3.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-Medium.woff?v=3.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-display: swap;
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff2?v=3.18") format("woff2"),
|
||||
url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff?v=3.18") format("woff");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter var';
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
font-style: normal;
|
||||
font-named-instance: 'Regular';
|
||||
src: url("https://kerberos.io/dist/fonts/Inter-roman.var.woff2?v=3.18") format("woff2");
|
||||
}
|
||||
|
||||
body{
|
||||
background: #E5E5E5;
|
||||
margin-top:0;
|
||||
margin-bottom: 0;
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
padding-top: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
padding-bottom: 0;
|
||||
font-family: 'Inter';
|
||||
}
|
||||
a, a:hover, a:active {
|
||||
color: #262424;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.corner-td{
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
table {border-collapse:separate;max-width: 850px; margin: 0 auto; width: 100%;}
|
||||
.ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td {line-height: 100%;}
|
||||
.ExternalClass {width: 100%;}
|
||||
@media screen and (max-width:500px){
|
||||
.tab-td{
|
||||
padding-left: 10px!important;
|
||||
}
|
||||
.tab-td a h4{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.corner-td{
|
||||
width: 20px!important;
|
||||
}
|
||||
.company-name-td h3{
|
||||
font-size: 16px!important;
|
||||
}
|
||||
table.header-table{
|
||||
padding-top: 8px!important;
|
||||
padding-right: 0px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 0px!important;
|
||||
}
|
||||
.colored-card-td h4{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.colored-card-td h2{
|
||||
font-size: 20px!important;
|
||||
}
|
||||
.colored-card-td a p{
|
||||
font-size: 12px!important;
|
||||
width: 143px!important;
|
||||
}
|
||||
.colored-card-td{
|
||||
padding-top: 24px!important;
|
||||
padding-right: 24px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 24px!important;
|
||||
}
|
||||
.colorless-card-td{
|
||||
padding-top: 24px!important;
|
||||
padding-right: 24px!important;
|
||||
padding-bottom: 24px!important;
|
||||
padding-left: 24px!important;
|
||||
}
|
||||
.colorless-card-td h3{
|
||||
font-size: 18px!important;
|
||||
}
|
||||
.colorless-card-td p{
|
||||
font-size: 14px!important;
|
||||
}
|
||||
.colorless-card-table{
|
||||
margin-left: 0px!important;
|
||||
margin-right: 0px!important;
|
||||
margin-top: 24px!important;
|
||||
margin-bottom: 24px!important;
|
||||
}
|
||||
.footer-td{
|
||||
display: table-row!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width:600px) {
|
||||
.footer-td{
|
||||
display: table-row!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width:650px) {
|
||||
.footer-table{
|
||||
margin-left: 0px!important;
|
||||
margin-right: 0px!important;
|
||||
margin-top: 0px!important;
|
||||
margin-bottom: 36px!important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body height="100%" width="100%">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="36" class="header-table" style="padding-top: 36px ;padding-right: 0;padding-bottom: 36px;padding-left: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td width="48" height="36" align="left"><img alt="Kerberos.io" width="36" height="36" src="https://kerberos.io/images/email/kerberos.png"/></td>
|
||||
<td height="36" align="left" class="company-name-td">
|
||||
<h3 width="36" height="36" style=" font-family: Inter;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #262424;">Kerberos.io</h3>
|
||||
</td>
|
||||
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right">
|
||||
<a style="text-decoration: none;color: none;" href={{tab1_href}}>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: right;
|
||||
color: #6D6666;">{{tab1_title}}</h4>
|
||||
</a>
|
||||
</td>
|
||||
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right" >
|
||||
<a style="text-decoration: none;color: none;" href={{tab2_href}}>
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: right;
|
||||
color: #6D6666;">{{tab2_title}}</h4>
|
||||
</a>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<td class="colored-card-td" bgcolor="#57356B" style="padding-left: 48px;padding-right: 48px;padding-top: 48px;padding-bottom: 48px;border-radius: 4px;background-color:#57356B;">
|
||||
<h4 style="font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#b09fb9;">Hey, {{assignee}}</h4>
|
||||
<h2 style=" font-family: Inter;
|
||||
font-size: 24px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
padding-top: 12px;
|
||||
padding-bottom: 24px;
|
||||
padding-left: 0;
|
||||
padding-right: 0;">You have been assigned to a task</h2>
|
||||
<p style="font-family: Inter;
|
||||
font-size: 18px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
">Task Details:</p>
|
||||
<ul style="font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
padding-top: 0;
|
||||
padding-bottom: 12px;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
margin-left: 12px">
|
||||
<li>Task Name: {{task_name}}</li>
|
||||
<li>Assigned By: {{user}}</li>
|
||||
</ul>
|
||||
<a style="text-decoration: none;color: none;" href="{{link}}">
|
||||
<p style="font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
line-height: 20px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#FFFFFF;
|
||||
background-color: #84559F;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
padding-right: 16px;
|
||||
padding-left: 16px;
|
||||
width: 166px;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;">View task on kerberos hub</p>
|
||||
</a>
|
||||
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tr>
|
||||
<td bgcolor="E5E5E5">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="footer-table" style="margin-top: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="corner-td" align="left"></td>
|
||||
<!--[if mso | IE]>
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
|
||||
<![endif]-->
|
||||
<td height="146" width="190" class="footer-td" style="margin-bottom: 12px;" valign="top" align="left">
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h4 style=" font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#6D6666;">Get in touch</h4>
|
||||
<a style="text-decoration: none;color: none;" href="mailto:support@verstraeten.io">
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">support@kerberos.io</p>
|
||||
</a>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">9000 Ghent, BE</p>
|
||||
|
||||
<a style="text-decoration: none;color: none;" href="https://kerberos.io/">
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">https://kerberos.io</p>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<!--[if mso | IE]>
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
|
||||
<![endif]-->
|
||||
<td class="footer-td" style="border-radius: 4px;padding-left: 0;padding-right: 0;padding-top: 0;padding-bottom: 0; margin-bottom: 12px;" valign="top" align="left">
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h4 style=" font-family: Inter;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color:#6D6666;">About Kerberos</h4>
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #A69D9D;">Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.</p>
|
||||
|
||||
|
||||
<p style="margin-top: 12px;">
|
||||
<a href="https://twitter.com/kerberosio" style="text-decoration: none;color: none;">
|
||||
<img width="24" height="24" alt="Twitter" src="https://kerberos.io/images/email/twitter.png"/>
|
||||
</a>
|
||||
<a href="https://reddit.com/r/kerberos_io" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Reddit" src="https://kerberos.io/images/email/reddit.png"/>
|
||||
</a>
|
||||
<a href="https://www.youtube.com/channel/UCnd9q7iRNNw4W95eQwQuECA" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Youtube" src="https://kerberos.io/images/email/youtube.png"/>
|
||||
</a>
|
||||
<a href="https://github.com/kerberos-io" style="text-decoration: none;color: none;">
|
||||
<img g width="24" height="24" alt="Github" src="https://kerberos.io/images/email/github.png"/>
|
||||
</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td class="corner-td" align="right"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
|
||||
<tbody>
|
||||
<tr style="height: 50px">
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,19 @@
|
||||
Kerberos.io
|
||||
------------
|
||||
|
||||
Hey, {{assignee}}
|
||||
You have been assigned to a new task on Kerberos Hub.
|
||||
Task Details:
|
||||
- Task Name: {{task_name}}
|
||||
- Assigned By: {{user}}
|
||||
- Link: {{link}}
|
||||
|
||||
Get in touch
|
||||
------------
|
||||
support@kerberos.io
|
||||
9000 Ghent, BE
|
||||
https://kerberos.io
|
||||
|
||||
About Kerberos
|
||||
------------
|
||||
Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.
|
||||
@@ -1,3 +1,31 @@
|
||||
package templates
|
||||
|
||||
var TEMPLATE_DETECTION_TEXT = `
|
||||
Kerberos.io
|
||||
------------
|
||||
|
||||
Hey, {{user}}
|
||||
Welcome to Kerberos Hub
|
||||
Activate your account ->
|
||||
{{link}}
|
||||
|
||||
Kerberos Hub in a nutshell
|
||||
With Kerberos Hub you can access your surveillance media remotely. By subscribing to a plan, you get access to a set of features, from advanced filtering, notifications to machine learning.
|
||||
|
||||
However before you get started this amazing applications, please activate your account.
|
||||
|
||||
Get in touch
|
||||
------------
|
||||
support@kerberos.io
|
||||
9000 Ghent, BE
|
||||
https://kerberos.io
|
||||
|
||||
About Kerberos
|
||||
------------
|
||||
Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.
|
||||
`
|
||||
|
||||
var TEMPLATE_DETECTION = `
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
@@ -275,10 +303,25 @@
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #6D6666;
|
||||
margin-top: 12px;">An alert was send to your e-mail as one of the conditions was triggered. Please watch the recording, by clicking on below button.
|
||||
margin-top: 12px;">An alert was send to your e-mail as one of the conditions was triggered for your device <b>{{devicename}}</b>. Please watch the recording, by clicking on below button.
|
||||
If you believe this event is a false positive, go to your Kerberos Hub account and change the alert settings accordingly.</p>
|
||||
|
||||
|
||||
<p style=" font-family: Inter;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
mso-line-height-rule:exactly;
|
||||
letter-spacing: 0em;
|
||||
text-align: left;
|
||||
color: #6D6666;
|
||||
margin-top: 12px;">Following event was detected at {{datetime}}.</p>
|
||||
|
||||
<a style="text-decoration: none;color: none;" href="{{link}}">
|
||||
{{thumbnail}}
|
||||
</a>
|
||||
|
||||
<a style="text-decoration: none;color: none;" href="{{link}}">
|
||||
<p style="font-family: Inter;
|
||||
font-size: 14px;
|
||||
@@ -429,4 +472,4 @@ If you believe this event is a false positive, go to your Kerberos Hub account a
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</html>`
|
||||
|
||||
@@ -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"
|
||||
@@ -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 -}}
|
||||
@@ -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
|
||||
@@ -2,6 +2,7 @@ apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: hub-api-svc
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: hub-api-svc
|
||||
spec:
|
||||
@@ -16,6 +17,7 @@ spec:
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: hub-api
|
||||
{{ if ne .Values.ingress "" }}
|
||||
---
|
||||
{{ if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
@@ -25,38 +27,22 @@ apiVersion: networking.k8s.io/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: hub-api-ingress
|
||||
namespace: {{ .Release.Namespace }}
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: {{ .Values.ingress }}
|
||||
{{- if eq .Values.ingress "nginx" }}
|
||||
kubernetes.io/tls-acme: "true"
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
nginx.ingress.kubernetes.io/proxy-body-size: 200m # This might throw a 413 Entity Too Large when uploading large recordings.
|
||||
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
||||
{{- end }}
|
||||
spec:
|
||||
ingressClassName: {{ .Values.ingress }}
|
||||
{{- with .Values.kerberoshub.api.tls }}
|
||||
tls:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
rules:
|
||||
- host: "{{ .Values.kerberoshub.api.url }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: hub-api-svc
|
||||
servicePort: 8081
|
||||
{{- if .Values.kerberoshub.api.legacyUrl }}
|
||||
- host: "{{ .Values.kerberoshub.api.legacyUrl }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: hub-api-svc
|
||||
servicePort: 8081
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{ if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
rules:
|
||||
- host: "{{ .Values.kerberoshub.api.url }}"
|
||||
http:
|
||||
@@ -90,12 +76,32 @@ spec:
|
||||
name: hub-api-svc
|
||||
port:
|
||||
number: 80
|
||||
{{- end }}
|
||||
{{ else }}
|
||||
rules:
|
||||
- host: "{{ .Values.kerberoshub.api.url }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: hub-api-svc
|
||||
servicePort: 8081
|
||||
{{- if .Values.kerberoshub.api.legacyUrl }}
|
||||
- host: "{{ .Values.kerberoshub.api.legacyUrl }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: hub-api-svc
|
||||
servicePort: 8081
|
||||
{{- end }}
|
||||
{{ end }}
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: hub-api
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: {{ .Values.kerberoshub.api.replicas }}
|
||||
selector:
|
||||
@@ -122,7 +128,7 @@ spec:
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: hub-api
|
||||
image: "{{ .Values.kerberoshub.api.repository }}:{{ .Values.kerberoshub.api.tag }}"
|
||||
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberoshub.api.repository }}:{{ .Values.kerberoshub.api.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberoshub.api.pullPolicy }}
|
||||
{{- with .Values.kerberoshub.api.resources }}
|
||||
resources:
|
||||
@@ -138,6 +144,8 @@ spec:
|
||||
env:
|
||||
- name: READ_ONLY
|
||||
value: "{{ .Values.readonly }}"
|
||||
- name: SUPPORT_ENABLED
|
||||
value: "{{ .Values.kerberoshub.support.enabled }}"
|
||||
- name: CLOUD_API_URL
|
||||
value: "{{ .Values.kerberoshub.api.url }}"
|
||||
- name: API_URL
|
||||
@@ -171,14 +179,22 @@ spec:
|
||||
value: "{{ .Values.kerberoshub.api.jwtSecret }}"
|
||||
|
||||
# SSO (OIDC) setup
|
||||
- name: SSO_ISSUER
|
||||
value: "{{ .Values.kerberoshub.api.sso.issuer }}"
|
||||
- name: SSO_CLIENTID
|
||||
value: "{{ .Values.kerberoshub.api.sso.clientId }}"
|
||||
- name: SSO_CLIENTSECRET
|
||||
value: "{{ .Values.kerberoshub.api.sso.clientSecret }}"
|
||||
- name: SSO_REDIRECTURL
|
||||
value: "{{ .Values.kerberoshub.api.schema }}://{{ .Values.kerberoshub.api.url }}{{ .Values.kerberoshub.api.sso.redirectUrl }}"
|
||||
- name: SSO_DOMAINS
|
||||
value: "{{- range .Values.kerberoshub.api.sso }}{{ .domain }};{{- end }}"
|
||||
- name: SSO_REDIRECTURLS
|
||||
value: "{{- range .Values.kerberoshub.api.sso }}{{ .redirectUrl }};{{- end }}"
|
||||
- name: SSO_CLAIMIDS
|
||||
value: "{{- range .Values.kerberoshub.api.sso }}{{ .claimId }};{{- end }}"
|
||||
- name: SSO_ISSUERS
|
||||
value: "{{- range .Values.kerberoshub.api.sso }}{{ .issuer }};{{- end }}"
|
||||
- name: SSO_CLIENTIDS
|
||||
value: "{{- range .Values.kerberoshub.api.sso }}{{ .clientId }};{{- end }}"
|
||||
- name: SSO_CLIENTSECRETS
|
||||
value: "{{- range .Values.kerberoshub.api.sso }}{{ .clientSecret }};{{- end }}"
|
||||
- name: SSO_CLIENTVERIFICATIONIDS
|
||||
value: "{{- range .Values.kerberoshub.api.sso }}{{ .clientVerificationId }};{{- end }}"
|
||||
- name: SSO_FORCE_SSO
|
||||
value: "{{- range .Values.kerberoshub.api.sso }}{{ .forceSSO }};{{- end }}"
|
||||
|
||||
# Kerberos pipeline
|
||||
- name: QUEUE_SYSTEM
|
||||
@@ -190,6 +206,10 @@ spec:
|
||||
- name: STRIPE_KEY
|
||||
value: "{{ .Values.kerberoshub.api.stripe.privateKey }}"
|
||||
|
||||
# OpenAI
|
||||
- name: OPENAI_API_KEY
|
||||
value: "{{ .Values.openai.apikey }}"
|
||||
|
||||
# MFA Issuer name (Will be shown when scanning in)
|
||||
- name: MFA_ISSUER
|
||||
value: "{{ .Values.kerberoshub.api.mfaIssuer }}"
|
||||
@@ -246,8 +266,12 @@ spec:
|
||||
# Mongodb
|
||||
- name: MONGODB_DATABASE_CLOUD
|
||||
value: "Kerberos"
|
||||
- name: MONGODB_URI
|
||||
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
|
||||
@@ -304,6 +328,10 @@ spec:
|
||||
value: "{{ .Values.email.templates.share }}"
|
||||
- name: SHARE_TITLE
|
||||
value: "{{ .Values.email.templates.shareTitle }}"
|
||||
- name: ASSIGN_TASK_TEMPLATE
|
||||
value: "{{ .Values.email.templates.assignTask }}"
|
||||
- name: ASSIGN_TASK_TITLE
|
||||
value: "{{ .Values.email.templates.assignTaskTitle }}"
|
||||
|
||||
# SMTP
|
||||
- name: SMTP_SERVER
|
||||
|
||||
@@ -2,6 +2,7 @@ apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: hub-cleanup
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
@@ -24,19 +25,25 @@ spec:
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: hub-cleanup
|
||||
image: "{{ .Values.kerberoshub.cleanup.repository }}:{{ .Values.kerberoshub.cleanup.tag }}"
|
||||
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberoshub.cleanup.repository }}:{{ .Values.kerberoshub.cleanup.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberoshub.cleanup.pullPolicy }}
|
||||
{{- with .Values.kerberoshub.cleanup.resources }}
|
||||
resources:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
env:
|
||||
- name: READ_ONLY
|
||||
value: "{{ .Values.readonly }}"
|
||||
- name: MAX_DAYS
|
||||
value: "30"
|
||||
value: "{{ .Values.kerberoshub.cleanup.maxDays }}"
|
||||
- name: MONGODB_DATABASE_CLOUD
|
||||
value: "Kerberos"
|
||||
- name: MONGODB_URI
|
||||
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
|
||||
|
||||
@@ -2,6 +2,7 @@ apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: hub-frontend-demo-svc
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: hub-frontend-demo-svc
|
||||
spec:
|
||||
@@ -12,6 +13,7 @@ spec:
|
||||
name: http
|
||||
selector:
|
||||
app: hub-frontend-demo
|
||||
{{ if ne .Values.ingress "" }}
|
||||
---
|
||||
{{ if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
@@ -21,30 +23,20 @@ apiVersion: networking.k8s.io/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: hub-frontend-demo-ingress
|
||||
namespace: {{ .Release.Namespace }}
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: {{ .Values.ingress }}
|
||||
{{- 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.kerberoshub.frontend.demoTls }}
|
||||
tls:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
rules:
|
||||
- host: "{{ .Values.kerberoshub.frontend.demoUrl }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: hub-frontend-demo-svc
|
||||
servicePort: 80
|
||||
{{- else }}
|
||||
{{ if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
rules:
|
||||
- host: "{{ .Values.kerberoshub.frontend.demoUrl }}"
|
||||
http:
|
||||
@@ -56,12 +48,23 @@ spec:
|
||||
name: hub-frontend-demo-svc
|
||||
port:
|
||||
number: 80
|
||||
{{- end }}
|
||||
{{ else }}
|
||||
rules:
|
||||
- host: "{{ .Values.kerberoshub.frontend.demoUrl }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: hub-frontend-demo-svc
|
||||
servicePort: 80
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: hub-frontend-demo
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: {{ .Values.kerberoshub.frontend.replicas }}
|
||||
selector:
|
||||
@@ -88,7 +91,7 @@ spec:
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: hub-frontend-demo
|
||||
image: "{{ .Values.kerberoshub.frontend.repository }}:{{ .Values.kerberoshub.frontend.tag }}"
|
||||
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberoshub.frontend.repository }}:{{ .Values.kerberoshub.frontend.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberoshub.frontend.pullPolicy }}
|
||||
{{- with .Values.kerberoshub.frontend.resources }}
|
||||
resources:
|
||||
@@ -108,6 +111,8 @@ spec:
|
||||
value: "{{ .Values.kerberoshub.frontend.title }}"
|
||||
- name: LOGO_NAME
|
||||
value: "{{ .Values.kerberoshub.frontend.logo }}"
|
||||
- name: ENVIRONMENT
|
||||
value: "demo"
|
||||
- name: API_URL
|
||||
value: "" # legacy
|
||||
- name: NEW_API_URL
|
||||
|
||||
@@ -2,6 +2,7 @@ apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: hub-frontend-svc
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: hub-frontend-svc
|
||||
spec:
|
||||
@@ -12,77 +13,137 @@ spec:
|
||||
name: http
|
||||
selector:
|
||||
app: hub-frontend
|
||||
{{ if ne .Values.ingress "" }}
|
||||
---
|
||||
{{ if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
{{ else }}
|
||||
{{- else }}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{ end }}
|
||||
{{- end }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: hub-frontend-ingress
|
||||
namespace: {{ .Release.Namespace }}
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: {{ .Values.ingress }}
|
||||
{{- if eq .Values.kerberoshub.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.kerberoshub.frontend.tls }}
|
||||
tls:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
rules:
|
||||
- host: "{{ .Values.kerberoshub.frontend.url }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: hub-frontend-svc
|
||||
servicePort: 80
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: hub-frontend-svc
|
||||
port:
|
||||
number: 80
|
||||
{{- if .Values.kerberoshub.frontend.legacyUrl }}
|
||||
- host: "{{ .Values.kerberoshub.frontend.legacyUrl }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: hub-frontend-svc
|
||||
servicePort: 80
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: hub-frontend-svc
|
||||
port:
|
||||
number: 80
|
||||
{{- end }}
|
||||
{{- range .Values.kerberoshub.frontend.domains }}
|
||||
- host: "{{ . }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: hub-frontend-svc
|
||||
port:
|
||||
number: 80
|
||||
{{- end }}
|
||||
|
||||
{{- else }}
|
||||
rules:
|
||||
- host: "{{ .Values.kerberoshub.frontend.url }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: hub-frontend-svc
|
||||
port:
|
||||
number: 80
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: hub-frontend-svc
|
||||
servicePort: 80
|
||||
{{- if .Values.kerberoshub.frontend.legacyUrl }}
|
||||
- host: "{{ .Values.kerberoshub.frontend.legacyUrl }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: hub-frontend-svc
|
||||
port:
|
||||
number: 80
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: hub-frontend-svc
|
||||
servicePort: 80
|
||||
{{- end }}
|
||||
{{- range .Values.kerberoshub.frontend.domains }}
|
||||
- host: "{{ . }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: hub-frontend-svc
|
||||
servicePort: 80
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if eq .Values.kerberoshub.oauth2Proxy.enabled true }}
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: oauth2-proxy-frontend
|
||||
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.kerberoshub.frontend.url }}"
|
||||
http:
|
||||
paths:
|
||||
- path: /oauth2
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: oauth2-proxy
|
||||
port:
|
||||
number: 4180
|
||||
tls:
|
||||
- hosts:
|
||||
- "{{ .Values.kerberoshub.frontend.url }}"
|
||||
secretName:
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: hub-frontend
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: {{ .Values.kerberoshub.frontend.replicas }}
|
||||
selector:
|
||||
@@ -109,7 +170,7 @@ spec:
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: hub-frontend
|
||||
image: "{{ .Values.kerberoshub.frontend.repository }}:{{ .Values.kerberoshub.frontend.tag }}"
|
||||
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberoshub.frontend.repository }}:{{ .Values.kerberoshub.frontend.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberoshub.frontend.pullPolicy }}
|
||||
{{- with .Values.kerberoshub.frontend.resources }}
|
||||
resources:
|
||||
@@ -123,8 +184,12 @@ spec:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
env:
|
||||
- name: SSO_DOMAIN
|
||||
value: "{{ .Values.kerberoshub.frontend.ssoDomain }}"
|
||||
- name: SSO_DOMAINS
|
||||
# get the domain attribute from the list of sso domains
|
||||
value: "{{- range .Values.kerberoshub.api.sso }}{{ .domain }};{{- end }}"
|
||||
- name: SSO_FORCE_DOMAINS
|
||||
# get the domain attribute from the list of sso domains
|
||||
value: "{{- range .Values.kerberoshub.api.sso }}{{ .forceSSO }};{{- end }}"
|
||||
- name: TITLE
|
||||
value: "{{ .Values.kerberoshub.frontend.title }}"
|
||||
- name: LOGO_NAME
|
||||
@@ -167,6 +232,10 @@ spec:
|
||||
- name: MQTT_LEGACY_PORT
|
||||
value: "{{ .Values.mqtt.legacy.port }}"
|
||||
|
||||
# OpenAI
|
||||
- name: OPENAI_ENABLED
|
||||
value: "{{ .Values.openai.enabled }}"
|
||||
|
||||
# Turn (Pion)
|
||||
- name: TURN_SERVER
|
||||
value: "{{ .Values.turn.host }}"
|
||||
|
||||
@@ -2,6 +2,7 @@ apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: hub-monitor-device
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
@@ -28,7 +29,7 @@ spec:
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: hub-monitor-device
|
||||
image: "{{ .Values.kerberoshub.monitordevice.repository }}:{{ .Values.kerberoshub.monitordevice.tag }}"
|
||||
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberoshub.monitordevice.repository }}:{{ .Values.kerberoshub.monitordevice.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberoshub.monitordevice.pullPolicy }}
|
||||
{{- with .Values.kerberoshub.monitordevice.resources }}
|
||||
resources:
|
||||
@@ -39,11 +40,17 @@ spec:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
env:
|
||||
- name: READ_ONLY
|
||||
value: "{{ .Values.readonly }}"
|
||||
# Mongodb
|
||||
- name: MONGODB_DATABASE_CLOUD
|
||||
value: "Kerberos"
|
||||
- name: MONGODB_URI
|
||||
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
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
{{- if .Values.kerberoshub.oauth2Proxy.enabled -}}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: oauth2-proxy
|
||||
namespace: kube-system
|
||||
labels:
|
||||
k8s-app: oauth2-proxy
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
k8s-app: oauth2-proxy
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
k8s-app: oauth2-proxy
|
||||
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.kerberoshub.oauth2Proxy.github.clientId }}"
|
||||
- name: OAUTH2_PROXY_CLIENT_SECRET
|
||||
value: "{{ .Values.kerberoshub.oauth2Proxy.github.clientSecret }}"
|
||||
- name: OAUTH2_PROXY_COOKIE_SECRET
|
||||
value: "{{ .Values.kerberoshub.oauth2Proxy.github.cookieSecret }}"
|
||||
- name: OAUTH2_PROXY_GITHUB_ORG
|
||||
value: "{{ .Values.kerberoshub.oauth2Proxy.github.organization }}"
|
||||
- name: OAUTH2_PROXY_GITHUB_TEAM
|
||||
value: "{{ .Values.kerberoshub.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
|
||||
name: oauth2-proxy
|
||||
namespace: kube-system
|
||||
spec:
|
||||
ports:
|
||||
- name: http
|
||||
port: 4180
|
||||
protocol: TCP
|
||||
targetPort: 4180
|
||||
selector:
|
||||
k8s-app: oauth2-proxy
|
||||
{{- end -}}
|
||||
@@ -2,6 +2,7 @@ apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: hub-reactivate-subscription
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
@@ -18,15 +19,23 @@ spec:
|
||||
labels:
|
||||
app: hub-reactivate-subscription
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: hub-reactivate-subscription
|
||||
image: "{{ .Values.kerberoshub.reactivate.repository }}:{{ .Values.kerberoshub.reactivate.tag }}"
|
||||
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberoshub.reactivate.repository }}:{{ .Values.kerberoshub.reactivate.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberoshub.reactivate.pullPolicy }}
|
||||
env:
|
||||
- name: READ_ONLY
|
||||
value: "{{ .Values.readonly }}"
|
||||
- name: MONGODB_URI
|
||||
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
|
||||
|
||||
@@ -2,6 +2,7 @@ apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-analysis
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: {{ .Values.kerberospipeline.analysis.replicas }}
|
||||
selector:
|
||||
@@ -24,7 +25,7 @@ spec:
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-analysis
|
||||
image: "{{ .Values.kerberospipeline.analysis.repository }}:{{ .Values.kerberospipeline.analysis.tag }}"
|
||||
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.analysis.repository }}:{{ .Values.kerberospipeline.analysis.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.analysis.pullPolicy }}
|
||||
{{- with .Values.kerberospipeline.analysis.resources }}
|
||||
resources:
|
||||
@@ -37,8 +38,12 @@ spec:
|
||||
value: "{{ .Values.queueProvider }}"
|
||||
|
||||
# Database
|
||||
- name: MONGODB_URI
|
||||
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
|
||||
@@ -78,4 +83,21 @@ spec:
|
||||
|
||||
# Sprites
|
||||
- name: SPRITE_ENABLED
|
||||
value: "{{ .Values.kerberospipeline.sprite.enabled }}"
|
||||
value: "{{ .Values.kerberospipeline.sprite.enabled }}"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: pipe-analysis
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: pipe-analysis
|
||||
service: pipe
|
||||
spec:
|
||||
ports:
|
||||
- name: hub-metrics
|
||||
port: 8080
|
||||
targetPort: 8080
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: pipe-analysis
|
||||
@@ -2,6 +2,7 @@ apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-counting
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: {{ .Values.kerberospipeline.counting.replicas }}
|
||||
selector:
|
||||
@@ -24,7 +25,7 @@ spec:
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-counting
|
||||
image: "{{ .Values.kerberospipeline.counting.repository }}:{{ .Values.kerberospipeline.counting.tag }}"
|
||||
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.counting.repository }}:{{ .Values.kerberospipeline.counting.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.counting.pullPolicy }}
|
||||
{{- with .Values.kerberospipeline.counting.resources }}
|
||||
resources:
|
||||
@@ -56,4 +57,21 @@ spec:
|
||||
- name: RABBITMQ_USERNAME
|
||||
value: "{{ .Values.rabbitmq.username }}"
|
||||
- name: RABBITMQ_PASSWORD
|
||||
value: "{{ .Values.rabbitmq.password }}"
|
||||
value: "{{ .Values.rabbitmq.password }}"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: pipe-counting
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: pipe-counting
|
||||
service: pipe
|
||||
spec:
|
||||
ports:
|
||||
- name: hub-metrics
|
||||
port: 8080
|
||||
targetPort: 8080
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: pipe-counting
|
||||
@@ -2,6 +2,7 @@ apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-dominantcolor
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: {{ .Values.kerberospipeline.dominantColor.replicas }}
|
||||
selector:
|
||||
@@ -24,7 +25,7 @@ spec:
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-dominantcolor
|
||||
image: "{{ .Values.kerberospipeline.dominantColor.repository }}:{{ .Values.kerberospipeline.dominantColor.tag }}"
|
||||
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.dominantColor.repository }}:{{ .Values.kerberospipeline.dominantColor.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.dominantColor.pullPolicy }}
|
||||
{{- with .Values.kerberospipeline.dominantColor.resources }}
|
||||
resources:
|
||||
@@ -56,4 +57,21 @@ spec:
|
||||
- name: RABBITMQ_USERNAME
|
||||
value: "{{ .Values.rabbitmq.username }}"
|
||||
- name: RABBITMQ_PASSWORD
|
||||
value: "{{ .Values.rabbitmq.password }}"
|
||||
value: "{{ .Values.rabbitmq.password }}"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: pipe-dominantcolor
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: pipe-dominantcolor
|
||||
service: pipe
|
||||
spec:
|
||||
ports:
|
||||
- name: hub-metrics
|
||||
port: 8080
|
||||
targetPort: 8080
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: pipe-dominantcolor
|
||||
@@ -2,6 +2,7 @@ apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-event
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: {{ .Values.kerberospipeline.event.replicas }}
|
||||
selector:
|
||||
@@ -24,21 +25,29 @@ spec:
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-event
|
||||
image: "{{ .Values.kerberospipeline.event.repository }}:{{ .Values.kerberospipeline.event.tag }}"
|
||||
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.event.repository }}:{{ .Values.kerberospipeline.event.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.event.pullPolicy }}
|
||||
{{- with .Values.kerberospipeline.event.resources }}
|
||||
resources:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
env:
|
||||
- name: READ_ONLY
|
||||
value: "{{ .Values.readonly }}"
|
||||
- name: CLOUD_PROVIDER
|
||||
value: "{{ .Values.cloudProvider }}"
|
||||
- name: QUEUE_SYSTEM
|
||||
value: "{{ .Values.queueProvider }}"
|
||||
|
||||
# Database
|
||||
- name: MONGODB_URI
|
||||
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
|
||||
@@ -66,4 +75,21 @@ spec:
|
||||
- name: RABBITMQ_USERNAME
|
||||
value: "{{ .Values.rabbitmq.username }}"
|
||||
- name: RABBITMQ_PASSWORD
|
||||
value: "{{ .Values.rabbitmq.password }}"
|
||||
value: "{{ .Values.rabbitmq.password }}"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: pipe-event
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: pipe-event
|
||||
service: pipe
|
||||
spec:
|
||||
ports:
|
||||
- name: hub-metrics
|
||||
port: 8080
|
||||
targetPort: 8080
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: pipe-event
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-export
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: {{ .Values.kerberospipeline.export.replicas }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: pipe-export
|
||||
minReadySeconds: 10
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: pipe-export
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-export
|
||||
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.export.repository }}:{{ .Values.kerberospipeline.export.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.export.pullPolicy }}
|
||||
{{- with .Values.kerberospipeline.export.resources }}
|
||||
resources:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
env:
|
||||
- name: CLOUD_PROVIDER
|
||||
value: "{{ .Values.cloudProvider }}"
|
||||
- name: QUEUE_SYSTEM
|
||||
value: "{{ .Values.queueProvider }}"
|
||||
|
||||
# Database
|
||||
- name: MONGODB_DATABASE_CLOUD
|
||||
value: "Kerberos"
|
||||
- name: MONGODB_URI
|
||||
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
|
||||
value: "{{ .Values.mongodb.username }}"
|
||||
- name: MONGODB_PASSWORD
|
||||
value: "{{ .Values.mongodb.password }}"
|
||||
|
||||
# Kafka settings
|
||||
- name: KAFKA_BROKER
|
||||
value: "{{ .Values.kafka.broker }}"
|
||||
- name: KAFKA_USERNAME
|
||||
value: "{{ .Values.kafka.username }}"
|
||||
- name: KAFKA_PASSWORD
|
||||
value: "{{ .Values.kafka.password }}"
|
||||
- name: KAFKA_MECHANISM
|
||||
value: "{{ .Values.kafka.mechanism }}"
|
||||
- name: KAFKA_SECURITY
|
||||
value: "{{ .Values.kafka.security }}"
|
||||
|
||||
# RabbitMQ settings
|
||||
- name: RABBITMQ_HOST
|
||||
value: "{{ .Values.rabbitmq.host }}"
|
||||
- name: RABBITMQ_EXCHANGE
|
||||
value: "{{ .Values.rabbitmq.exchange }}"
|
||||
- name: RABBITMQ_USERNAME
|
||||
value: "{{ .Values.rabbitmq.username }}"
|
||||
- name: RABBITMQ_PASSWORD
|
||||
value: "{{ .Values.rabbitmq.password }}"
|
||||
|
||||
# Kerberos Vault (Main instance, within Kerberos Hub you can assign additional Vaults to sites).
|
||||
- name: STORAGE_URI
|
||||
value: "{{ .Values.kerberosvault.uri }}"
|
||||
- name: STORAGE_ACCESS_KEY
|
||||
value: "{{ .Values.kerberosvault.accesskey }}"
|
||||
- name: STORAGE_SECRET_KEY
|
||||
value: "{{ .Values.kerberosvault.secretkey }}"
|
||||
|
||||
# Kerberos Vault: archiving credentials. When creating a task, the underlying recording will be
|
||||
# copied to this storage provider, using the specific account credentials, for deletion/retention.
|
||||
- name: STORAGE_ARCHIVE_PROVIDER
|
||||
value: "{{ .Values.kerberosvault.archive.provider }}"
|
||||
- name: STORAGE_ARCHIVE_ACCESS_KEY
|
||||
value: "{{ .Values.kerberosvault.archive.accesskey }}"
|
||||
- name: STORAGE_ARCHIVE_SECRET_KEY
|
||||
value: "{{ .Values.kerberosvault.archive.secretkey }}"
|
||||
|
||||
# Sprites
|
||||
- name: SPRITE_ENABLED
|
||||
value: "{{ .Values.kerberospipeline.sprite.enabled }}"
|
||||
- name: VAULT_SPRITE_PROVIDER
|
||||
value: "{{ .Values.kerberosvault.sprite.provider }}"
|
||||
- name: VAULT_SPRITE_ACCESS_KEY
|
||||
value: "{{ .Values.kerberosvault.sprite.accessKey }}"
|
||||
- name: VAULT_SPRITE_SECRET_KEY
|
||||
value: "{{ .Values.kerberosvault.sprite.secretKey }}"
|
||||
# Thumbnails
|
||||
- name: THUMBNAIL_VAULT_ENABLED
|
||||
value: "{{ .Values.kerberospipeline.thumbnail.kerberosvault.enabled }}"
|
||||
- name: VAULT_THUMBNAIL_PROVIDER
|
||||
value: "{{ .Values.kerberosvault.thumbnail.provider }}"
|
||||
- name: VAULT_THUMBNAIL_ACCESS_KEY
|
||||
value: "{{ .Values.kerberosvault.thumbnail.accessKey }}"
|
||||
- name: VAULT_THUMBNAIL_SECRET_KEY
|
||||
value: "{{ .Values.kerberosvault.thumbnail.secretKey }}"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: pipe-export
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: pipe-export
|
||||
service: pipe
|
||||
spec:
|
||||
ports:
|
||||
- name: hub-metrics
|
||||
port: 8080
|
||||
targetPort: 8080
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: pipe-export
|
||||
@@ -2,6 +2,7 @@ apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-monitor
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: {{ .Values.kerberospipeline.monitor.replicas }}
|
||||
selector:
|
||||
@@ -24,7 +25,7 @@ spec:
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-monitor
|
||||
image: "{{ .Values.kerberospipeline.monitor.repository }}:{{ .Values.kerberospipeline.monitor.tag }}"
|
||||
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.monitor.repository }}:{{ .Values.kerberospipeline.monitor.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.monitor.pullPolicy }}
|
||||
{{- with .Values.kerberospipeline.monitor.resources }}
|
||||
resources:
|
||||
@@ -32,8 +33,12 @@ spec:
|
||||
{{- end }}
|
||||
env:
|
||||
# Database
|
||||
- name: MONGODB_URI
|
||||
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
|
||||
@@ -90,3 +95,20 @@ spec:
|
||||
value: "{{ .Values.email.smtp.username }}"
|
||||
- name: SMTP_PASSWORD
|
||||
value: "{{ .Values.email.smtp.password }}"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: pipe-monitor
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: pipe-monitor
|
||||
service: pipe
|
||||
spec:
|
||||
ports:
|
||||
- name: hub-metrics
|
||||
port: 8080
|
||||
targetPort: 8080
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: pipe-monitor
|
||||
@@ -2,6 +2,7 @@ apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-notify-test
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: {{ .Values.kerberospipeline.notifyTest.replicas }}
|
||||
selector:
|
||||
@@ -28,7 +29,7 @@ spec:
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-notify-test
|
||||
image: "{{ .Values.kerberospipeline.notifyTest.repository }}:{{ .Values.kerberospipeline.notifyTest.tag }}"
|
||||
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.notifyTest.repository }}:{{ .Values.kerberospipeline.notifyTest.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.notifyTest.pullPolicy }}
|
||||
{{- with .Values.kerberospipeline.notifyTest.resources }}
|
||||
resources:
|
||||
@@ -43,8 +44,12 @@ spec:
|
||||
value: "{{ .Values.queueProvider }}"
|
||||
|
||||
# Database
|
||||
- name: MONGODB_URI
|
||||
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
|
||||
@@ -103,3 +108,20 @@ spec:
|
||||
value: "{{ .Values.email.smtp.username }}"
|
||||
- name: SMTP_PASSWORD
|
||||
value: "{{ .Values.email.smtp.password }}"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: pipe-notify-test
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: pipe-notify-test
|
||||
service: pipe
|
||||
spec:
|
||||
ports:
|
||||
- name: hub-metrics
|
||||
port: 8080
|
||||
targetPort: 8080
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: pipe-notify-test
|
||||
@@ -2,6 +2,7 @@ apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-notify
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: {{ .Values.kerberospipeline.notify.replicas }}
|
||||
selector:
|
||||
@@ -28,7 +29,7 @@ spec:
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-notify
|
||||
image: "{{ .Values.kerberospipeline.notify.repository }}:{{ .Values.kerberospipeline.notify.tag }}"
|
||||
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.notify.repository }}:{{ .Values.kerberospipeline.notify.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.notify.pullPolicy }}
|
||||
{{- with .Values.kerberospipeline.notify.resources }}
|
||||
resources:
|
||||
@@ -40,8 +41,12 @@ spec:
|
||||
{{- end }}
|
||||
env:
|
||||
# Database
|
||||
- name: MONGODB_URI
|
||||
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
|
||||
@@ -123,3 +128,30 @@ spec:
|
||||
value: "{{ .Values.kerberosvault.thumbnail.accessKey }}"
|
||||
- name: VAULT_THUMBNAIL_SECRET_KEY
|
||||
value: "{{ .Values.kerberosvault.thumbnail.secretKey }}"
|
||||
|
||||
# There is an option to store the sprites in a storage provider in Kerberos Vault.
|
||||
- name: VAULT_SPRITE_ENABLED
|
||||
value: "{{ .Values.kerberospipeline.sprite.enabled }}"
|
||||
- name: VAULT_SPRITE_PROVIDER
|
||||
value: "{{ .Values.kerberosvault.sprite.provider }}"
|
||||
- name: VAULT_SPRITE_ACCESS_KEY
|
||||
value: "{{ .Values.kerberosvault.sprite.accessKey }}"
|
||||
- name: VAULT_SPRITE_SECRET_KEY
|
||||
value: "{{ .Values.kerberosvault.sprite.secretKey }}"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: pipe-notify
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: pipe-notify
|
||||
service: pipe
|
||||
spec:
|
||||
ports:
|
||||
- name: hub-metrics
|
||||
port: 8080
|
||||
targetPort: 8080
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: pipe-notify
|
||||
@@ -2,6 +2,7 @@ apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-sequence
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: {{ .Values.kerberospipeline.sequence.replicas }}
|
||||
selector:
|
||||
@@ -24,7 +25,7 @@ spec:
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-sequence
|
||||
image: "{{ .Values.kerberospipeline.sequence.repository }}:{{ .Values.kerberospipeline.sequence.tag }}"
|
||||
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.sequence.repository }}:{{ .Values.kerberospipeline.sequence.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.sequence.pullPolicy }}
|
||||
{{- with .Values.kerberospipeline.sequence.resources }}
|
||||
resources:
|
||||
@@ -37,8 +38,12 @@ spec:
|
||||
value: "{{ .Values.queueProvider }}"
|
||||
|
||||
# Database
|
||||
- name: MONGODB_URI
|
||||
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
|
||||
@@ -66,4 +71,21 @@ spec:
|
||||
- name: RABBITMQ_USERNAME
|
||||
value: "{{ .Values.rabbitmq.username }}"
|
||||
- name: RABBITMQ_PASSWORD
|
||||
value: "{{ .Values.rabbitmq.password }}"
|
||||
value: "{{ .Values.rabbitmq.password }}"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: pipe-sequence
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: pipe-sequence
|
||||
service: pipe
|
||||
spec:
|
||||
ports:
|
||||
- name: hub-metrics
|
||||
port: 8080
|
||||
targetPort: 8080
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: pipe-sequence
|
||||
@@ -3,6 +3,7 @@ apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-sprite
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: {{ .Values.kerberospipeline.sprite.replicas }}
|
||||
selector:
|
||||
@@ -25,7 +26,7 @@ spec:
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-sprite
|
||||
image: "{{ .Values.kerberospipeline.sprite.repository }}:{{ .Values.kerberospipeline.sprite.tag }}"
|
||||
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.sprite.repository }}:{{ .Values.kerberospipeline.sprite.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.sprite.pullPolicy }}
|
||||
{{- with .Values.kerberospipeline.sprite.resources }}
|
||||
resources:
|
||||
@@ -81,4 +82,21 @@ spec:
|
||||
value: "{{ .Values.kerberospipeline.sprite.width }}"
|
||||
- name: VAULT_SPRITE_HEIGHT
|
||||
value: "{{ .Values.kerberospipeline.sprite.height }}"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: pipe-sprite
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: pipe-sprite
|
||||
service: pipe
|
||||
spec:
|
||||
ports:
|
||||
- name: hub-metrics
|
||||
port: 8080
|
||||
targetPort: 8080
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: pipe-sprite
|
||||
{{ end }}
|
||||
@@ -2,6 +2,7 @@ apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-throttler
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: {{ .Values.kerberospipeline.throttler.replicas }}
|
||||
selector:
|
||||
@@ -24,7 +25,7 @@ spec:
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-throttler
|
||||
image: "{{ .Values.kerberospipeline.throttler.repository }}:{{ .Values.kerberospipeline.throttler.tag }}"
|
||||
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.throttler.repository }}:{{ .Values.kerberospipeline.throttler.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.throttler.pullPolicy }}
|
||||
{{- with .Values.kerberospipeline.throttler.resources }}
|
||||
resources:
|
||||
@@ -37,8 +38,12 @@ spec:
|
||||
value: "{{ .Values.queueProvider }}"
|
||||
|
||||
# Database
|
||||
- name: MONGODB_URI
|
||||
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
|
||||
@@ -66,4 +71,21 @@ spec:
|
||||
- name: RABBITMQ_USERNAME
|
||||
value: "{{ .Values.rabbitmq.username }}"
|
||||
- name: RABBITMQ_PASSWORD
|
||||
value: "{{ .Values.rabbitmq.password }}"
|
||||
value: "{{ .Values.rabbitmq.password }}"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: pipe-throttler
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: pipe-throttler
|
||||
service: pipe
|
||||
spec:
|
||||
ports:
|
||||
- name: hub-metrics
|
||||
port: 8080
|
||||
targetPort: 8080
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: pipe-throttler
|
||||
@@ -2,6 +2,7 @@ apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pipe-thumbnail
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: {{ .Values.kerberospipeline.thumbnail.replicas }}
|
||||
selector:
|
||||
@@ -24,7 +25,7 @@ spec:
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: pipe-thumbnail
|
||||
image: "{{ .Values.kerberospipeline.thumbnail.repository }}:{{ .Values.kerberospipeline.thumbnail.tag }}"
|
||||
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.thumbnail.repository }}:{{ .Values.kerberospipeline.thumbnail.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberospipeline.thumbnail.pullPolicy }}
|
||||
{{- with .Values.kerberospipeline.thumbnail.resources }}
|
||||
resources:
|
||||
@@ -82,4 +83,21 @@ spec:
|
||||
- name: VAULT_THUMBNAIL_ACCESS_KEY
|
||||
value: "{{ .Values.kerberosvault.thumbnail.accessKey }}"
|
||||
- name: VAULT_THUMBNAIL_SECRET_KEY
|
||||
value: "{{ .Values.kerberosvault.thumbnail.secretKey }}"
|
||||
value: "{{ .Values.kerberosvault.thumbnail.secretKey }}"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: pipe-thumbnail
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: pipe-thumbnail
|
||||
service: pipe
|
||||
spec:
|
||||
ports:
|
||||
- name: hub-metrics
|
||||
port: 8080
|
||||
targetPort: 8080
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: pipe-thumbnail
|
||||
@@ -0,0 +1,16 @@
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: hub-metrics-servicemonitor
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
service: pipe
|
||||
release: prometheus
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
service: pipe
|
||||
endpoints:
|
||||
- port: hub-metrics
|
||||
interval: 15s
|
||||
path: /metrics
|
||||
@@ -1,7 +1,10 @@
|
||||
# If .Values.kerberoshub.forwarder.enabled is set to true
|
||||
{{- if .Values.kerberoshub.forwarder.enabled }}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: vault-forwarder
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
@@ -24,7 +27,7 @@ spec:
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: vault-forwarder
|
||||
image: "{{ .Values.kerberoshub.forwarder.repository }}:{{ .Values.kerberoshub.forwarder.tag }}"
|
||||
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberoshub.forwarder.repository }}:{{ .Values.kerberoshub.forwarder.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberoshub.forwarder.pullPolicy }}
|
||||
resources:
|
||||
requests:
|
||||
@@ -36,10 +39,14 @@ spec:
|
||||
- name: BUFFER_TIME
|
||||
value: "3"
|
||||
# Mongodb
|
||||
- name: MONGODB_URI
|
||||
value: "{{ .Values.mongodb.uri }}"
|
||||
- name: MONGODB_DATABASE_CLOUD
|
||||
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
|
||||
@@ -54,3 +61,4 @@ spec:
|
||||
value: "{{ .Values.mqtt.username }}"
|
||||
- name: MQTT_PASSWORD
|
||||
value: "{{ .Values.mqtt.password }}"
|
||||
{{- end }}
|
||||
|
||||
@@ -2,6 +2,7 @@ apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: vault-proxy
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
replicas: 3
|
||||
selector:
|
||||
@@ -18,11 +19,13 @@ spec:
|
||||
labels:
|
||||
app: vault-proxy
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: vault-proxy
|
||||
image: "{{ .Values.kerberoshub.proxy.repository }}:{{ .Values.kerberoshub.proxy.tag }}"
|
||||
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberoshub.proxy.repository }}:{{ .Values.kerberoshub.proxy.tag }}"
|
||||
imagePullPolicy: {{ .Values.kerberoshub.proxy.pullPolicy }}
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
@@ -45,6 +48,7 @@ apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: vault-proxy-svc
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app: vault-proxy-svc
|
||||
spec:
|
||||
|
||||
+258
-142
@@ -1,44 +1,68 @@
|
||||
# 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---"
|
||||
#######################################################
|
||||
# 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'.
|
||||
# Set to 'true' if this is a private deployment.
|
||||
environment: 'production'
|
||||
|
||||
# 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
|
||||
#imagePullSecrets:
|
||||
# - name: regcred
|
||||
|
||||
# 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).
|
||||
|
||||
# A mongodb instance is required to store all the relevant metadata.
|
||||
|
||||
#########################################
|
||||
# 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)
|
||||
#uri: "mongodb+srv://xx:xx@kerberos-hub.xxx.mongodb.net/?retryWrites=true&w=majority&appName=xxx"
|
||||
|
||||
# Self-hosted mongodb, you could also use the uri property above.
|
||||
host: mongodb.mongodb
|
||||
#host: "mongodb-0.mongodb-headless.mongodb:27017,mongodb-1.mongodb-headless.mongodb:27017"
|
||||
adminDatabase: admin
|
||||
authenticationMechanism: SCRAM-SHA-256
|
||||
username: yourusername
|
||||
password: "yourpassword"
|
||||
|
||||
|
||||
# A MQTT broker (vernemq) is used to have a bi-directional
|
||||
# communication between enterprise agents and kerberos hub.
|
||||
###################################################
|
||||
# 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"
|
||||
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"
|
||||
protocol: "wss"
|
||||
username: "yourusername"
|
||||
@@ -47,39 +71,70 @@ mqtt:
|
||||
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: "KAFKA" # or "RABBITMQ"
|
||||
queueProvider: "RABBITMQ" # or "KAFKA"
|
||||
queueName: "kcloud-event-queue" # This is the topic to which all events are send.
|
||||
|
||||
# RabbitMQ can be installed in the same cluster using a helm chart, or you can
|
||||
# use a service on cloud provider like AWS, GCP, Azure, etc.
|
||||
rabbitmq:
|
||||
host: "rabbitmq.rabbitmq:5672" # can be internal dns name or external
|
||||
#host: "amqps://b-xxx-xxx-xxx-xxx-xxx.mq.eu-central-1.amazonaws.com:5671"
|
||||
username: "yourusername"
|
||||
password: "yourpassword"
|
||||
exchange: ""
|
||||
# If you already have a Kafka cluster you might use this instead of RabbitMQ.
|
||||
kafka:
|
||||
broker: "kafka1.yourdomain.com:9094,kafka2.yourdomain.com:9094"
|
||||
broker: "kafka1.yourdomain.com:9094" # can be internal dns name or external
|
||||
username: "yourusername"
|
||||
password: "yourpassword"
|
||||
mechanism: "PLAIN"
|
||||
security: "SASL_PLAINTEXT"
|
||||
|
||||
rabbitmq:
|
||||
host: "rabbitmq.yourdomain.com:5671"
|
||||
username: "yourusername"
|
||||
password: "yourpassword"
|
||||
exchange: ""
|
||||
|
||||
############################################
|
||||
# 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"
|
||||
host: "turn:turn.yourdomain.com:8443" # this needs to be a public accessible DNS name.
|
||||
username: "username1"
|
||||
password: "password1"
|
||||
|
||||
|
||||
############################################
|
||||
# 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.
|
||||
kerberosvault:
|
||||
uri: "https://api.vault.yourdomain.com"
|
||||
uri: "https://api.vault.yourdomain.com" # this needs to be a public accessible DNS name.
|
||||
provider: "a-provider"
|
||||
accesskey: "xxx"
|
||||
secretkey: "xxx"
|
||||
|
||||
# Archiving is used when creating a task. The underlying recording of the task will be copied from its
|
||||
# existing provider to the below archived provider. Seperate credentials are used, as it makes possible to
|
||||
# specify another retention period.
|
||||
@@ -96,42 +151,41 @@ kerberosvault:
|
||||
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"
|
||||
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: kerberos/hub-api
|
||||
repository: uugai/hub-api
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.816826043"
|
||||
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"
|
||||
@@ -140,7 +194,6 @@ kerberoshub:
|
||||
requests:
|
||||
memory: 100Mi
|
||||
cpu: 250m
|
||||
|
||||
# E-mail templates
|
||||
#volumeMounts:
|
||||
# - name: custom-email-templates
|
||||
@@ -154,12 +207,10 @@ kerberoshub:
|
||||
#legacyUrl: "api.legacy.yourdomain.com"
|
||||
|
||||
# MFA issuer name
|
||||
mfaIssuer: "Kerberos.io"
|
||||
|
||||
mfaIssuer: "yourdomain.com"
|
||||
# Admin API's are made available for automation of Kerberos Hub.
|
||||
# To access those API's (e.g. creation of owner users), an API key needs to be provided.
|
||||
apiKey: "a-random-admin-api-key"
|
||||
|
||||
## Certificates
|
||||
tls:
|
||||
- hosts:
|
||||
@@ -195,14 +246,26 @@ kerberoshub:
|
||||
username: ""
|
||||
password: ""
|
||||
sso: # OIDC settings for allowing SSO.
|
||||
issuer: "" #"https://accounts.google.com"
|
||||
clientId: "" # 4294xxxxsk4no3.apps.googleusercontent.com"
|
||||
clientSecret: "" # UksvZ-QKGdB1W2mOu5l_Jg3R"
|
||||
redirectUrl: "/sso/response"
|
||||
- domain: "uug.ai"
|
||||
redirectUrl: "https://api.cloud.kerberos.io/sso/callback/uug.ai"
|
||||
forceSSO: "false"
|
||||
issuer: "https://xxx.eu.auth0.com/"
|
||||
claimId: "email" # claim which is used to identify the user
|
||||
clientId: "xxx"
|
||||
clientSecret: "xxx"
|
||||
clientVerificationId: "" # This is only required for SSO chaining.
|
||||
- domain: "kerberos.io"
|
||||
redirectUrl: "https://api.cloud.kerberos.io/sso/callback/kerberos.io"
|
||||
forceSSO: "false"
|
||||
issuer: "https://accounts.google.com"
|
||||
claimId: "email" # claim which is used to identify the user
|
||||
clientId: "xxx"
|
||||
clientSecret: "xxx"
|
||||
clientVerificationId: "" # This is only required for SSO chaining.
|
||||
frontend:
|
||||
repository: kerberos/hub-frontend
|
||||
repository: uugai/hub-frontend
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.817959632"
|
||||
tag: "v1.0.42"
|
||||
replicas: 2
|
||||
schema: "https"
|
||||
url: "yourdomain.com"
|
||||
@@ -210,12 +273,10 @@ kerberoshub:
|
||||
requests:
|
||||
memory: 50Mi
|
||||
cpu: 50m
|
||||
|
||||
# The front-end but in read-only mode
|
||||
#demoUrl: "demo.yourdomain.com"
|
||||
# When migrating to another url, this might help migrating.
|
||||
#legacyUrl: "legacy.yourdomain.com"
|
||||
|
||||
tls:
|
||||
- hosts:
|
||||
- "yourdomain.com"
|
||||
@@ -227,7 +288,6 @@ kerberoshub:
|
||||
# - hosts:
|
||||
# - "demo.yourdomain.com"
|
||||
# secretName: kerberoshub-demo
|
||||
ssoDomain: "@yourdomain.com"
|
||||
mixpanel: # We can keep track logging in Mixpanel as well
|
||||
apikey: "xxx"
|
||||
sentry: # We can trace errors in Sentry
|
||||
@@ -241,22 +301,18 @@ kerberoshub:
|
||||
posthog: # Posthog is used for auditing and user interaction logging
|
||||
key: "xxx"
|
||||
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"
|
||||
|
||||
# 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
|
||||
# take it a step further. Within a domain, user accounts are unique, and are prefixed by a (domain\).
|
||||
#multiTenant: true
|
||||
#tenantBaseDomain: "yourdomain.com" # this would resolve in following sub domain "https://domain.kerberos.io"
|
||||
#tenantBaseDomain: "yourdomain.com" # this would resolve in following sub domain "https://domain.kerberos.io"
|
||||
|
||||
# Page title (browser)
|
||||
title: "Kerberos Hub - Video surveillance as it should be"
|
||||
|
||||
# You can style Kerberos hub as you wish.
|
||||
# 1. we do the styling on our side and bake it in the Docker image (change the logo attribute to your company name)
|
||||
# 2. you bring your own logo (set logo to 'custom'), and mount the css file and favicons.
|
||||
@@ -300,7 +356,6 @@ kerberoshub:
|
||||
framesPerSecondDescription: ""
|
||||
mlaUtilizationDescription: ""
|
||||
objectsDetectedDescription: ""
|
||||
|
||||
# You can add custom links to the navigation bar.
|
||||
navigationLinkTitle1: ""
|
||||
navigationLinkUrl1: ""
|
||||
@@ -312,11 +367,21 @@ kerberoshub:
|
||||
navigationLinkUrl4: ""
|
||||
navigationLinkTitle5: ""
|
||||
navigationLinkUrl5: ""
|
||||
|
||||
support:
|
||||
enabled: false
|
||||
oauth2Proxy:
|
||||
enabled: false
|
||||
github:
|
||||
clientId: "github-client-id"
|
||||
clientSecret: "github-client-secret"
|
||||
cookieSecret: "generate-a-random-cookie-secret"
|
||||
organization: "github-organization"
|
||||
team: "github-team"
|
||||
cleanup:
|
||||
repository: kerberos/hub-cleanup
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.3292003489"
|
||||
tag: "1.0.6436406806"
|
||||
maxDays: "365" # The maximum number of days to keep orphaned recordings.
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
@@ -324,35 +389,36 @@ kerberoshub:
|
||||
monitordevice:
|
||||
repository: kerberos/hub-monitor-device
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.2818471126"
|
||||
tag: "1.0.6256190978"
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
# E-mail templates
|
||||
#volumeMounts:
|
||||
# - name: custom-email-templates
|
||||
# mountPath: /mail
|
||||
#volumes:
|
||||
# - name: custom-email-templates
|
||||
# persistentVolumeClaim:
|
||||
# claimName: custom-layout-claim
|
||||
# E-mail templates
|
||||
#volumeMounts:
|
||||
# - name: custom-email-templates
|
||||
# mountPath: /mail
|
||||
#volumes:
|
||||
# - name: custom-email-templates
|
||||
# persistentVolumeClaim:
|
||||
# claimName: custom-layout-claim
|
||||
reactivate:
|
||||
repository: kerberos/hub-reactivate
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.2732384534"
|
||||
tag: "1.0.6256184527"
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
forwarder:
|
||||
repository: kerberos/vault-forwarder
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.2732389692"
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
enabled: false
|
||||
#repository: kerberos/vault-forwarder
|
||||
#pullPolicy: IfNotPresent
|
||||
#tag: "1.0.2732389692"
|
||||
#resources:
|
||||
# requests:
|
||||
# memory: 10Mi
|
||||
# cpu: 10m
|
||||
# This proxy is legacy for the old agent, will be migrated in the new Hub API.
|
||||
proxy:
|
||||
repository: kerberos/vault-proxy
|
||||
@@ -363,29 +429,33 @@ kerberoshub:
|
||||
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
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.3991346363"
|
||||
tag: "1.0.6256042211"
|
||||
replicas: 1
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
monitor:
|
||||
repository: kerberos/pipe-monitor
|
||||
repository: uugai/hub-pipeline-monitor
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.3991795688"
|
||||
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.3991781193"
|
||||
tag: "v1.0.1"
|
||||
replicas: 1
|
||||
resources:
|
||||
requests:
|
||||
@@ -394,50 +464,50 @@ kerberospipeline:
|
||||
throttler:
|
||||
repository: kerberos/pipe-throttler
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.3998417978"
|
||||
tag: "1.0.6256059962"
|
||||
replicas: 1
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
notify:
|
||||
repository: kerberos/pipe-notify
|
||||
repository: uugai/hub-pipeline-notification
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.3991958425"
|
||||
tag: "v1.0.11"
|
||||
replicas: 1
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
# E-mail templates
|
||||
#volumeMounts:
|
||||
# - name: custom-email-templates
|
||||
# mountPath: /mail
|
||||
#volumes:
|
||||
# - name: custom-email-templates
|
||||
# persistentVolumeClaim:
|
||||
# claimName: custom-layout-claim
|
||||
# E-mail templates
|
||||
#volumeMounts:
|
||||
# - name: custom-email-templates
|
||||
# mountPath: /mail
|
||||
#volumes:
|
||||
# - name: custom-email-templates
|
||||
# persistentVolumeClaim:
|
||||
# claimName: custom-layout-claim
|
||||
notifyTest:
|
||||
repository: kerberos/pipe-notify-test
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.3992084459"
|
||||
tag: "1.0.6256094666"
|
||||
replicas: 1
|
||||
resources:
|
||||
requests:
|
||||
memory: 10Mi
|
||||
cpu: 10m
|
||||
# E-mail templates
|
||||
#volumeMounts:
|
||||
# - name: custom-email-templates
|
||||
# mountPath: /mail
|
||||
#volumes:
|
||||
# - name: custom-email-templates
|
||||
# persistentVolumeClaim:
|
||||
# claimName: custom-layout-claim
|
||||
# E-mail templates
|
||||
#volumeMounts:
|
||||
# - name: custom-email-templates
|
||||
# mountPath: /mail
|
||||
#volumes:
|
||||
# - name: custom-email-templates
|
||||
# persistentVolumeClaim:
|
||||
# claimName: custom-layout-claim
|
||||
analysis:
|
||||
repository: kerberos/pipe-analysis
|
||||
repository: uugai/hub-pipeline-analysis
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.3997372987"
|
||||
tag: "v1.0.1"
|
||||
replicas: 1
|
||||
resources:
|
||||
requests:
|
||||
@@ -446,8 +516,8 @@ kerberospipeline:
|
||||
dominantColor:
|
||||
repository: kerberos/pipe-dominantcolor
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.4000824200"
|
||||
replicas: 1
|
||||
tag: "1.0.6971463620"
|
||||
replicas: 3
|
||||
resources:
|
||||
requests:
|
||||
memory: 512Mi
|
||||
@@ -458,13 +528,13 @@ kerberospipeline:
|
||||
thumbnail:
|
||||
repository: kerberos/pipe-thumbnail
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.3997949096"
|
||||
replicas: 1
|
||||
quality: "70"
|
||||
width: "250"
|
||||
height: "250"
|
||||
tag: "1.0.6962799851"
|
||||
replicas: 2
|
||||
quality: "1" # 1 (best) - 31 (worst)
|
||||
width: "600"
|
||||
height: "-1"
|
||||
kerberosvault:
|
||||
enabled: false # If you want to use Kerberos Vault to store the thumbnails
|
||||
enabled: true # If you want to use Kerberos Vault to store the thumbnails
|
||||
resources:
|
||||
requests:
|
||||
memory: 512Mi
|
||||
@@ -475,7 +545,7 @@ kerberospipeline:
|
||||
counting:
|
||||
repository: kerberos/pipe-counting
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.4000858040"
|
||||
tag: "1.0.6251572994"
|
||||
replicas: 1
|
||||
resources:
|
||||
requests:
|
||||
@@ -483,10 +553,10 @@ 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.3997945443"
|
||||
replicas: 3
|
||||
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)
|
||||
height: "135" # Should not be changed for the moment (hard coded in UI)
|
||||
@@ -497,4 +567,50 @@ kerberospipeline:
|
||||
limits:
|
||||
memory: 2Gi
|
||||
cpu: 1000m
|
||||
export:
|
||||
repository: kerberos/pipe-export
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.0.6437127898"
|
||||
replicas: 2
|
||||
resources:
|
||||
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"
|
||||
|
||||
Reference in New Issue
Block a user