The Lucenia Helm chart installs Lucenia on a Kubernets cluster using the Helm package manager. RBAC, ingress, and other other resources and configuration options are availalbe based on the need and values provided.
To install the chart, use the following command:
helm install <release-name> ./lucenia --values values-file.yaml
helm uninstall <release-name>
The following table lists the configurable parameters of the Lucenia chart and their default values.
| Parameter | Description | Default |
| ———————————– | ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— | ————————————————————————————————————— |
| antiAffinityTopologyKey
| The anti-affinity topology key. By default this will prevent multiple Lucenia nodes from running on the same Kubernetes node | kubernetes.io/hostname
|
| antiAffinity
| Setting this to hard
enforces the anti-affinity rules. If it is set to soft
it will be done “best effort”. Setting it to custom
will use whatever is set in the customAntiAffinity
parameter. Other values will be ignored. | hard
|
| clusterName
| The name used as the Lucenia cluster name; this should be unique per namespace. | lucenia-cluster
|
| customAntiAffinity
| Allows passing in custom anti-affinity settings as defined in the anti-affinity rules. Using this parameter requires setting the antiAffinity
parameter to custom
. | {}
|
| enableServiceLinks
| Set to false to disabling service links, which can cause slow pod startup times when there are many services in the current namespace. | true
|
| envFrom
| Templatable string to be passed to the environment from variables which will be appended to the envFrom:
definition for the container. | []
|
| config
| Allows ability to add config files in <luceniaHome>/config/
such as lucenia.yml
and log4j2.properties
. String or map format may be used for specifying the content of each configuration file. When using string format, the entire config file will be replaced by a new config file value; alternatively, when using map format, the configuration file will be the result of a merge. In both cases content passed through tpl. See values.yaml for an example of the formatting (passed through tpl) | {}
|
| luceniaJavaOpts
| Java options for Lucenia. This is where you should configure the jvm heap size | -Xmx1g -Xms1g
|
| majorVersion
| Used to set major version specific configuration. If you are using a custom image and not running the default Lucenia version you will need to set this to the version you are running (e.g. majorVersion: 1
). If not set, majorVersion
defaults to imageTag
, then .Chart.AppVersion
. | ""
|
| global.dockerRegistry
| Used to set the default docker registry; for example, a private registry. | ""
|
| extraContainers
| Array of extra containers to add to the Lucenia StatefulSet. | ""
|
| extraEnvs
| Extra environment variables to be set for the nodeGroup
. If demo config install is enabled, LUCENIA_INITIAL_ADMIN_PASSWORD
must be set to a custom strong password. | []
|
| extraInitContainers
| Array of extra init containers to add to the Lucenia StatefulSet. | []
|
| extraVolumeMounts
| Array of extra volume mounts to add to the Lucenia StatefulSet. | []
|
| extraVolumes
| Array of extra volumes to be added to the Lucenia StatefulSet. | []
|
| fullnameOverride
| Overrides the clusterName
and nodeGroup
when used in the naming of resources. This should only be used when using a single nodeGroup
, otherwise you will have name conflicts | ""
|
| hostAliases
| Configurable hostAliases allows the ability to add entries to a Pod’s /etc/hosts file. This provides Pod-level override of hostname resolution when DNS and other options are not applicable.[] | []
|
| httpHostPort
| Expose another http-port as hostPort. Refer to documentation for more information and requirements about using hostPorts. | ""
|
| httpPort
| The http port that Kubernetes will use for the healthchecks and the service. If you change this you will also need to set http.port
in extraEnvs
| 9200
|
| image.pullPolicy
| The Kubernetes [imagePullPolicy][] value | IfNotPresent
|
| imagePullSecrets
| Configuration for imagePullSecrets so that you can use a private registry for your image | []
|
| image.tag
| The Lucenia Docker image tag | 1.0.0
|
| image.repository
| The Lucenia Docker image | registry.digitalocean.com/lucenia/lucenia
|
| ingress
| Configurable ingress to expose the Lucenia service. See values.yaml for an example | see values.yaml |
| initResources
| Allows you to set the resources for the initContainer
in the StatefulSet | {}
|
| keystore
| Allows you map Kubernetes secrets into the keystore. | []
|
| labels
| Configurable labels applied to all Lucenia pods | {}
|
| managerService
| The service name used to connect to the managers. You only need to set this if your manager nodeGroup
is set to something other than manager
| ""
|
| maxUnavailable
| The maxUnavailable value for the pod disruption budget. By default this will prevent Kubernetes from having more than 1 unhealthy pod in the node group | 1
|
| metricsPort
| The metrics port (for Performance Analyzer) that Kubernetes will use for the service. | 9600
|
| nameOverride
| Overrides the clusterName
when used in the naming of resources | ""
|
| networkHost
| Value for the network.host
configuration setting |
0.0.0.0 |
|
networkPolicy.create | Enable network policy creation for Lucenia |
false |
|
nodeAffinity | Value for the [node affinity settings][] |
{} |
|
nodeGroup | The name used for each group of nodes in the cluster. The name will be
clusterName-nodeGroup-X, or if a
nameOverride is specified the name will be
nameOverride-nodeGroup-X, or if
fullnameOverride is specified the name will be
fullnameOverride-X |
manager |
|
nodeSelector | Configurable [nodeSelector][] so that you can target specific nodes for your Lucenia cluster |
{} |
|
persistence | Enables a persistent volume for Lucenia data. | see [values.yaml][] |
|
persistence.enableInitChown | Disable the
fsgroup-volume initContainer that will update permissions on the persistent disk. |
true |
|
podAffinity | Value for the [pod affinity settings][] |
{} |
|
podAnnotations | Configurable [annotations][] applied to all Lucenia pods |
{} |
|
podManagementPolicy | By default Kubernetes [deploys StatefulSets serially][]. This deploys them in parallel so that they can discover each other |
Parallel |
|
podSecurityContext | Allows you to set the [securityContext][] for the pod | see [values.yaml][] |
|
podSecurityPolicy | Configuration for creating a pod security policy with minimal permissions to run this Helm chart with
create: true. Also can be used to reference an external pod security policy with
name: “externalPodSecurityPolicy” | see [values.yaml][] |
|
priorityClassName | The name of the [PriorityClass][]. No default is supplied as the PriorityClass must be created first |
”” |
|
rbac.create | Set to true to create a Role, RoleBinding and ServiceAccount. |
false |
|
rbac.serviceAccountAnnotations | Set annotations for the ServiceAccount. |
{} |
|
rbac.serviceAccountName | Override the name used for the ServiceAccount; leaving the default value
””, allows the chart to define the ServiceAccount name. |
”” |
|
rbac.automountServiceAccountToken | Controls whether a service account token should be automatically mounted to the Lucenia StatefulSet Pods. |
true |
|
replicas | Kubernetes replica count for the StatefulSet (i.e. how many pods) |
3 |
|
resources | Allows you to set the [resources][] for the StatefulSet | see [values.yaml][] |
|
roles | A list of the specific node [roles][] for the
nodeGroup | see [values.yaml][] |
|
singleNode | If
discovery.type in the lucenia configuration is set to
“single-node”, this should be set to
true. If
true, replicas will be forced to
1; if false, replicas will be set to
replicaCount. |
false |
|
schedulerName | Name of the [alternate scheduler][] |
”” |
|
secretMounts | Allows mounting a secret as a file inside the StatefulSet. Useful for mounting certificates and other secrets. See [values.yaml][] for an example |
[] |
|
securityConfig | Configure the Lucenia security plugin. There are multiple ways to inject configuration into the chart, see [values.yaml][] details. | By default an insecure demonstration configuration is set. This **must** be changed before going to production. |
|
securityContext | Allows you to set the [securityContext][] for the container | see [values.yaml][] |
|
service.annotations | [LoadBalancer annotations][] that Kubernetes will use for the service. This will configure load balancer if
service.type is
LoadBalancer |
{} |
|
service.headless.annotations | Allow you to set annotations on the headless service |
{} |
|
service.externalTrafficPolicy | Some cloud providers allow you to specify the [LoadBalancer externalTrafficPolicy][]. Kubernetes will use this to preserve the client source IP. This will configure load balancer if
service.type is
LoadBalancer |
”” |
|
service.httpPortName | The name of the http port within the service |
http |
|
service.labelsHeadless | Labels to be added to headless service |
{} |
|
service.labels | Labels to be added to non-headless service |
{} |
|
service.loadBalancerIP | Some cloud providers allow you to specify the [loadBalancer][] IP. If the
loadBalancerIP field is not specified, the IP is dynamically assigned. If you specify a
loadBalancerIP but your cloud provider does not support the feature, it is ignored. |
”” |
|
service.loadBalancerSourceRanges | The IP ranges that are allowed to access |
[] |
|
service.metricsPortName | The name of the metrics port (for Performance Analyzer) within the service |
metrics |
|
service.nodePort | Custom [nodePort][] port that can be set if you are using
service.type: nodePort |
”” |
|
service.transportPortName | The name of the transport port within the service |
transport |
|
service.type | Lucenia [Service Types][] |
ClusterIP |
|
service.ipFamilyPolicy | This sets the preferred ip addresses in case of a dual-stack server, there are three options [PreferDualStack, SingleStack, RequireDualStack], [more information on dual stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/) |
”” |
|
service.ipFamilies | Sets the preferred IP variants and in which order they are preferred, the first family you list is used for the legacy .spec.ClusterIP field, [more information on dual stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/) |
”” |
|
sidecarResources | Allows you to set the [resources][] for the sidecar containers in the StatefulSet | {} |
|
sysctlInit | Allows you to enable the
sysctlInit to set sysctl vm.max_map_count through privileged
initContainer. |
enabled: false |
|
sysctlVmMaxMapCount | Sets the [vm.max_map_count][] needed for Lucenia |
262144 |
|
ulimitInit | Allows you to enable the
ulimitInit to set file descriptor ulimit through privileged
initContainer. |
enabled: false |
|
ulimitCount | Sets the file descriptor [ulimit][] needed for Lucenia |
65536 |
|
terminationGracePeriod | The [terminationGracePeriod][] in seconds used when trying to stop the pod |
120 |
|
tolerations | Configurable [tolerations][] |
[] |
|
topologySpreadConstraints | Configuration for pod [topologySpreadConstraints][] |
[] |
|
transportHostPort | Expose another transport port as hostPort. Refer to documentation for more information and requirements about using hostPorts. |
”” |
|
transportPort | The transport port that Kubernetes will use for the service. If you change this you will also need to set transport port configuration in
extraEnvs |
9300 |
|
updateStrategy | The [updateStrategy][] for the StatefulSet. By default Kubernetes will wait for the cluster to be green after upgrading each pod. Setting this to
OnDelete will allow you to manually delete each pod during upgrades |
RollingUpdate |
|
volumeClaimTemplate | Configuration for the [volumeClaimTemplate for StatefulSets][]. You will want to adjust the storage (default
30Gi ) and the
storageClassName if you are using a different storage class | see [values.yaml][] |
|
extraObjects | Array of extra K8s manifests to deploy | list
[] |
|
livenessProbe | Configuration fields for the liveness [probe][] | see [exampleLiveness][] in
values.yaml |
|
readinessProbe | Configuration fields for the readiness [probe][] | see [exampleReadiness][] in
values.yaml |
|
startupProbe | Configuration fields for the startup [probe][] | see [exampleStartup][] in
values.yaml |
|
plugins.enabled | Allow/disallow to add 3rd Party / Custom plugins not offered in the default Lucenia image | false |
|
plugins.installList | Array containing the Lucenia plugins to be installed in container | \[] |
|
luceniaLifecycle | Allows you to configure lifecycle hooks for the Lucenia container in the StatefulSet | {} |
|
lifecycle | Allows you to configure lifecycle hooks for the Lucenia container in the StatefulSet | {} |
|
luceniaAnnotations | Allows you to configure custom annotations in the StatefulSet of the Lucenia container | {} |
|
luceniaHome | Defines the home directory for the Lucenia cluster. Allows config files to be added to the location of
/config directory in
luceniaHome; see
config for details. |
/usr/share/lucenia` |