Skip to main content
Version: 0.5 (Next)

Default Pipeline Template

FieldValue
Repository URLhttps://github.com/konstructio/konstruct-templates
Pathtemplates/workflows
Branchmain

The default pipeline template provides two GitHub Actions workflows for building, publishing, and deploying applications.

Overview

push to main


┌──────────┐ ┌─────────────────────┐
│ publish │────▶│ deploy (manual) │
│ │ │ pick an environment │
│ • build │ │ • dispatches gitops │
│ • tag │ │ • targets clusters │
│ • push │ └─────────────────────┘
└──────────┘

Every commit to main builds a container and publishes a Helm chart. Deployments are triggered manually by running the deploy workflow and selecting an environment.

Workflows

publish.yaml

Triggers on push to main or manual dispatch.

  1. Checks out the repository
  2. Builds a Docker image tagged with the short commit SHA
  3. Pushes the image to AWS ECR
  4. Updates Chart.yaml with an RC version ({base}-rc.{sha}) and the SHA as appVersion
  5. Packages and pushes the Helm chart to ECR as an OCI artifact
  6. Writes a summary with the published image and chart references

Artifacts produced:

  • Container image: {ecr-registry}/{org}/{repo}:{sha}
  • Helm chart: {chart-name}-{version}-rc.{sha} in oci://{ecr-registry}/{org}/charts

deploy.yaml

Triggered manually via workflow_dispatch with three inputs:

InputDescription
environmentTarget environment (dropdown populated from your environment list)
app_versionChart version to deploy
app_nameApplication name (defaults to your app)
  1. Generates a GitHub App token with access to the GitOps repository
  2. Dispatches the update-environment.yaml workflow in the GitOps repository
  3. The GitOps workflow updates targetRevision in Argo CD Application manifests for all clusters in the environment

How Deployment Works

The deploy workflow does not apply Kubernetes manifests directly. It updates the GitOps repository, and Argo CD handles the actual deployment:

deploy workflow

▼ (dispatch)
GitOps repository: update-environment.yaml

▼ (commit)
registry/environments/{env}/{cluster}/{app}.yaml
│ targetRevision: {new-version}

▼ (sync)
Argo CD deploys to cluster

Prerequisites

  • AWS IAM OIDC: Trust policy for repo:{org}/{repo}:ref:refs/heads/main
  • ECR repositories: For container images and Helm charts
  • GitHub App: With access to both the app repository and GitOps repository (secrets: APP_ID, APP_PRIVATE_KEY)
  • GitOps repository: With update-environment.yaml workflow and Argo CD Application manifests

Helm Chart Structure

Konstruct generates a chart at charts/{org}/{repo}/ with:

  • Standard deployment, service, ingress, HPA, and service account templates
  • CHART_VERSION and IMAGE environment variables injected into the container for runtime version visibility
  • Values for probes, resources, auto-scaling, and security contexts

When to Use This Template

The default template works well for:

  • Applications with simple deployment needs
  • Teams that want full control over when each environment is updated
  • Projects where environment count and names vary per organization
  • Getting started quickly — two workflows cover the full lifecycle