Skip to main content

Node Webserver Kubernetes Helm Chart

Node Webserver can be installed in Kubernetes Cluster environments using Helm Charts.

The Node Webserver is installed as a Deployment with a default Replica Count as 1.

Prerequisites

  • Kubernetes 1.19+
  • Helm 3.2.0+

Install Instructions

The steps to install the Webserver Helm chart are :

  • Add Gyeeta Repo to Helm
  • Fetch and edit the values.yaml for the Webserver chart
  • Install the Webserver chart with the edited values

helm repo add gyeeta https://gyeeta.io/helmcharts
helm repo update
helm show values gyeeta/nodewebserver > /tmp/nodewebserver.yaml

# Thereafter you can edit the /tmp/nodewebserver.yaml file if you need to change any option.
# After editing the /tmp/nodewebserver.yaml, install the Node Webserver Helm chart using :

helm install --namespace gyeeta --create-namespace nodewebserver1 gyeeta/nodewebserver -f /tmp/nodewebserver.yaml

Uninstalling the Chart

To uninstall the Webserver deployment say nodewebserver1 as per command above :

helm uninstall nodewebserver1

Node Webserver Chart Parameters

The default Chart config can be obtained using the command :

helm show values gyeeta/nodewebserver > /tmp/nodewebserver.yaml

Then users can edit the /tmp/nodewebserver.yaml file.

Mandatory parameters to provide

The following are the mandatory parameters which users need to provide while installing the chart either using the --set CLI option or by editing the yaml values in the file saved (for example, the /tmp/nodewebserver.yaml file in the command above) :

  • nodewebserver_config.shyama_hosts
  • nodewebserver_config.shyama_ports

The Helm chart install will fail if these parameters are not provided. Explanation about these parameters are given below.

Node Webserver Config parameters

NameDescriptionData TypeDefault Value
nodewebserver_config .shyama_hostsShyama Service Domains : Specify one or more Shyama Service Names (e.g., [ "shyama1-headless" ])Array[]
nodewebserver_config .shyama_portsShyama Service Ports : Specify one or more Shyama Service Ports (e.g., [ 10037 ])Array[]
nodewebserver_config .admin_passwordWeb admin user password : Auto-generated if not specifiedString""
nodewebserver_config .userpass_jsonList of Users, Passwords and their roles in JSON Array formatString""
nodewebserver_config .jwtsecretSecret string to be used for JWT Auth Token encoding. Will be auto-generated if not specifiedString""
nodewebserver_config .tokenexpiryAuthentication Token expiry durationString1d
nodewebserver_config .https.enabledEnable HTTPS : Default is to use HTTPBooleanfalse
nodewebserver_config .https.certIf HTTPS enabled, TLS Certificate in PEM formatString""
nodewebserver_config .https.keyIf HTTPS enabled, TLS Private Key in PEM formatString""
nodewebserver_config .https.passphraseIf TLS Private Key is encrypted using a pass phraseString""
nodewebserver_config .https.existing_secret_nameExternal TLS Certificate Secret name if already existent : Specify if https.cert and https.key are emptyString""
nodewebserver_config. service.typeKubernetes Service typeStringClusterIP
nodewebserver_config. service.portKubernetes Service portNumber10039
nodewebserver_config .service.nodePortNode port. Specify if type set to NodePort. Choose port between 30000-32767Number""
nodewebserver_config .service.clusterIPStatic ClusterIP or None for headless servicesString""
nodewebserver_config .service.annotationsService AnnotationsObject{}
nodewebserver_config .service.loadBalancerIPLoad balancer IP if service type is LoadBalancerString""
nodewebserver_config .service.externalTrafficPolicyCluster External Traffic PolicyStringCluster
nodewebserver_config .service.loadBalancerSourceRangesAddresses that are allowed when service is LoadBalancerArray[]

Ingress parameters

NameDescriptionData TypeDefault Value
nodewebserver_config .ingress.enabledEnable Ingress Controller resourceBooleanfalse
nodewebserver_config .ingress.hostnameDefault host for the ingress resourceStringgyeeta.local
nodewebserver_config .ingress.ingressClassNameIngress Class that will be be used to implement the IngressString""
nodewebserver_config .ingress.annotationsAdditional annotations for the Ingress resourceObject{}
nodewebserver_config .ingress.extraHostsThe list of additional hostnames to be covered with this ingress recordArray[]
nodewebserver_config .ingress.extraTlsThe TLS configuration for additional hostnames to be covered with this ingress recordArray[]
nodewebserver_config .ingress.secretsFor your own TLS certificates, use this to add the certificates as secretsArray[]
nodewebserver_config .ingress.extraRulesAdditional rules to be covered with this ingress recordArray[]
nodewebserver_config .ingress.tlsEnable TLS configuration for the hostname defined at ingress.hostname parameterBooleanfalse
nodewebserver_config .ingress.selfSignedCreate a TLS secret for this ingress record using self-signed certificates generated by HelmBooleanfalse
nodewebserver_config .ingress.apiVersionForce Ingress API version (automatically detected if not set)String""
nodewebserver_config .ingress.pathIngress pathString/
nodewebserver_config .ingress.pathTypeIngress path typeStringImplementationSpecific

Other parameters

NameDescriptionData TypeDefault Value
nameOverrideSet a new name if you want to override the release name usedString""
fullnameOverrideSet a new name if you want to override the fullname usedString""
clusterDomainDefault Kubernetes cluster domainStringcluster.local
resources.requestsResource RequestsObject{}
resources.limitsResource LimitsObject{}
hostAliasespod host aliases for /etc/hostsArray[]
podSecurityPolicyEnable PodSecurityPolicy (only for K8s versions < 1.25)Booleanfalse
affinityAffinity constraint for pod schedulingObject{}
podAffinityPresetPod affinity preset. Ignored if affinity is set. Allowed values: soft or hardString""
podAntiAffinityPresetPod anti-affinity preset. Ignored if affinity is set. Allowed values: soft or hardStringsoft
nodeAffinityPreset.typeNode affinity preset. Ignored if affinity is set. Allowed values: soft or hardString""
nodeAffinityPreset.keyNode label key to match. Ignored if affinity is set.String""
nodeAffinityPreset.valuesNode label values to match. Ignored if affinity is set.Array[]
replicaCountNumber of replicasNumber1
mounts.volumesList of extra volumes to addArray[]
mounts.volumeMountsList of extra volume mountsArray[]
extra.envExtra environment variablesObject{}
extra.argsExtra Command Line Arguments (CLI)Array[]
serviceAccount.createCreate ServiceAccountBooleanfalse