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:
vsstackVersion:
- Stack Claims uses multiple levels in the variables.
Module Claim
Below is an example of a claim of an S3Bucket
module
apiVersion: infraweave.io/v1kind: S3Bucketmetadata: name: my-s3-bucket namespace: defaultspec: 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
apiVersion: infraweave.io/v1kind: SimpleKubernetesSetupmetadata: name: my-cluster namespace: defaultspec: 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
apiVersion: infraweave.io/v1kind: S3Bucketmetadata: name: my-s3-bucketspec: ... 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 beinfraweave.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
-
-