[DO-1431] add mermaid (!14)

[DO-1431]

Co-authored-by: denis.patrakeev <denis.patrakeev@avroid.tech>
Reviewed-on: https://git.avroid.tech/K8s/k8s-configs/pulls/14
This commit is contained in:
Denis Patrakeev
2025-02-11 13:05:00 +03:00
parent 704cf5d4a9
commit 728d2742bd
7 changed files with 227 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: mermaid
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: mermaid
destination:
server: https://kubernetes.default.svc
namespace: mermaid
sources:
- repoURL: https://git.avroid.tech/K8s/k8s-configs.git
targetRevision: master
path: clusters/k8s-avroid-office.prod.local/namespaces/mermaid/kustomize
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- ApplyOutOfSyncOnly=true
- CreateNamespace=true
---
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: mermaid
namespace: argocd
# Finalizer that ensures that project is not deleted until it is not referenced by any application
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
sourceRepos:
- https://git.avroid.tech/K8s/k8s-configs.git
# Only permit applications to deploy to the guestbook namespace in the same cluster
destinations:
- namespace: mermaid
server: https://kubernetes.default.svc
# Deny all cluster-scoped resources from being created, except for Namespace
clusterResourceWhitelist:
- group: ''
kind: Namespace

View File

@@ -0,0 +1,25 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: mermaid
labels:
name: mermaid
app.kubernetes.io/managed-by: argocd
annotations:
argocd.argoproj.io/sync-wave: "-1"
scheduler.alpha.kubernetes.io/node-selector: node-role.kubernetes.io/worker=
---
apiVersion: v1
kind: ResourceQuota
metadata:
name: mermaid
namespace: mermaid
labels:
app.kubernetes.io/managed-by: argocd
spec:
hard:
requests.cpu: 100m
requests.memory: 64Mi
limits.cpu: 500m
limits.memory: 256Mi

View File

@@ -0,0 +1,7 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- mermaid-deployment.yaml
- mermaid-service.yaml
- mermaid-ingress.yaml

View File

@@ -0,0 +1,43 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mermaid
labels:
app.kubernetes.io/name: mermaid
app.kubernetes.io/instance: mermaid
spec:
replicas: 2
selector:
matchLabels:
app.kubernetes.io/name: mermaid
app.kubernetes.io/instance: mermaid
template:
metadata:
labels:
app.kubernetes.io/name: mermaid
app.kubernetes.io/instance: mermaid
spec:
containers:
- name: mermaid
image: harbor.avroid.tech/docker-hub-proxy/supinf/mermaid-editor:8.0
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 80
protocol: TCP
readinessProbe:
httpGet:
path: /
port: http
initialDelaySeconds: 5
periodSeconds: 15
resources:
requests:
cpu: 50m
memory: 32Mi
limits:
cpu: 250m
memory: 256Mi
nodeSelector:
node-role.kubernetes.io/worker: ""

View File

@@ -0,0 +1,21 @@
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: mermaid
labels:
app.kubernetes.io/name: mermaid
app.kubernetes.io/instance: mermaid
spec:
ingressClassName: nginx
rules:
- host: mermaid.avroid.tech
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: karma
port:
name: http

View File

@@ -0,0 +1,18 @@
---
apiVersion: v1
kind: Service
metadata:
name: mermaid
labels:
app.kubernetes.io/name: mermaid
app.kubernetes.io/instance: mermaid
spec:
type: ClusterIP
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
selector:
app.kubernetes.io/name: mermaid
app.kubernetes.io/instance: mermaid

View File

@@ -0,0 +1,69 @@
# https://github.com/wiremind/wiremind-helm-charts/blob/main/charts/karma/values.yaml
# Number of replicas
replicaCount: 2
image:
repository: ghcr.io/prymitive/karma
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
hosts:
- karma.avroid.tech
ingressClassName: "nginx"
path: /
pathType: ImplementationSpecific
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 450m
memory: 384Mi
nodeSelector:
node-role.kubernetes.io/worker: ""
configMap:
enabled: true
rawConfig:
alertmanager:
interval: 30s
servers:
- cluster: standalone
name: avroid
uri: http://h-mon.avroid.tech:9093
timeout: 10s
proxy: true
cors:
credentials: same-origin
labels:
color:
static:
- job
unique:
- alertname
- alertgroup
- severity
- name
- job
- instance
- subsystem
- device
- mountpoint
ui:
refresh: 10s
animations: true
colorTitlebar: true
multiGridLabel: severity
filters:
default:
- "@state!=suppressed"
- "@receiver!=avroid_alerts_critical"