JHipster Domain Language (JDL) - Deployments
Syntax
The deployment declaration is done as follows:
deployment {
<deployment option name> <deployment option value>
}
- Similar to applications, deployment declaration works by specifying option keys & values
Examples
Basic example
deployment {
deploymentType docker-compose
appsFolders [foo, bar]
dockerRepositoryName "yourDockerLoginName"
}
More than one deployment
If you want more than one deployment, here's how you do it:
// will be created under the 'docker-compose' folder
deployment {
deploymentType docker-compose
appsFolders [foo, bar]
dockerRepositoryName "yourDockerLoginName"
}
// will be created under the 'kubernetes' folder
deployment {
deploymentType kubernetes
appsFolders [foo, bar]
dockerRepositoryName "yourDockerLoginName"
}
You can have one deployment per deploymentType
. The applications defined in appsFolders
should be in the same
folder where you are creating deployments or in the folder defined in directoryPath
.
For example, above you need to have a folder structure like this:
.
├── yourJdlFile.jdl
├── foo
├── bar
├── kubernetes // will be created by the JDL
└── docker-compose // will be created by the JDL
Available deployment options
Here are the deployment options supported in the JDL:
JDL option name | Default value | Possible values | Comment |
---|---|---|---|
deploymentType | docker-compose | docker-compose, kubernetes, openshift | - |
directoryPath | ../ | - | Relative path. Must be in double quotes |
appsFolders | [] | - | Directory names for the applications separated by comma. Must be a list, example [foo, bar] |
clusteredDbApps | [] | - | Directory names for the applications with clustered DB separated by comma. Must be a list, example [foo, bar] |
gatewayType | SpringCloudGateway | - | Value is ignored when serviceDiscoveryType is no |
monitoring | no | no, prometheus | - |
serviceDiscoveryType | consul | consul, eureka, no | - |
dockerRepositoryName | - | - | The name or URL of the docker repository. Must be in double quotes |
dockerPushCommand | docker push | - | The docker push command to use. Must be in double quotes |
kubernetesNamespace | default | - | Applicable only when deploymentType is kubernetes |
kubernetesUseDynamicStorage | false | true, false | Applicable only when deploymentType is kubernetes, enables the kubernetesStorageClassName option |
kubernetesStorageClassName | - | - | Applicable only when deploymentType is kubernetes, can be left empty (two double-quotes) |
kubernetesServiceType | LoadBalancer | LoadBalancer, NodePort, Ingress | Applicable only when deploymentType is kubernetes |
ingressDomain | - | - | The domain for Ingress when kubernetesServiceType is Ingress . Must be in double quotes. Applicable only when deploymentType is kubernetes |
ingressType | nginx | nginx, gke | The kubernetes ingress type, only set when kubernetesServiceType is set to Ingress |
istio | false | true, false | Applicable only when deploymentType is kubernetes |
openshiftNamespace | default | - | Applicable only when deploymentType is openshift |
storageType | ephemeral | ephemeral, persistent | Applicable only when deploymentType is openshift |
registryReplicas | 2 | - | The number of replicas, when using the openshift deployment type |