Skip to main content

Helm Charts

Helm charts are packages of pre-configured Kubernetes resources that simplify the deployment and management of applications. Use this type if the Helm repository is public and accessible.

name: "nginx-service"
profileName: "default-profile"
namespace: "nginx"
source:
type: "helm"
helm:
repo:
repoURL: "https://kubernetes.github.io/ingress-nginx"
chartVersion: "4.10.1"
chartName: "ingress-nginx"
values:
type: object
object:
controller:
watchNamespace: ""
service:
annotations:
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
service.beta.kubernetes.io/aws-load-balancer-type: nlb

Manifest

The provided above YAML snippet is a manifest for deploying publicly available Helm charts.

  • name: The name of the application.
  • profileName: The profile used for the application.
  • namespace: The name of the namespace where the application will be deployed. This field is optional and may be required based on the application's network configuration.
  • source:
    • type: The source type, which is "helm".
    • helm: Specifies the Helm chart details.
      • repo: Repository details for the Helm chart.
        • chartName: The name of the chart (e.g., "nginx").
        • chartVersion: The version of the chart (e.g., "1.2.3").
        • releaseName: The release name for the Helm deployment.
        • repoURL: The URL of the Helm repository.
      • values: Specifies values for the Helm chart to override
        • object: Additional value overrides takes the yaml blob. Always check the helm values.yaml to figure out what to override
        • type: The type of values provided. The value is object

Deploy

To deploy this YAML manifest using the astroctl command-line tool, follow these steps:

Save the YAML manifest to a file, for example, application.yaml. Use the following command to apply the manifest:

astroctl apply -f application.yaml

Validate

The platform provides standard debugging subcommands part of the astroctl.

  1. Access the cluster directly and perform the necessary validations via kubectl command

    How to get the kubeconfig of the remote cluster? - Follow Cluster Context

  2. Run the following commands:
Status
astroctl app status nginx-service

Events,CD: If availabile

astroctl app events nginx-service

Events,K8s: If availabile

astroctl app events nginx-service -k 

Logs: This will provide logs of all the pods running

astroctl app logs nginx-service -ojson

For more, please check the Application subcommand part of the CLI

Upgrade

Upgrading an application deployed with Helm charts typically involves updating the chart version or the value overrides used via object type. This could mean changing configurations, updating image tags within the chart, or using a newer version of the chart itself. Refer to the specific Helm chart documentation for details on what configuration triggers the update. Use the deploy command to apply the changes and update the application with the new chart version.

Rolling Application Updates

In this mode, the application rolling updates are dictated solely by the manifest files. The platform has no control over this process.