Setup with Helm
You can deploy Dirigible via Helm Chart in a Kubernetes cluster.
Prerequisites
- Helm
- Kubernetes Cluster on IaaS provider of your choice
Steps
- 
Add the Eclipse Dirigible Helm repository: helm repo add dirigible https://eclipse.github.io/dirigible helm repo update
- 
Verify Eclipse Dirigible Helm chart: helm pull dirigible/dirigible --prov curl -o ~/.gnupg/pubring.gpg https://eclipse.github.io/dirigible/charts/pubring.gpg helm verify dirigible-<version>.tgzYou shoul see message: Signed by: Using Key With Fingerprint: Chart Hash Verified:
- 
Basic: helm install dirigible dirigible/dirigibleAccessThis will install Eclipse Dirigible Deployment and Service with ClusterIP only. To access the Dirigible instance execute the command that was printed in the console. Example: export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=dirigible,app.kubernetes.io/instance=dirigible" -o jsonpath="{.items[0].metadata.name}") echo "Visit http://127.0.0.1:8080 to use your application" kubectl --namespace default port-forward $POD_NAME 8080:8080- Navigate to: http://127.0.0.1:8080
- Login with: dirigible/dirigible
 
- 
Kubernetes: helm install dirigible dirigible/dirigible \ --set ingress.enabled=true \ --set ingress.host=<ingress-host>This will expose the Dirigible instance through Ingress host ( http://...).helm install dirigible dirigible/dirigible \ --set istio.enabled=true \ --set ingress.host=<ingress-host>This will install Eclipse Dirigible Deployment,ServicewithClusterIPonly and IstioGatewayandVirtual Service. To access the Dirigible instance execute the command that was printed in the console.kubectl get svc istio-ingressgateway -n istio-system \ -o jsonpath="{.status.loadBalancer.ingress[*].hostname}"helm install dirigible dirigible/dirigible \ --set ingress.enabled=true \ --set ingress.host=<ingress-host> \ --set database.enabled=trueThis will install also PostgreSQLdatabase with1Gistorage and update the Dirigible datasource configuration to consume the database.helm install dirigible dirigible/dirigible \ --set ingress.enabled=true \ --set ingress.host=<ingress-host> \ --set database.enabled=true \ --set keycloak.enabled=true \ --set keycloak.install=true \ --set keycloak.database.enabled=trueIn addition Keycloakwill be deployed and configured.Disable HTTPS In some cases you might want to disable the "Required HTTPS" for Keycloak. - Login to the PostgreSQLPod:
 kubectl exec -it keycloak-database-<pod-uuid> /bin/bash- Connect to the keycloakdatabase:
 psql --u keycloak- Set the ssl_requiredtoNONE:
 update REALM set ssl_required='NONE' where id = 'master';- Restart the Keycloakpod to apply the updated configuration:
 kubectl delete pod keycloak-<pod-uuid>Now the Required HTTPSshould be disabled and the keycloak instance should be accessible viahttp://Prerequisites - Install the gcloud CLI
- Install kubectl and configure cluster access
- Install Helm
 Info - You can check the blog for more details.
 helm upgrade --install dirigible dirigible -n dirigible-demo \ --set volume.enabled=true \ --set serviceAccount.create=false \ --set keycloak.serviceAccountCreate=false \ --set ingress.tls=true \ --set keycloak.enabled=true \ --set keycloak.install=true \ --set istio.enabled=true \ --set istio.enableHttps=true \ --set gke.cloudSQL=true \ --set gke.projectId=<your-project-id> \ --set gke.region=<your-gke-cluster-region> \ --set ingress.host=<your-domain>
- Login to the 
- 
Kyma: helm install dirigible dirigible/dirigible \ --set kyma.enabled=true \ --set kyma.apirule.host=<kyma-host>This will install additionally an ApiRuleand XSUAAServiceInstanceandServiceBinding. The appropriate roles should be assigned to the user.helm install dirigible dirigible/dirigible \ --set kyma.enabled=true \ --set kyma.apirule.host=<kyma-host> \ --set database.enabled=trueThis will install also PostgreSQLdatabase with1Gistorage and update the Dirigible datasource configuration to consume the database.helm install dirigible dirigible/dirigible \ --set kyma.enabled=true \ --set kyma.apirule.host=<kyma-host> \ --set database.enabled=true \ --set keycloak.enabled=true \ --set keycloak.install=trueIn addition Keycloakwill be deployed and configured.Disable HTTPS In some cases you might want to disable the "Required HTTPS" for Keycloak. - Login to the PostgreSQLPod:
 kubectl exec -it keycloak-database-<pod-uuid> /bin/bash- Connect to the keycloakdatabase:
 psql --u keycloak- Set the ssl_requiredtoNONE:
 update REALM set ssl_required='NONE' where id = 'master';- Restart the Keycloakpod to apply the updated configuration:
 kubectl delete pod keycloak-<pod-uuid>Now the Required HTTPSshould be disabled and the keycloak instance should be accessible viahttp://
- Login to the 
- 
Uninstall: helm uninstall dirigible
Configuration
The following table lists all the configurable parameters expose by the Dirigible chart and their default values.
Generic
| Name | Description | Default | 
|---|---|---|
| dirigible.image | Custom Dirigible image | "" | 
| image.repository | Dirigible image repo | dirigiblelabs/dirigible-all | 
| image.repositoryKyma | Dirigible Kyma image repo | dirigiblelabs/dirigible-sap-kyma | 
| image.repositoryKeycloak | Dirigible Keycloak image repo | dirigiblelabs/dirigible-keycloak | 
| image.pullPolicy | Image pull policy | IfNotPresent | 
| service.type | Service type | ClusterIP | 
| service.port | Service port | 8080 | 
| replicaCount | Number of replicas | 1 | 
| imagePullSecrets | Image pull secrets | [] | 
| nameOverride | Name override | "" | 
| fullnameOverride | Fullname override | "" | 
| podSecurityContext | Pod security context | {} | 
| nodeSelector | Node selector | {} | 
| tolerations | Tolerations | [] | 
| affinity | Affinity | {} | 
| resources | Resources | {} | 
Basic
| Name | Description | Default | 
|---|---|---|
| volume.enabled | Volume to be mounted | true | 
| volume.storage | Volume storage size | 1Gi | 
| database.enabled | Database to be deployed | false | 
| database.image | Database image | postgres:13 | 
| database.driver | Database JDBC driver | org.postgresql.Driver | 
| database.storage | Database storage size | 1Gi | 
| database.username | Database username | dirigible | 
| database.password | Database password | dirigible | 
| ingress.enabled | Ingress to be created | false | 
| ingress.annotations | Ingress annotations | {} | 
| ingress.host | Ingress host | "" | 
| ingress.tls | Ingress tls | false | 
Istio
| Name | Description | Default | 
|---|---|---|
| istio.enabled | Istio to be enable | false | 
| istio.gatewayName | Istio gateway name | gateway | 
| istio.serversPortNumber | Istio servers port number | 80 | 
| istio.serversPortName | Istio servers port name | http | 
| istio.serversPortProtocol | Istio servers port protocol | HTTP | 
| istio.serversHost | Istio servers host | * | 
| istio.virtualserviceName | Istio virtual service name | dirigible | 
| istio.virtualserviceHosts | Istio virtual service hosts | * | 
| istio.virtualserviceGateways | Istio virtual service gateway | gateway | 
| istio.virtualserviceDestination | Istio virtual service destination | dirigible | 
| istio.virtualservicePort | Istio virtual service port | 8080 | 
Kyma
| Name | Description | Default | 
|---|---|---|
| kyma.enabled | Kyma environment to be used | false | 
| kyma.apirule.enabled | Kyma ApiRule to be created | true | 
| kyma.apirule.host | Kyma host to be used in ApiRule | "" | 
Keycloak
| Name | Description | Default | 
|---|---|---|
| keycloak.enabled | Keycloak environment to be used | false | 
| keycloak.install | Keycloak to be installed | false | 
| keycloak.name | Keycloak deployment name | keycloak | 
| keycloak.image | Keycloak image | jboss/keycloak:12.0.4 | 
| keycloak.username | Keycloak username | admin | 
| keycloak.password | Keycloak password | admin | 
| keycloak.replicaCount | Keycloak number of replicas | 1 | 
| keycloak.realm | Keycloak realm to be set | master | 
| keycloak.clientId | Keycloak clientId to be used | dirigible | 
| keycloak.database.enabled | Keycloak database to be used | false | 
| keycloak.database.enabled | Keycloak database to be used | true | 
| keycloak.database.image | Keycloak database image | postgres:13 | 
| keycloak.database.storage | Keycloak database storage size | 1Gi | 
| keycloak.database.username | Keycloak database username | keycloak | 
| keycloak.database.password | Keycloak database password | keycloak | 
Usage
Specify the parameters you which to customize using the --set argument to the helm install command. For instance,
helm install dirigible dirigible/dirigible \
--set ingress.enabled=true \
--set ingress.host=my-ingress-host.com
The above command sets the ingress.host to my-ingress-host.com.
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
helm install dirigible dirigible/dirigible --values values.yaml
Tip
You can use the default values.yaml.