Files
invoiceninja-docker/chart/invoiceninja/README.md
2021-03-24 10:08:17 +08:00

15 KiB

Invoiceninja

This helm chart installs a Invoiceninja and its dependencies into a running Kubernetes cluster.

The chart installs the Invoiceninja docker image.

Please read Upgrading section before upgrading MAJOR versions.

Dependencies

  • The Bitnami common helm chart
  • The Bitnami mariadb helm chart
  • The Bitnami nginx helm chart
  • Tested on Kubernetes 1.17+

Installing the Chart

To install the chart with the release name invoiceninja:

helm repo add invoiceninja https://invoiceninja.github.io/dockerfiles
helm install invoiceninja invoiceninja/invoiceninja

The command deploys Invoiceninja on the Kubernetes cluster in the default namespace. The Parameters section lists the parameters that can be configured during installation.

Tip

: List all releases using helm list

Uninstalling the Chart

To uninstall/delete the invoiceninja deployment:

helm delete invoiceninja

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

Parameters

The following table lists the configurable parameters of the Invoiceninja chart and their default values.

Global Configuration

The following table shows the configuration options for the Invoiceninja helm chart:

Global parameters

Parameter Description Default
global.imageRegistry Global Docker image registry nil
global.imagePullSecrets Global Docker registry secret names as an array [] (does not add image pull secrets to deployed pods)
global.storageClass Global storage class for dynamic provisioning nil

Common parameters

Parameter Description Default
nameOverride String to partially override common.names.fullname nil
fullnameOverride String to fully override common.names.fullname nil
clusterDomain Default Kubernetes cluster domain cluster.local
commonLabels Labels to add to all deployed objects {}
commonAnnotations Annotations to add to all deployed objects {}
kubeVersion Force target Kubernetes version (using Helm capabilities if not set) nil
extraDeploy Array of extra objects to deploy with the release [] (evaluated as a template)

Invoiceninja parameters

Parameter Description Default
image.registry Invoiceninja image registry docker.io
image.repository Invoiceninja image name invoiceninja/invoiceninja
image.tag Invoiceninja image tag Check values.yaml file
image.pullPolicy Invoiceninja image pull policy IfNotPresent
image.pullSecrets Specify docker-registry secret names as an array [] (does not add image pull secrets to deployed pods)
image.debug Specify if debug logs should be enabled false
serviceAccountName Name of a service account for the Invoiceninja pods default
debug Turn on debug mode on Invoiceninja false
appKey Laravel Application Key random 32 character alphanumeric string
extraEnvVars Extra environment variables to be set on Invoiceninja container {}
extraEnvVarsCM Name of existing ConfigMap containing extra env vars nil
extraEnvVarsSecret Name of existing Secret containing extra env vars nil

Invoiceninja deployment parameters

Parameter Description Default
replicaCount Number of Invoiceninja Pods to run 1
containerPorts.fastcgi FastCGI port to expose at container level 9000
podSecurityContext Invoiceninja pods' Security Context Check values.yaml file
containerSecurityContext Invoiceninja containers' Security Context Check values.yaml file
resources The resources for the Invoiceninja container {}
livenessProbe Liveness probe configuration for Invoiceninja Check values.yaml file
readinessProbe Readiness probe configuration for Invoiceninja Check values.yaml file
updateStrategy Set up update strategy RollingUpdate
podAntiAffinityPreset Pod anti-affinity preset. Ignored if affinity is set. Allowed values: soft or hard soft
nodeAffinityPreset.type Node affinity preset type. Ignored if affinity is set. Allowed values: soft or hard ""
nodeAffinityPreset.key Node label key to match. Ignored if affinity is set. ""
nodeAffinityPreset.values Node label values to match. Ignored if affinity is set. []
affinity Affinity for pod assignment {} (evaluated as a template)
nodeSelector Node labels for pod assignment {} (evaluated as a template)
tolerations Tolerations for pod assignment [] (evaluated as a template)
podLabels Extra labels for Invoiceninja pods {}
podAnnotations Annotations for Invoiceninja pods {}
extraVolumeMounts Additional volume mounts []
extraVolumes Additional volumes []

Exposure parameters

Parameter Description Default
service.type Kubernetes Service type ClusterIP
service.port Service FastCGI port 9000
service.nodePort Kubernetes FastCGI node port ""
service.clusterIP Invoiceninja service clusterIP IP None
service.loadBalancerSourceRanges Restricts access for LoadBalancer (only with service.type: LoadBalancer) []
service.loadBalancerIP loadBalancerIP if service type is LoadBalancer nil
service.externalTrafficPolicy Enable client source IP preservation Cluster
service.annotations Service annotations {} (evaluated as a template)

Ingress parameters

Parameter Description Default
nginx.service.type Kubernetes Service type ClusterIP
nginx.ingress.enabled Enable ingress controller resource true
nginx.ingress.hostname Default host for the ingress resource invoiceninja.local
nginx.serverBlock Custom NGINX server block nil
nginx.extraVolumes Array to add extra volumes Check values.yaml file
nginx.extraVolumes[0].persistentVolumeClaim.claimName Name of Invoiceninja public PVC invoiceninja-public
nginx.extraVolumeMounts Array to add extra mount Check values.yaml file

See Dependencies for more.

Persistence parameters

Parameter Description Default
persistence.public.enabled Enable persistence using PVC true
persistence.public.existingClaim Enable persistence using an existing PVC nil
persistence.public.storageClass PVC Storage Class nil
persistence.public.accessModes PVC Access Modes [ReadWriteMany]
persistence.public.size PVC Storage Request 1Gi
persistence.public.dataSource PVC data source {}
persistence.storage.enabled Enable persistence using PVC true
persistence.storage.existingClaim Enable persistence using an existing PVC nil
persistence.storage.storageClass PVC Storage Class nil
persistence.storage.accessModes PVC Access Modes [ReadWriteMany]
persistence.storage.size PVC Storage Request 5Gi
persistence.storage.dataSource PVC data source {}

Database parameters

Parameter Description Default
mariadb.enabled Deploy MariaDB container(s) true
mariadb.auth.rootPassword Password for the MariaDB root user random 10 character alphanumeric string
mariadb.auth.database Database name to create invoiceninja
mariadb.auth.username Database user to create invoiceninja
mariadb.auth.password Password for the database random 10 character alphanumeric string

See Dependencies for more.

Other parameters

Parameter Description Default
autoscaling.enabled Enable autoscaling for Invoiceninja false
autoscaling.minReplicas Minimum number of Invoiceninja replicas 1
autoscaling.maxReplicas Maximum number of Invoiceninja replicas 11
autoscaling.targetCPU Target CPU utilization percentage nil
autoscaling.targetMemory Target Memory utilization percentage nil

Installing with Arguments

Specify each parameter using the --set key=value[,key=value] argument to helm install. For example,

helm install invoiceninja \
--set replicaCount=3,livenessProbe.initialDelaySeconds=90 \
  invoiceninja/invoiceninja

The above command sets the number of replicas to 4, and the liveness probe delay to 90 seconds.

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

helm install invoiceninja -f values.yaml invoiceninja/invoiceninja

Upgrading

Nothing yet.