Plugin support in Stitch

In order for Deploy to apply any Stitch transformation, the plugin needs to have a support for Stitch since it controls the content in it. More information on the how to add Stitch support to plugin can be found here.

The plugins that currently support Stitch are

  1. xld-kubernetes-plugin k8s.ResourcesFile
  2. xld-openshift-plugin openshift.ResourcesFile openshift.TemplateResourcesFile
  3. xld-aws-plugin aws.cloudformation.Template
  4. xld-terraform-plugin terraform.Module
  5. xld-azure-plugin azure.arm.Template

For both xld-kubernetes-plugin and xld-openshift-plugin plugins, transformation on all deployeds that are extend from the type k8s.AbstractResources, will happen in three phases. First Stitch preprocessing transformation will be applied to an array of all resource files from the deployed, which can add additional resources and then in the second phase, the regular Stitch transformation will be applied, which will transform all the resource files and additional files generated in the preprocessing transformation from the deployed and in the end Stitch postprocessing transformation will be applied to an array of all transformed resource files.

For the xld-aws-plugin plugin, the Stitch transformation will be applied to all deployeds that are extend from the type aws.cloudformation.DeployedTemplate, which will transform all the resource files from the deployed.

For the xld-terraform-plugin plugin, the Stitch transformation will be applied to all deployeds that extend from the type terraform.ExecutedModule, which will transform all the json resource files from the deployed.

For xld-azure-plugin plugin, stitch transformation will be applied to all deployeds that are extend from the type azure.arm.template, which will transform all the resource files from the deployed.

Note: Stitch transformations on fields with custom YAML type tags are supported from version 9.8.1.

For example in the AWS Cloudformation YAMLs, if you used:

BucketName: !Sub "${BucketName}-logs"

the field value will be transformed to

BucketName: !Sub '${BucketName}-logs'