Try with Helm
This page describes how to deploy Casdoor on Kubernetes using Helm.
Передумови
- A running Kubernetes cluster (1.19+)
- Helm v3.8+
Installation
Step 1: Install the Casdoor chart
Install the Casdoor Helm chart:
helm install casdoor oci://registry-1.docker.io/casbin/casdoor-helm-charts --version <version>
To install with a custom values file:
helm install casdoor oci://registry-1.docker.io/casbin/casdoor-helm-charts \
--version <version> \
-f my-values.yaml
Step 2: Access Casdoor
After installation, use the service URL provided by your cluster to access Casdoor.
Customization
Override values.yaml to customize the deployment. Key parameters:
| Параметр | Опис | Значення за замовчуванням |
|---|---|---|
replicaCount | Кількість реплік додатку Casdoor для запуску. | 1 |
image.repository | Репозиторій для Docker-образу Casdoor. | casbin |
image.name | Назва Docker-образу Casdoor. | casdoor |
image.pullPolicy | Політика завантаження для Docker-образу Casdoor. | IfNotPresent |
image.tag | Тег для Docker-образу Casdoor. | "" |
config | Налаштування конфігурації для додатку Casdoor. | See values.yaml |
database.driver | Database driver to use (mysql, postgres, cockroachdb, sqlite). | sqlite |
database.user | Ім'я користувача бази даних. | "" |
database.password | Пароль бази даних. | "" |
database.host | Хост бази даних. | "" |
database.port | Порт бази даних. | "" |
database.databaseName | Назва бази даних, яку використовує Casdoor. | casdoor |
database.sslMode | Режим SSL для з'єднання з базою даних. | disable |
service.type | Type of Kubernetes service (ClusterIP, NodePort, LoadBalancer). | ClusterIP |
service.port | Номер порту для сервісу Casdoor. | 8000 |
ingress.enabled | Чи включити Ingress для Casdoor. | false |
ingress.annotations | Анотації для ресурсу Ingress. | {} |
ingress.hosts | Імена хостів для ресурсу Ingress. | [] |
resources | Запити ресурсів та ліміти для контейнера Casdoor. | {} |
autoscaling.enabled | Чи включити Horizontal Pod Autoscaler для Casdoor. | false |
autoscaling.minReplicas | Minimum number of replicas for HPA. | 1 |
autoscaling.maxReplicas | Maximum number of replicas for HPA. | 100 |
autoscaling.targetCPUUtilizationPercentage | Target CPU utilization percentage for HPA. | 80 |
nodeSelector | Мітки вузлів для призначення подів. | {} |
tolerations | Мітки толерації для призначення подів. | [] |
affinity | Налаштування афінності для призначення подів. | {} |
extraContainersEnabled | Чи включити додаткові контейнери sidecar. | false |
extraContainers | Додаткові контейнери sidecar. | "" |
extraVolumeMounts | Додаткові монтування томів для контейнера Casdoor. | [] |
extraVolumes | Додаткові томи для контейнера Casdoor. | [] |
envFromSecret | Environment variables from individual Secret keys. | [] |
envFromConfigmap | Environment variables from individual ConfigMap keys. | [] |
envFrom | Environment variables from entire Secrets or ConfigMaps. | [] |
Exposing Casdoor
Option 1: Ingress (classic)
Enable and configure Ingress:
ingress:
enabled: true
className: nginx
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
hosts:
- host: casdoor.example.com
paths:
- path: /
pathType: Prefix
tls:
- secretName: casdoor-tls
hosts:
- casdoor.example.com
Option 2: Gateway API (modern)
The Kubernetes Gateway API is the next-generation successor to Ingress, officially GA since Kubernetes 1.31. It is supported by Istio, Envoy Gateway, Cilium, Kong, NGINX Gateway Fabric, and others.
порада
Prerequisites
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.2.0/standard-install.yaml
You also need a compatible Gateway controller running in your cluster.