[DO-1600] Move plantuml in new namespace (!30)

[DO-1600]

Co-authored-by: denis.patrakeev <denis.patrakeev@avroid.tech>
Reviewed-on: https://git.avroid.tech/K8s/k8s-configs/pulls/30
This commit is contained in:
Denis Patrakeev
2025-02-21 18:43:49 +03:00
parent f5e4565fd5
commit 5b7fa18763
5 changed files with 83 additions and 6 deletions

View File

@@ -0,0 +1,59 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: prod
labels:
name: prod
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: prod
namespace: prod
labels:
app.kubernetes.io/managed-by: argocd
spec:
hard:
requests.cpu: "4"
requests.memory: "10Gi"
requests.storage: "100Mi"
limits.cpu: "16"
limits.memory: 24Gi
configmaps: "200"
resourcequotas: "1"
secrets: "200"
services: "200"
pods: "100"
persistentvolumeclaims: "40"
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: prod-common
namespace: prod
labels:
app.kubernetes.io/managed-by: argocd
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
ingress: []
egress:
- to:
- ipBlock:
# office-balancer.avroid.tech
cidr: 10.2.16.2/32
ports:
- port: 443
protocol: TCP
- ports:
- port: 53
protocol: TCP
- port: 53
protocol: UDP

View File

@@ -0,0 +1,51 @@
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: plantuml
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: plantuml
destination:
server: https://kubernetes.default.svc
namespace: prod
sources:
- repoURL: https://git.avroid.tech/K8s/k8s-configs.git
targetRevision: master
ref: values
- repoURL: https://nexus.avroid.tech/repository/devops-helm-proxy-helm/
chart: "stevehipwell/plantuml"
targetRevision: 3.36.0
helm:
valueFiles:
- $values/clusters/k8s-avroid-office.prod.local/namespaces/prod/plantuml/values-ovveride.yaml
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- ApplyOutOfSyncOnly=true
- CreateNamespace=true
---
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: plantuml
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
- https://nexus.avroid.tech/repository/devops-helm-proxy-helm/
# Only permit applications to deploy to the guestbook namespace in the same cluster
destinations:
- namespace: prod
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: plantuml
labels:
name: plantuml
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: plantuml
namespace: plantuml
labels:
app.kubernetes.io/managed-by: argocd
spec:
hard:
requests.cpu: "0.5"
requests.memory: 2Gi
limits.cpu: "2"
limits.memory: 4Gi

View File

@@ -0,0 +1,18 @@
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: plantuml-in
namespace: prod
labels:
app.kubernetes.io/managed-by: argocd
spec:
podSelector:
matchLabels:
app.kubernetes.io/name: plantuml
policyTypes:
- Ingress
ingress:
- ports:
- port: 80
protocol: TCP

View File

@@ -0,0 +1,41 @@
# https://github.com/stevehipwell/helm-charts/blob/main/charts/plantuml/values.yaml
image:
# -- Image repository for the default container.
repository: harbor.avroid.tech/docker-hub-proxy/plantuml/plantuml-server
ingress:
# -- If `true`, create an `Ingress` resource.
enabled: true
# -- Ingress annotations.
annotations:
kubernetes.io/ingress.class: nginx
ingressClassName: "nginx"
# -- (list) Ingress hosts.
# @default -- See _values.yaml_
hosts:
- plantuml.avroid.tech
# -- (string) Ingress path.
path: /
# -- (list) Ingress TLS.
# @default -- See _values.yaml_
tls: []
# - hosts:
# - plantuml.local
# secretName: plantuml-tls
# -- Number of replicas to create if `autoscaling.enabled` is `false`.
replicaCount: 2
# -- Resources for the default container.
resources:
requests:
cpu: 200m
memory: 1024Mi
limits:
cpu: 1000m
memory: 2048Mi
# -- Node labels to match for pod scheduling.
nodeSelector:
node-role.kubernetes.io/worker: ""