Skip to content

Architectural Overview

See below diagram with an architectural overview of CloudKnit.

Architectural Overview

Environment Definition

It allows you to define entire Environment. We currently support easy to use YAML format for the environment definition.

See example below:

Environment Definition
apiVersion: stable.cloudknit.com/v1
kind: Environment
metadata:
  name: zmart-payment-prod-blue
  namespace: zmart-config
spec:
  teamName: payment
  envName: prod-blue
  components:
    - name: networking
      type: terraform
      autoApprove: true
      module:
        source: git@github.com:terraform-aws-modules/terraform-aws-vpc.git
      variablesFile:
        path: "prod-blue/vars/networking.tfvars"
      outputs:
        - name: vpc_id
    - name: platform-eks
      type: terraform
      dependsOn: [networking]
      module:
        source: git@github.com:terraform-aws-modules/terraform-aws-eks.git
      variables:
        - name: vpc_id
          valueFrom: networking.vpc_id
      variablesFile:
        path: "prod-blue/vars/platform-eks.tfvars"
    - name: website
      type: helm #Native support for helm chart coming soon
      dependsOn: [platform-eks]
      source:
        repo: git@github.com:helm/examples.git
        path: charts/hello-world
      variables:
        - name: environment
          value: prod-blue

Intermediate Language

Intermediate Language consists of code generated by k8s operator based on the Environment Definition. Generated code consists of ArgoCD, Argo Workflow & Terraform/Helm code.

ArgoCD

ArgoCD is used to watch Environment Definition & Intermediate Language Github repositories.

Argo Workflow

Argo Workflow is used to run each component of the environment in the correct order and provides features like manual approval/cost estimates etc.