Helm/Kroki: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
No edit summary
 
Line 1: Line 1:
{|class='wikitable' style='width:100%;margin:-11px 0 6px 0'
{|class='wikitable'
|valign='top'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
helm repo add cowboysysop https://cowboysysop.github.io/charts
helm repo add cowboysysop https://cowboysysop.github.io/charts
helm repo update && helm repo list
helm repo update && helm repo list
kubectl config get-contexts
kubectl config get-contexts
</syntaxhighlight>
</syntaxhighlight>
|valign='top' style='width:50%'|
|}
|}


==Helm » Context==
==Helm » Context==
{|class='wikitable mw-collapsible' style='width:100%;margin:3px 0'
{|class='wikitable mw-collapsible'
!scope='col' style='text-align:left' colspan='2'|
!scope='col' style='text-align:left' colspan='2'|
Helm » Context
Helm » Context
|-
|-
|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
export KUBECONFIG="${HOME}/.kube/aws-kubeconfig.yaml"
export KUBECONFIG="${HOME}/.kube/aws-kubeconfig.yaml"
export KUBECONFIG="${HOME}/.kube/dev-kubeconfig.yaml"
export KUBECONFIG="${HOME}/.kube/dev-kubeconfig.yaml"
Line 22: Line 23:


|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
cat <<'EXE'| sudo bash
cat <<'EXE'| sudo bash
     mkdir -p      /var/minikube/pvc/kroki/data-kroki-0/
     mkdir -p      /var/minikube/pvc/kroki/data-kroki-0/
Line 31: Line 32:


==Helm » Install==
==Helm » Install==
{|class='wikitable mw-collapsible mw-collapsed' style='width:100%;margin:3px 0'
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='text-align:left' colspan='2'|
!scope='col' style='text-align:left' colspan='2'|
Helm » Install
Helm » Install
|-
|-
|colspan='2'|
|colspan='2'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
helm show  values cowboysysop/kroki --version=5.7.0|less
helm show  values cowboysysop/kroki --version=5.7.0|less
helm show  values cowboysysop/kroki --version=6.0.0|less
helm show  values cowboysysop/kroki --version=6.0.0|less
Line 43: Line 44:
|-
|-
|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
export KUBECONFIG="${HOME}/.kube/shahed-ab-kubeconfig.yaml"
export KUBECONFIG="${HOME}/.kube/shahed-ab-kubeconfig.yaml"
kubectl create ns  kroki || true
kubectl create ns  kroki || true
Line 49: Line 50:


|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
kubectl get ns|grep kroki
kubectl get ns|grep kroki
kubectl delete ns  kroki || true
kubectl delete ns  kroki || true
Line 62: Line 63:
|-
|-
|valign='top'|
|valign='top'|
<syntaxhighlight style='margin:3px 0' lang='yaml' highlight='13-15'>
<syntaxhighlight lang='yaml' highlight='13-15'>
cat <<'YML'| \
cat <<'YML'| \
kubectl apply -f -
kubectl apply -f -
Line 85: Line 86:


|valign='top'|
|valign='top'|
<syntaxhighlight style='margin:3px 0' lang='yaml' highlight='8,9,16,17'>
<syntaxhighlight lang='yaml' highlight='8,9,16,17'>
cat << YML | \
cat << YML | \
kubectl apply -f -
kubectl apply -f -
Line 108: Line 109:
|-
|-
|valign='top'|
|valign='top'|
<syntaxhighlight style='margin:3px 0' lang='yaml'>
<syntaxhighlight lang='yaml'>
cat <<'YML' | \
cat <<'YML' | \
helm -n=kroki upgrade -i kroki cowboysysop/kroki --version=6.0.0 -f -
helm -n=kroki upgrade -i kroki cowboysysop/kroki --version=6.0.0 -f -
Line 234: Line 235:
|-
|-
|valign='top' colspan='2'|
|valign='top' colspan='2'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
telnet kroki.shahed.biz.ops 443
telnet kroki.shahed.biz.ops 443
setsid open https://kroki.shahed.biz.ops >/dev/null 2>&1 &
setsid open https://kroki.shahed.biz.ops >/dev/null 2>&1 &
Line 241: Line 242:


==Helm » Ingress==
==Helm » Ingress==
{|class='wikitable mw-collapsible mw-collapsed' style='width:100%;margin:3px 0'
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='text-align:left' colspan='2'|
!scope='col' style='text-align:left' colspan='2'|
Kroki » Ingress
Kroki » Ingress
|-
|-
|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='yaml'>
<syntaxhighlight lang='yaml'>
cat <<'YML' | \
cat <<'YML' | \
kubectl -n kroki apply -f -
kubectl -n kroki apply -f -
Line 287: Line 288:


|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
'''Shahed_ECC_Root_CA_2025''' » Firefox » Settings » Certificates » View Certificates » Import
'''Shahed_ECC_Root_CA_2025''' » Firefox » Settings » Certificates » View Certificates » Import


|-
|-
|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='yaml'>
<syntaxhighlight lang='yaml'>
cat <<'YML' | \
cat <<'YML' | \
kubectl -n kroki patch ingress/kroki --patch-file=/dev/stdin
kubectl -n kroki patch ingress/kroki --patch-file=/dev/stdin
Line 307: Line 308:


|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='yaml'>
<syntaxhighlight lang='yaml'>
cat <<'YML' | \
cat <<'YML' | \
kubectl -n kroki patch ingress/kroki --patch-file=/dev/stdin
kubectl -n kroki patch ingress/kroki --patch-file=/dev/stdin
Line 323: Line 324:
|-
|-
|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
setsid open  http://kroki.shahed.biz.ops >/dev/null 2>&1 &
setsid open  http://kroki.shahed.biz.ops >/dev/null 2>&1 &
setsid open https://kroki.shahed.biz.ops >/dev/null 2>&1 &
setsid open https://kroki.shahed.biz.ops >/dev/null 2>&1 &
Line 333: Line 334:


==Helm » Config==
==Helm » Config==
{|class='wikitable mw-collapsible' style='width:100%;margin:3px 0'
{|class='wikitable mw-collapsible'
!scope='col' style='text-align:left' style='width:50%'|
!scope='col' style='text-align:left' style='width:50%'|
Kroki » Config
Kroki » Config
Line 340: Line 341:
|-
|-
|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='yaml'>
<syntaxhighlight lang='yaml'>
cat <<'YML' | \
cat <<'YML' | \
kubectl -n kroki patch deploy/kroki --patch-file=/dev/stdin
kubectl -n kroki patch deploy/kroki --patch-file=/dev/stdin
Line 350: Line 351:


|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='yaml'>
<syntaxhighlight lang='yaml'>
cat <<'YML' | \
cat <<'YML' | \
kubectl -n kroki patch deploy/kroki --patch-file=/dev/stdin
kubectl -n kroki patch deploy/kroki --patch-file=/dev/stdin
Line 361: Line 362:


==Helm » Debug==
==Helm » Debug==
{|class='wikitable mw-collapsible' style='width:100%;margin:3px 0'
{|class='wikitable mw-collapsible'
!scope='col' style='text-align:left'|
!scope='col' style='text-align:left'|
Helm » Debug
Helm » Debug
|-
|-
|valign='top'|
|valign='top'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
kubectl -n kroki exec -it svc/kroki -c kroki -- cat /etc/resolv.conf
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 kroki -- cat /etc/hosts
Line 388: Line 389:


==Helm » Rollout==
==Helm » Rollout==
{|class='wikitable mw-collapsible mw-collapsed' style='width:100%;margin:3px 0'
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='text-align:left' colspan='2'|
!scope='col' style='text-align:left' colspan='2'|
Kroki » Rollout
Kroki » Rollout
|-
|-
|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
kubectl -n kroki annotate        deploy/kroki --overwrite \
kubectl -n kroki annotate        deploy/kroki --overwrite \
  kubernetes.io/change-cause="CKI-1| Initial Deployment"
  kubernetes.io/change-cause="CKI-1| Initial Deployment"
Line 399: Line 400:


|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
kubectl -n kroki rollout history deploy/kroki
kubectl -n kroki rollout history deploy/kroki
kubectl -n kroki rollout pause  deploy/kroki
kubectl -n kroki rollout pause  deploy/kroki
Line 412: Line 413:
|-
|-
|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='yaml'>
<syntaxhighlight lang='yaml'>
cat <<'YML' | \
cat <<'YML' | \
kubectl -n kroki patch deploy/kroki --patch-file=/dev/stdin
kubectl -n kroki patch deploy/kroki --patch-file=/dev/stdin
Line 432: Line 433:


|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='yaml'>
<syntaxhighlight lang='yaml'>
cat <<'YML' | \
cat <<'YML' | \
kubectl -n kroki patch deploy/kroki --patch-file=/dev/stdin
kubectl -n kroki patch deploy/kroki --patch-file=/dev/stdin
Line 452: Line 453:
|-
|-
|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
kubectl -n kroki annotate        deploy/kroki --overwrite \
kubectl -n kroki annotate        deploy/kroki --overwrite \
  kubernetes.io/change-cause="CKI-2| Resources Updated"
  kubernetes.io/change-cause="CKI-2| Resources Updated"
Line 458: Line 459:


|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
kubectl -n kroki rollout resume  deploy/kroki
kubectl -n kroki rollout resume  deploy/kroki
kubectl -n kroki rollout history deploy/kroki
kubectl -n kroki rollout history deploy/kroki
Line 464: Line 465:
|-
|-
|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
kubectl -n kroki rollout undo    deploy/kroki --to-revision=1
kubectl -n kroki rollout undo    deploy/kroki --to-revision=1
kubectl -n kroki rollout history deploy/kroki
kubectl -n kroki rollout history deploy/kroki
Line 470: Line 471:


|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
kubectl -n kroki annotate        deploy/kroki --overwrite \
kubectl -n kroki annotate        deploy/kroki --overwrite \
  kubernetes.io/change-cause="CKI-3| Revert Back to CKI-1"
  kubernetes.io/change-cause="CKI-3| Revert Back to CKI-1"
Line 476: Line 477:
|-
|-
|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
kubectl -n kroki get deploy kroki -o yaml \
kubectl -n kroki get deploy kroki -o yaml \
  | yq -P '.spec.template.spec.containers[]|select(.name == "kroki")|.resources'
  | yq -P '.spec.template.spec.containers[]|select(.name == "kroki")|.resources'
Line 482: Line 483:


|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
kubectl -n kroki get deploy kroki \
kubectl -n kroki get deploy kroki \
   -o jsonpath='{.spec.template.spec.containers[?(@.name=="kroki")].resources}' | yq -P
   -o jsonpath='{.spec.template.spec.containers[?(@.name=="kroki")].resources}' | yq -P
Line 489: Line 490:


==Helm » Uninstall==
==Helm » Uninstall==
{|class='wikitable mw-collapsible mw-collapsed' style='width:100%;margin:3px 0'
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='text-align:left'|
!scope='col' style='text-align:left'|
Helm » Uninstall
Helm » Uninstall
|-
|-
|valign='top'|
|valign='top'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
kubectl delete ns          kroki
kubectl delete ns          kroki
helm    -n kroki status    kroki
helm    -n kroki status    kroki
Line 506: Line 507:


==Kroki » Install==
==Kroki » Install==
{|class='wikitable mw-collapsible' style='width:100%;margin:3px 0'
{|class='wikitable mw-collapsible'
!scope='col' style='text-align:left' colspan='2'|
!scope='col' style='text-align:left' colspan='2'|
Kroki » Install
Kroki » Install
|-
|-
|valign='top' colspan='2'|
|valign='top' colspan='2'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
cat <<'EXE' | sudo bash
cat <<'EXE' | sudo bash
KROKI_ARCH="$(echo "$(uname -s)_$(dpkg --print-architecture)"|tr '[:upper:]' '[:lower:]')"
KROKI_ARCH="$(echo "$(uname -s)_$(dpkg --print-architecture)"|tr '[:upper:]' '[:lower:]')"
Line 526: Line 527:
|-
|-
|valign='top' colspan='2'|
|valign='top' colspan='2'|
<syntaxhighlight style='margin:3px 0' lang='yaml'>
<syntaxhighlight lang='yaml'>
cat <<'YML' | tee ${HOME}/kroki.yml >/dev/null
cat <<'YML' | tee ${HOME}/kroki.yml >/dev/null
---
---
Line 535: Line 536:
|-
|-
|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
BASE64_SCHEME="$(cat <<-'MMD' | kroki encode /dev/stdin
BASE64_SCHEME="$(cat <<-'MMD' | kroki encode /dev/stdin
graph TD
graph TD
Line 546: Line 547:


|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
BASE64_SCHEME="$(cat <<-'MMD' | kroki encode -
BASE64_SCHEME="$(cat <<-'MMD' | kroki encode -
graph TD
graph TD
Line 557: Line 558:
|-
|-
|valign='top' colspan='2'|
|valign='top' colspan='2'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
setsid open https://kroki.shahed.biz.ops/mermaid/svg/${BASE64_SCHEME} >/dev/null 2>&1 &
setsid open https://kroki.shahed.biz.ops/mermaid/svg/${BASE64_SCHEME} >/dev/null 2>&1 &
</syntaxhighlight>
</syntaxhighlight>
Line 563: Line 564:


==Playground==
==Playground==
{|class='wikitable mw-collapsible mw-collapsed' style='width:100%;margin:3px 0'
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='text-align:left' colspan='2'|
!scope='col' style='text-align:left' colspan='2'|
Playground
Playground
|-
|-
|valign='top' colspan='2'|
|valign='top' colspan='2'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
helm -n kroki install    kroki cowboysysop/kroki --version=5.7.0
helm -n kroki install    kroki cowboysysop/kroki --version=5.7.0
helm -n kroki upgrade -i kroki cowboysysop/kroki --version=6.0.0
helm -n kroki upgrade -i kroki cowboysysop/kroki --version=6.0.0
Line 575: Line 576:
|-
|-
|valign='top' colspan='2'|
|valign='top' colspan='2'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
kubectl -n kroki exec -it svc/kroki -c kroki -- bash
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 -c kroki
Line 582: Line 583:
|-
|-
|valign='top' colspan='2'|
|valign='top' colspan='2'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
kubectl config --kubeconfig=${HOME}/.kube/aws-kubeconfig.yaml view --flatten
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/dev-kubeconfig.yaml view --flatten
Line 590: Line 591:
|-
|-
|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
kubectl -n kroki delete all --all
kubectl -n kroki delete all --all
kubectl -n kroki delete ing --all
kubectl -n kroki delete ing --all
Line 597: Line 598:


|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
kubectl    delete pv    kroki-data-kroki-0
kubectl    delete pv    kroki-data-kroki-0
kubectl -n kroki delete svc --all
kubectl -n kroki delete svc --all
Line 605: Line 606:
|-
|-
|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
kubectl -n kroki rollout history deploy kroki
kubectl -n kroki rollout history deploy kroki
kubectl -n kroki rollout restart deploy kroki
kubectl -n kroki rollout restart deploy kroki
Line 612: Line 613:


|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
<syntaxhighlight lang='bash'>
kubectl -n kroki exec -it svc/kroki -c kroki -- ash
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 -c kroki
Line 620: Line 621:


==References==
==References==
{|class='wikitable mw-collapsible' style='width:100%;margin:3px 0'
{|class='wikitable mw-collapsible'
!scope='col' style='text-align:left' colspan='3'|
!scope='col' style='text-align:left' colspan='3'|
References
References

Latest revision as of 06:15, 19 January 2026

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

Kroki » Install

Kroki » Install

cat <<'EXE' | sudo bash
KROKI_ARCH="$(echo "$(uname -s)_$(dpkg --print-architecture)"|tr '[:upper:]' '[:lower:]')"
KROKI_HOME="/opt/cli/$(echo "restic-$(uname -s)-$(dpkg --print-architecture)"|tr '[:upper:]' '[:lower:]')"
KROKI_VERSION=$(curl -s https://api.github.com/repos/yuzutech/kroki-cli/releases/latest | grep -Po '"tag_name": "v\K[^"]*')
curl -fsSLo kroki.tar.gz https://github.com/yuzutech/kroki-cli/releases/download/v${KROKI_VERSION}/kroki-cli_${KROKI_VERSION}_${KROKI_ARCH}.tar.gz
tar   xf    kroki.tar.gz kroki && install kroki /usr/local/bin
rm   -rf    kroki.tar.gz kroki
EXE

kroki version
which kroki
cat <<'YML' | tee ${HOME}/kroki.yml >/dev/null
---
endpoint: https://kroki.shahed.biz.ops
timeout: 30s
YML
BASE64_SCHEME="$(cat <<-'MMD' | kroki encode /dev/stdin
graph TD
  A[Client] --> B[Ingress]
  B --> C[Kroki]
  C --> D[Mermaid Renderer]
MMD
)"
BASE64_SCHEME="$(cat <<-'MMD' | kroki encode -
graph TD
  A[Client] --> B[Ingress]
  B --> C[Kroki]
  C --> D[Mermaid Renderer]
MMD
)"
setsid open https://kroki.shahed.biz.ops/mermaid/svg/${BASE64_SCHEME} >/dev/null 2>&1 &

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