Helm/Kroki: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
Line 215: Line 215:


diagramsnet:
diagramsnet:
   enabled: true
   enabled: false
   image:
   image:
     tag: 0.28.0
     tag: 0.28.0

Revision as of 04:28, 23 December 2025

Helm

helm repo add cowboysysop https://cowboysysop.github.io/charts
helm repo update && helm repo list
kubectl config get-contexts

Helm » Context

Helm » Context

export KUBECONFIG="${HOME}/.kube/aws-kubeconfig.yaml"
export KUBECONFIG="${HOME}/.kube/dev-kubeconfig.yaml"
export KUBECONFIG="${HOME}/.kube/gcp-kubeconfig.yaml"
export KUBECONFIG="${HOME}/.kube/config"
cat <<'EXE'| sudo bash
    mkdir -p       /var/minikube/pvc/kroki/data-kroki-0/
chown -R 1001:1001 /var/minikube/pvc/kroki/
EXE

Helm » Install

Helm » Install

helm show   values cowboysysop/kroki --version=5.7.0|less
helm show   values cowboysysop/kroki --version=6.0.0|less
export KUBECONFIG="${HOME}/.kube/shahed-ab-kubeconfig.yaml"
kubectl create ns   kroki || true
kubectl get ns|grep kroki
kubectl delete ns   kroki || true


cat <<'YML'| \
kubectl apply -f -

---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: kroki-data-kroki-0
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: hostpath
  hostPath:
    path: /var/hostpath_pv/kroki/data-kroki-0
    type: DirectoryOrCreate
YML
cat << YML | \
kubectl apply -f -
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  labels:
    app.kubernetes.io/name: kroki
  name: data-kroki-0
  namespace: kroki
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: hostpath
  volumeName: kroki-data-kroki-0
YML
cat <<'YML' | \
helm -n=kroki upgrade -i kroki cowboysysop/kroki --version=6.0.0 -f -
---
replicaCount: 1
nameOverride: ops
fullnameOverride: kroki
revisionHistoryLimit: 5

image:
  tag: 0.28.0
  registry: docker.io
  repository: yuzutech/kroki

service:
  type: ClusterIP
  ports:
    http: 8000

ingress:
  enabled: true
  ingressClassName: nginx
  pathType: ImplementationSpecific
  annotations:
    kubernetes.io/tls-acme: "false"
    kubernetes.io/ingress.class: nginx
  hosts:
    - host: kroki.shahed.biz.ops
      paths:
        - /

resources:
  requests:
    cpu: 25m
    memory: 64Mi
  limits:
    cpu: 100m
    memory: 128Mi

mermaid:
  enabled: true
  image:
    tag: 0.28.0
    registry: docker.io
    repository: yuzutech/kroki-mermaid

  containerPorts:
    http: 8002

  resources:
    requests:
      cpu: 25m
      memory: 64Mi
    limits:
      cpu: 200m
      memory: 256Mi

bpmn:
  enabled: true
  image:
    tag: 0.28.0
    registry: docker.io
    repository: yuzutech/kroki-bpmn

  containerPorts:
    http: 8003

  resources:
    requests:
      cpu: 25m
      memory: 64Mi
    limits:
      cpu: 150m
      memory: 256Mi

  extraEnvVars:
    - name: JAVA_TOOL_OPTIONS
      value: "-XX:MaxRAMPercentage=75 -XX:InitialRAMPercentage=50"

excalidraw:
  enabled: false
  image:
    tag: 0.28.0
    registry: docker.io
    repository: yuzutech/kroki-excalidraw

  containerPorts:
    http: 8004

  resources:
    requests:
      cpu: 25m
      memory: 64Mi
    limits:
      cpu: 150m
      memory: 256Mi

  extraEnvVars:
    - name: CHROME_FLAGS
      value: "--disable-gpu --disable-vulkan --disable-software-rasterizer --headless=new"
    - name: LIBGL_ALWAYS_SOFTWARE
      value: "1"

diagramsnet:
  enabled: false
  image:
    tag: 0.28.0
    registry: docker.io
    repository: yuzutech/kroki-diagramsnet

  containerPorts:
    http: 8005

  resources:
    requests:
      cpu: 75m
      memory: 256Mi
    limits:
      cpu: 400m
      memory: 768Mi
YML
telnet kroki.shahed.biz.ops 443
setsid open https://kroki.shahed.biz.ops >/dev/null 2>&1 &

Helm » Ingress

Kroki » Ingress

cat <<'YML' | \
kubectl -n kroki apply -f -
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: kroki-cert
  namespace: kroki
spec:
  secretName: kroki-cert
  commonName: kroki.shahed.biz.ops
  dnsNames:
    - kroki.shahed.biz.ops
  duration: 8760h
  renewBefore: 720h
  privateKey:
    size: 256
    encoding: PKCS8
    algorithm: ECDSA
    rotationPolicy: Always
  usages:
    - digital signature
    - key encipherment
    - server auth
    - client auth
  subject:
    countries: ["BD"]
    provinces: ["Dhaka"]
    postalCodes: ["1500"]
    localities: ["Munshiganj"]
    organizations: ["Shahed, Inc."]
    organizationalUnits: ["kroki.shahed.biz.ops"]
    streetAddresses: ["256 Khal East, Passport Office"]
  issuerRef:
    name: shahed-ecc-sub-ca-2025-k8s
    kind: ClusterIssuer
YML

Shahed_ECC_Root_CA_2025 » Firefox » Settings » Certificates » View Certificates » Import

