Skip to content

Deployment Overview

A deployment is the term referred to as an instantiation of a Module or Stack. There are only two differences between these:

  • Version specification: moduleVersion: vs stackVersion:
  • Stack Claims uses multiple levels in the variables.

Module Claim

Below is an example of a claim of an S3Bucket module

manifests/claims/s3bucket.yaml
apiVersion: infraweave.io/v1
kind: S3Bucket
metadata:
name: my-s3-bucket
namespace: default
spec:
moduleVersion: 0.0.11 # The released version to use, must match the version in the module.yaml
region: us-west-2
variables:
bucketName: my-unique-bucket-name-32142j
tags:
Name234: my-s3bucket
Environment43: dev

Stack Claim

Here is an example of a SimpleKubernetesSetup stack, which under the hood uses multiple modules, which have their own variable level. Other than that it matches a module claim

manifests/claims/s3bucket.yaml
apiVersion: infraweave.io/v1
kind: SimpleKubernetesSetup
metadata:
name: my-cluster
namespace: default
spec:
stackVersion: 0.2.7 # The released version to use, must match the version in the stack.yaml
region: us-west-2
variables:
eks:
clusterName: cluster123
minNodes: 2
maxNodes: 4
vpc:
name: testvpc
subnetSize: 24

Drift detection

It is possible to automatically detect drift

manifests/claims/s3bucket.yaml
apiVersion: infraweave.io/v1
kind: S3Bucket
metadata:
name: my-s3-bucket
spec:
...
driftDetection:
enabled: true
interval: 10m
autoRemediate: true

You can read more about it here

Input Validation

InfraWeave validates input before applying infrastructure changes, significantly reducing feedback time and preventing common configuration errors.

Here are some typical issues it helps catch early:

  • Non-existing module-/stack-version
  • Misspelled parameters
  • Usage of deprecated parameters in newer versions
  • Missing newly required parameters
  • Incorrect data types

By detecting these issues upfront, InfraWeave ensures a smoother developer experience.

Template Specification

Below is the specification for the deployment.

  • apiVersion Should always be infraweave.io/v1.

  • kind - Should be your module or stack name, e.g. S3Bucket.

  • metadata

    • name: [Required] The name of the deployment.

    • namespace: [Optional] The namespace to use for the deployment.

  • spec

    • moduleVersion: [Required] The version of the module you want to use or

    • stackVersion: [Required] The version of the stack you want to use

    • region: [Required] The region you want to deploy to

    • variables: [Required] The variables to use when deploying the module.

    • reference: [Optional] A link to the source code (location of this file)

    • driftDetection: [Optional]

      • interval: [Required] Interval how often to check, e.g. “30m”, “2h”, “1d”

      • enabled: [Optional] Toggle for enabling/disabling it, e.g. “true”, default is “false”

      • autoRemediate: [Optional] Toggle for enabling/disabling auto-remediation, default is “false”

      • webhooks: [Optional] List of webhook-urls to post information to