diff --git a/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/argocd-apps-mermaid-app.yaml b/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/argocd-apps-mermaid-app.yaml new file mode 100644 index 0000000..ac5ecb7 --- /dev/null +++ b/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/argocd-apps-mermaid-app.yaml @@ -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 diff --git a/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/argocd-apps-mermaid-namespace.yaml b/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/argocd-apps-mermaid-namespace.yaml new file mode 100644 index 0000000..7189fe6 --- /dev/null +++ b/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/argocd-apps-mermaid-namespace.yaml @@ -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 diff --git a/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/kustomize/kustomization.yaml b/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/kustomize/kustomization.yaml new file mode 100644 index 0000000..7077124 --- /dev/null +++ b/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/kustomize/kustomization.yaml @@ -0,0 +1,7 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - mermaid-deployment.yaml + - mermaid-service.yaml + - mermaid-ingress.yaml diff --git a/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/kustomize/mermaid-deployment.yaml b/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/kustomize/mermaid-deployment.yaml new file mode 100644 index 0000000..9d1ef1d --- /dev/null +++ b/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/kustomize/mermaid-deployment.yaml @@ -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: "" diff --git a/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/kustomize/mermaid-ingress.yaml b/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/kustomize/mermaid-ingress.yaml new file mode 100644 index 0000000..b912067 --- /dev/null +++ b/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/kustomize/mermaid-ingress.yaml @@ -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 diff --git a/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/kustomize/mermaid-service.yaml b/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/kustomize/mermaid-service.yaml new file mode 100644 index 0000000..e710958 --- /dev/null +++ b/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/kustomize/mermaid-service.yaml @@ -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 diff --git a/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/values.yaml b/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/values.yaml new file mode 100644 index 0000000..c1f32f5 --- /dev/null +++ b/clusters/k8s-avroid-office.prod.local/namespaces/mermaid/values.yaml @@ -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"