Skip to content

Kubernetes Deployment

There’s a Helm chart inside the helm/ folder, in each project repository.

The Helm chart bootstraps a Scoold instance on a Kubernetes cluster using the Helm package manager.

This chart does not install Para next to Scoold in the K8s cluster. There is a separate Helm chart for Para. We also offer a fully managed Para service at ParaIO.com

  • Para backend service (latest version recommended; Helm chart)
  • Helm 3.0+
  • Kubernetes 1.21+ (for the optional CronJob helper)

Clone the repo and go inside the ./helm/ directory :

Terminal window
git clone https://github.com/Erudika/scoold
cd scoold/helm
# edit values.yaml as needed
helm install scoold ./scoold

The command deploys Scoold on the Kubernetes cluster in the default configuration. The configuration section lists the parameters that can be configured during installation.

If you want to auto-initialize Scoold from scratch, deploy the Para Helm chart first, then take note of the root app secret key. The root app secret key is stored in the para-application.conf file located inside /para/application.conf inside the Para pod. Then modify values.yaml and add this Scoold configuration property:

scoold.autoinit.root_app_secret_key="{secret key for root Para app}"

Finally, run helm upgrade --install scoold ./scoold.

To uninstall/delete the scoold deployment:

Terminal window
helm uninstall scoold

The command removes all the Kubernetes components associated with the chart and deletes the release.

The following table lists the configurable parameters inside values.yaml and their default values.

ParameterDefault value
image.repository
Scoold image name
erudikaltd/scoold
image.tag
Scoold image tag
1.65.0
image.pullPolicy
Image pull policy
IfNotPresent
image.pullSecrets
References to image pull secrets
[]
service.type
Kubernetes Service type
ClusterIP
service.port
Service HTTP port
8000
service.name
Service port name
http
applicationConf
Scoold configuration
Sample block in values.yaml
javaOpts
JAVA_OPTS JVM arguments
-Xmx512m -Xms512m -Dconfig.file=/scoold/config/application.conf
podAnnotations
Pod annotations
{}
extraEnvs
Extra environment variables
[]
updateStrategy
Deployment update strategy
RollingUpdate
ingress.enabled
Create Ingress
false
ingress.className
Ingress class name
""
ingress.hosts[0].host
Hostname for the Ingress
scoold.local
ingress.hosts[0].paths[0].path
HTTP path served by the Ingress
/
ingress.tls
TLS configuration
[]
resources
CPU/Memory resource requests/limits
{}
nodeSelector
Node selector
{}
tolerations
Tolerations
[]
affinity
Affinity rules
{}

A YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,

Terminal window
helm install scoold ./scoold -f values.yaml

Or, when updating the chart with new configuration:

Terminal window
helm upgrade --install scoold ./scoold -f values.yaml