Kubernetes Helm Charts for GatewayD

November 23, 2024 ยท View on GitHub

This Helm charts installs GatewayD on your Kubernetes cluster.

How to use the charts

  1. Clone this repository
  2. Install the chart
  3. (Optionally) Uninstall the chart
git clone https://github.com/gatewayd-io/helm-charts.git
cd helm-charts/charts/gatewayd/
helm install gatewayd-release -f values.yaml ./
# Optionally, if you want to remove GatewayD from your cluster
# helm uninstall gatewayd-release

Configurations

Deployment Configuration

ParameterDescriptionDefault Value
autoscaling.enabledDetermines whether autoscaling is enabled for the deployment. If not enabled, the replicaCount value is used to set the number of replicas.false
replicaCountThe number of replicas to create for the deployment1
podAnnotationsAnnotations to add to the pod{}
podLabelsLabels to add to the pod{}
imagePullSecretsImage pull secrets for the Docker registry[]
serviceAccountNameThe name of the service account to use for the deployment""
podSecurityContextSecurity context for the pod{}
securityContextSecurity context for the container{}
image.repositoryThe Docker image repositorygatewaydio/gatewayd
image.tagThe Docker image tag. If not set, the app version from the chart is used""
image.pullPolicyThe image pull policyIfNotPresent
resourcesResource requests and limits for the container{"limits":{"cpu":"100m","memory":"128Mi"},"requests":{"cpu":"100m","memory":"128Mi"}}
gatewaydPluginsConfig.enabledDetermines whether the gatewayd_plugins.yaml ConfigMap is mounted to the container. If enabled, a volume and volumeMount are added to the deployment.false
gatewaydConfig.enabledDetermines whether the gatewayd.yaml ConfigMap is mounted to the container. If enabled, a volume and volumeMount are added to the deployment.false
nodeSelectorNode selector for the pod{}
affinityAffinity for the pod{}
tolerationsTolerations for the pod[]

Service Configuration

ParameterDescriptionDefault Value
service.portThe port that the service listens on15432
ingress.enabledDetermines whether an Ingress resource should be createdfalse

Ingress Configuration

ParameterDescriptionDefault Value
gatewayd.fullnameThe full name of the deployment, used as part of the Ingress resource name
service.portThe port that the service listens on, used as the service port in the Ingress rules
ingress.classNameThe Ingress class to assign to the Ingress resource. This is only used for Kubernetes versions less than 1.18.
ingress.annotationsAnnotations to add to the Ingress resource. If ingress.className is set and the Kubernetes version is less than 1.18, the kubernetes.io/ingress.class annotation is added with the value of ingress.className.{}
Capabilities.KubeVersion.GitVersionThe Kubernetes version running in the cluster. This is used to determine the API version of the Ingress resource to create.

Autoscaling Configuration

ParameterDescriptionDefault Value
gatewayd.fullnameThe full name of the deployment, used as the target of the Horizontal Pod Autoscaler.
autoscaling.minReplicasThe minimum number of replicas that the Horizontal Pod Autoscaler should maintain
autoscaling.maxReplicasThe maximum number of replicas that the Horizontal Pod Autoscaler can scale out to
autoscaling.targetCPUUtilizationPercentageThe target percentage of CPU utilization across all replicas that the Horizontal Pod Autoscaler should maintain. If set, a CPU utilization metric is added to the Horizontal Pod Autoscaler.
autoscaling.targetMemoryUtilizationPercentageThe target percentage of memory utilization across all replicas that the Horizontal Pod Autoscaler should maintain. If set, a memory utilization metric is added to the Horizontal Pod Autoscaler.

Service Account Configuration

ParameterDescriptionDefault Value
serviceAccount.createDetermines whether a ServiceAccount should be created
gatewayd.serviceAccountNameThe name of the ServiceAccount. This is used as the name of the ServiceAccount resource.
gatewayd.labelsThe labels to apply to the ServiceAccount.
serviceAccount.annotationsAnnotations to add to the ServiceAccount.
serviceAccount.automountDetermines whether the ServiceAccount token should be automatically mounted to the pods. This is set as the automountServiceAccountToken field in the ServiceAccount resource.

Pod Disruption Budgets Configuration

ParameterDescriptionDefault Value
podDisruptionBudget.minAvailableSpecifies the minimum number of pods from the set that must still be available after the eviction, even in the absence of the evicted pod.1
podDisruptionBudget.maxUnavailableSpecifies the maximum number of pods from the set that can be unavailable after the eviction. It can be either an absolute number or a percentage.

ConfigMap Configuration

ParameterDescriptionDefault Value
gatewayd.fullnameThe full name of the deployment, used as the name of the ConfigMap.
.Release.NameThe release name, used as part of the ConfigMap name.
files/gatewayd_plugins.yamlThe content of the gatewayd_plugins.yaml file. This is set as the gatewayd_plugins.yaml data in the ConfigMap.
files/gatewayd.yamlThe content of the gatewayd.yaml file. This is set as the gatewayd.yaml data in the ConfigMap.

Usage

Modify the values.yaml file to customize the deployment according to your requirements. You can override any default values as needed. Please refer to GatewayD documentation for more information.

Contributing

We welcome contributions from everyone. Just open an issue or send us a pull request.

License

GatewayD Helm Charts is licensed under the Apache 2.0 License.