cat <<'YML' | \
kubectl -n kroki patch ingress/kroki --patch-file=/dev/stdin
---
metadata:
  annotations:
    cert-manager.io/cluster-issuer: shahed-ecc-sub-ca-2025-k8s
spec:
  tls:
    - hosts:
        - kroki.shahed.biz.ops
      secretName: kroki-cert
YML
cat <<'YML' | \
kubectl -n kroki patch ingress/kroki --patch-file=/dev/stdin
---
metadata:
  annotations:
    cert-manager.io/cluster-issuer: null
spec:
  tls: null



YML
setsid open  http://kroki.shahed.biz.ops >/dev/null 2>&1 &
setsid open https://kroki.shahed.biz.ops >/dev/null 2>&1 &

Helm » Config

Kroki » Config

Kroki » Revert

cat <<'YML' | \
kubectl -n kroki patch deploy/kroki --patch-file=/dev/stdin
---
spec:
  replicas: 0
YML
cat <<'YML' | \
kubectl -n kroki patch deploy/kroki --patch-file=/dev/stdin
---
spec:
  replicas: 1
YML

Helm » Debug

Helm » Debug

kubectl -n kroki exec -it svc/kroki -c kroki -- cat /etc/resolv.conf
kubectl -n kroki exec -it svc/kroki -c kroki -- cat /etc/hosts

kubectl -n kroki exec -it svc/kroki -c diagramsnet -- bash
kubectl -n kroki exec -it svc/kroki -c excalidraw  -- bash
kubectl -n kroki exec -it svc/kroki -c mermaid     -- bash
kubectl -n kroki exec -it svc/kroki -c kroki       -- bash
kubectl -n kroki exec -it svc/kroki -c bpmn        -- bash


kubectl -n kroki logs -f  svc/kroki -c diagramsnet
kubectl -n kroki logs -f  svc/kroki -c excalidraw
kubectl -n kroki logs -f  svc/kroki -c mermaid
kubectl -n kroki logs -f  svc/kroki -c kroki
kubectl -n kroki logs -f  svc/kroki -c bpmn

kubectl -n kroki logs -f  svc/kroki

Helm » Rollout

Kroki » Rollout

kubectl -n kroki annotate        deploy/kroki --overwrite \
 kubernetes.io/change-cause="CKI-1| Initial Deployment"
kubectl -n kroki rollout history deploy/kroki
kubectl -n kroki rollout pause   deploy/kroki

Kroki » Rollout

Kroki » Revert

cat <<'YML' | \
kubectl -n kroki patch deploy/kroki --patch-file=/dev/stdin
---
spec:
  template:
    spec:
      containers:
        - name: kroki
          resources:
            requests:
              cpu: 50m
              memory: 128Mi
            limits:
              cpu: 200m
              memory: 256Mi
YML
cat <<'YML' | \
kubectl -n kroki patch deploy/kroki --patch-file=/dev/stdin
---
spec:
  template:
    spec:
      containers:
        - name: kroki
          resources:
            requests:
              cpu: 25m
              memory: 64Mi
            limits:
              cpu: 100m
              memory: 128Mi
YML
kubectl -n kroki annotate        deploy/kroki --overwrite \
 kubernetes.io/change-cause="CKI-2| Resources Updated"
kubectl -n kroki rollout resume  deploy/kroki
kubectl -n kroki rollout history deploy/kroki
kubectl -n kroki rollout undo    deploy/kroki --to-revision=1
kubectl -n kroki rollout history deploy/kroki
kubectl -n kroki annotate        deploy/kroki --overwrite \
 kubernetes.io/change-cause="CKI-3| Revert Back to CKI-1"
kubectl -n kroki get deploy kroki -o yaml \
 | yq -P '.spec.template.spec.containers[]|select(.name == "kroki")|.resources'
kubectl -n kroki get deploy kroki \
  -o jsonpath='{.spec.template.spec.containers[?(@.name=="kroki")].resources}' | yq -P

Helm » Uninstall

Helm » Uninstall

kubectl delete ns          kroki
helm    -n kroki status    kroki
helm    -n kroki get all   kroki
helm    -n kroki uninstall kroki

kubectl -n kroki  delete pvc --all
kubectl delete pv kroki-data-kroki-0

Playground

Playground

helm -n kroki install    kroki cowboysysop/kroki --version=5.7.0
helm -n kroki upgrade -i kroki cowboysysop/kroki --version=6.0.0
helm show   values cowboysysop/kroki --version=6.0.0|less
kubectl -n kroki exec -it svc/kroki -c kroki -- bash
kubectl -n kroki logs -f  svc/kroki -c kroki
kubectl -n kroki logs -f  svc/kroki
kubectl config --kubeconfig=${HOME}/.kube/aws-kubeconfig.yaml view --flatten
kubectl config --kubeconfig=${HOME}/.kube/dev-kubeconfig.yaml view --flatten
kubectl config --kubeconfig=${HOME}/.kube/gcp-kubeconfig.yaml view --flatten
kubectl config --kubeconfig=${HOME}/.kube/config view --flatten
kubectl -n kroki delete all --all
kubectl -n kroki delete ing --all
kubectl -n kroki delete sts --all
kubectl    delete pv     kroki-data-kroki-0
kubectl -n kroki delete svc --all
kubectl -n kroki delete pvc --all
kubectl -n kroki rollout history deploy kroki
kubectl -n kroki rollout restart deploy kroki
kubectl -n kroki rollout status  deploy kroki
kubectl -n kroki exec -it svc/kroki -c kroki -- ash
kubectl -n kroki logs -f  svc/kroki -c kroki
kubectl -n kroki logs -f  svc/kroki

References

References