5.7 KiB



  • Optionally skip all sops operations when DISABLE_SOPS environment variable it set


  • First official release supporting for Pulumi stacks
  • Dockerfile and Alpine based public images provided incl. Pulumi binaries and podman for docker tasks


  • Add workaround for inconsistent AWS API S3 GetBucketLocation
  • validate now exits with non-zero exit code if valiation of any template failed
  • the embedded md5 hash in templates are now verified reading the template


  • Remove support for FortyTwo legacy mode as AWS now behaves as it should
  • Add support for embedded custom output yaml format and removed hardcoded kubezero output template


  • CloudBender now requires Python >= 3.7
  • drop oyaml requirement
  • support for short intrinsic functions like !Ref, !Sub etc. by ignoring custom constructors before sending them to AWS to resolve


  • only upload templates if render is successful
  • support for jinja user-data
  • tweak for kubezero output template


New Features

Support for uploading and retrieving rendered templates from S3!

Enabled by setting template_bucket_url to a valid S3 location: s3://<bucket_name>[/<prefix>]
Templates will still be stored and updated in the local file system to allow tracking via git.


  • new option to generate Dot Graph files via --graph option for the create-docs command
  • fix validate command using latest cfn-lint library


  • Improved bash minify for user-data
  • Unused additional parameters are now printed as a warning to catch potential typos early


  • Bug fix release only


  • Added explicitly set parameter values to the create-doc markdown to get complete stack picture


New Features:

  • Hooks can now be defined as artifact metadata and are executed at the specified step.
    Current supported hook entrypoints are: pre_create, pre_update, post_create, post_update

    Current implemented hooks:

    • cmd: Allows arbritary commands via subprocess
    • export_outputs_kubezero: writes the outputs of kubernetes stacks into a format to be included by KubeZero
  • Stack outputs are now written into a yaml file under outputs if enabled. Enabled via options.StoreOutputs
    create-docs now includes latest stack output values if an output file is found

  • Removed deprecated support for storing parameters as these can be constructed any time from existing and tracked configs

  • some code cleanups and minor changes for cli outputs


  • New Feature: create-docs command Renders a markdown documentation next to the rendered stack templated by parsing parameters and other relvant metadata


  • Bug fix release to allow empty stack configs again



  • Added support for sops encrypted config files, see:
  • hide stack parameter output in terminal if NoEcho is set
  • CloudBender no longer writes stack parameter files to prevent leaking secret values !
    These files were never actually used anyways and there sole purpose was to track changes via git.


  • Add new function outputs, to query already deployed stack for their outputs


  • Add support for CLOUDBENDER_PROJECT_ROOT env variable to specify your root project
  • Switch most os.path operations to pathlib to fix various corner cases caused by string matching


  • Added warning if rendered templates exceed max. inline size of 51200 bytes
  • Added optional removal of comments during include_raw processing to reduce user-data size


  • Fix for only Iterate in use


  • Added support for variables within config files, incl. usual inheritance
  • Set Legacy to False by default, requires templates to check for False explicitly, allows to enabled/disable per stack


  • Add line numbers to easy debugging
  • Fix tests


  • Release emergency bugfix, 0.7.0 broke recursive option parsing


  • Add support for SNS Notifcations to Cloudformation create and update operations
  • Refactored recursive handling of options withing stack groups


  • Fixed custom root directory to allow automated template tests


  • Add support for onfailure for create stack, defaults to DELETE


  • Implemented Piped mode again Allows all stack references to be supplied via injected parameters Tries to automatically resolve injected paramteres by inspecting matching outputs from othe running stacks at provision time
  • minor bugfixing


  • Remove tox dependency during build
  • Introduce support
  • Makefile cleanup


  • Automatic dependency resolution to artifacts referred to by StackRef or FortyTwo


  • new custom Jinja function sub, works the same as re.sub
  • added possibility to use custom Jinja function inline_yaml to set data as yaml
  • disabled SilentUndefined
  • added Jinja2 extension do and loopcontrols
  • new custom Jinja function option to access options at render time incl. default support for nested objects
  • removed custom Jinja functions around old remote Ref handling


  • silence warnings by latest PyYaml 5.1


  • add sync command combining render and provision into one task
  • make cb (boolean) available in Jinja context to allow easy toggle for features relying on cloudbender in templates


  • support for environment variables in any config file
    Example: profile: {{ env.AWS_DEFAULT_PROFILE }}
  • support for jinja {% do %} extension
  • support for inline yaml style complex data definitions, via custom jinja filter yaml
  • missing variables now cause warnings, but rendering continues with ''