Helm Charts
Deploying Helm Charts in DuploCloud
Introduction
Helm Charts are packages of pre-configured Kubernetes resources that help you define, install, and upgrade Kubernetes applications. You can integrate Helm Charts with DuploCloud to deploy applications onto the Kubernetes clusters you've created in DuploCloud.
Deploying Helm Charts
Step 1. Prepare Your Environment:
Ensure you have a Kubernetes cluster set up in DuploCloud.
Install Helm on your local machine or a machine with access to your Kubernetes cluster.
Step 2. Choose or Create Helm Charts:
Identify the Helm charts you want to use for deploying your applications or services. You can use community-maintained charts from public repositories like Helm Hub, or you can create your own custom charts tailored to your specific needs.
Step 3. Customize Helm Charts:
Modify the values.yaml file or create custom templates as necessary. This might involve configuring resource limits, environment variables, or other settings specific to your deployment.
The following YAML is an example of a values file modified to deploy using the API key: DUPLO_API_SECRET, on the cluster: DUPLO_CLUSTER cluster, in the awsprod environment:
You can also modify Helm Chart values using the node selector. This is the most common method. For example, to deploy a chart into the duploservices-mytenant Tenant using the node selector, give:
To specify which hosts the chart should run on using the node selector with allocation tags, give:
Step 4. Add Helm Repositories (if using external charts):
If you're using Helm charts from external repositories, add the repositories to your Helm configuration using the helm repo add command:
helm repo add
REPOSITORY_NAME REPOSITORY_URL
Step 5. Update Helm Repositories:
Update your Helm repositories to ensure you have the latest versions of the charts available locally using the helm repo update command:
helm repo update
Step 6. Deploy Helm Charts:
Use the helm install command to deploy the Helm charts onto your Kubernetes cluster. Specify the release name, chart name, and any additional configuration values as needed.
helm install
[RELEASE_NAME] [CHART] [FLAGS]
Step 7. Monitor Deployments:
Monitor the status of your deployments in DuploCloud by navigating to the Services page. Services deployed via Helm Chart are displayed in the Services list in read-only mode. Although you can't make changes to a Helm Service in DuploCloud, you can view the Service details to verify that it has deployed successfully and is running as expected.
Helm Chart Best Practices
Namespaces
Give your Helm Chart a duploservices-tenant namespace to deploy into. If you create your own namespace, you will have to manage those resources outside of DuploCloud. It may be helpful to create a single-purpose Tenant to use with your chart or use allocation tags to assign different node types to your chart's Pods.
Customizing values
The node selector is the most common method for customizing Helm Chart values. For an example of using the node selector to modify chart values, see the syntax above under Step 3.
If the chart you are deploying has interactions with Kubernetes resources (Pods, jobs, etc.) ServiceAccounts may be needed. Generally, the default ServiceAccounts chart configuration is sufficient.
When creating a Load Balancer in DuploCloud, ensure that the Helm Chart is not creating a Kubernetes Service with the same name as the deployment. This can cause a naming conflict since DuploCloud needs to manage the Kubernetes Service for the Load Balancer to work.
Viewing Helm deployments in the DuploCloud portal
DuploCloud Helm Chart deployments are displayed in the list of Services, in read-only mode. You can attach a Load Balancer to the Service via the Service details page Load Balancer tab, but you cannot update the Service (e.g., change the replica count or image) from within the DuploCloud UI. Those changes must be done through Helm.
Creating a Load Balancer in DuploCloud: do I need Ingress?
Yes. Refer to this document to create an Ingress. Note the generated Ingress class. Refer to the Helm documentation, for information about how to enable Ingress and add a class for the Ingress.
For EKS, refer to the EKS Ingress Annotations document for information on customizing annotations to your specific needs.
Last updated