Releases: rancherlabs/corral
v1.1.1
What's Changed
- Convert config/vars to map[string]any by @jakefhyde in #91
Full Changelog: v1.1.0...v1.1.1
v1.1.0
Corral v1.1.0 is focused on rounding out the edges and improving stability. Most notably support has been added for maps and lists in variable schemas. Terraform modules can import and export these types, and scripts will receive these types as their json representations. Support has also been added to corral_set
for setting variables to json blobs.
What's Changed
- Updated packages to account for a hashicorp error by @igomez06 in #70
- Add LICENSE file by @jakefhyde in #72
- Added "parallel" to manifest by @jakefhyde in #75
- Added --recreate flag to create by @jakefhyde in #76
- Added skip-cleanup to create by @jakefhyde in #79
- Save corral on failure when skip-cleanup during create by @jakefhyde in #80
- Added json output by @jakefhyde in #84
- Add complex types to corral by @jakefhyde in #83
- Add mage build system by @jakefhyde in #86
- Updated magefiles by @jakefhyde in #89
New Contributors
Full Changelog: v1.0.0...v1.1.0
v1.1.0-rc.2
Full Changelog: v1.1.0-rc.1...v1.1.0-rc.2
v1.1.0-rc.1
What's Changed
- fixed config section by @paynejacob in #69
- Updated packages to account for a hashicorp error by @igomez06 in #70
- Add LICENSE file by @jakefhyde in #72
- Added "parallel" to manifest by @jakefhyde in #75
- Added --recreate flag to create by @jakefhyde in #76
- Added skip-cleanup to create by @jakefhyde in #79
- Save corral on failure when skip-cleanup during create by @jakefhyde in #80
- Added json output by @jakefhyde in #84
- Add complex types to corral by @jakefhyde in #83
- Add mage build system by @jakefhyde in #86
New Contributors
Full Changelog: v1.0.0-rc5...v1.1.0-rc.1
v1.0.0
v1.0.0
Corral v1.0.0 focused on the package development experience and brings some exciting new features for creating packages!
This release contains breaking changes. See the Breaking Changes section for details.
Breaking Changes
Delete all existing corrals before upgrading to v1.0.0
!
Corral v1.0.0
introduces a new package format. Any package published before v1.0.0
will not be compatible with Corral v1.0.0
.
What's New?
More Powerful Package Format
Packages now support applying multiple terraform modules. Package commands can now be a combination of terraform modules and shell commands. This allows for packages to configure more complex environments without deploying your own terraform or creating infrastructure with shell commands. Additionally the scripts
folder has been replaced with overlay
. Scripts was always a misnomer and made too many assumptions about a node's filesystem. Overlays allow for defining the exact file structure for a node and scoping different overlays to different node pools. This reduces the number of files copied and in some cases dramatically improves create times. These enhancements will also enable chaining packages with the new template command.
Package Template
The package template
command allows you to chain merge multiple package into a single package. This reduces code duplication across similar packages by allowing them to build on each other. Lets say there is a package that deploys a k3s cluster on a Digitalocean. To make the package reproducible the OS distribution should be pinned to the package. If we wanted to create a package that installs k3s on AWS EC2 as well would need to duplicate all the files for installing and configuring k3s. If we wanted to add a variable to all our k3s packages to display the machine id of the init node all the packages we would need to update all permutations of the k3s package. This is tedious and leads to drift.
With package templates we can break packages into smaller disciplines and chain them to create complex environments. With templates we can create a package for each cloud provider that creates a generic set of node pools. The k3s package could then accept node pools as a variable rather than provisioning them and extend the cloud provider packages. We no longer duplicate the k3s install content while still having multiple packages for the different cloud providers. We can then extend this further by creating a package that accepts a kubeconfig and init node and installs rancher on the cluster. This allows for packages to still be rigid and consistent while allowing for composition.
Features
- #13 packages support multiple terraform modules
- #23 corral create will fail if a script does not complete successfully
- #43 scripts folder has been replaced with overlay
- #19 packages can be downloaded from registries with
corral package download [[REF] | [REF] [DEST]]
Bug Fix
- #11 corral will regulate the number of concurrent operations and no longer spikes cpu during shell commands
Migrating Packages From Older Corral Versions
If you want to migrate any pre v1.0.0
packages to the v1.0.0
format you can move the scripts folder to overlay/opt/corral
and add - module: module
as the first command in your manifest.
For example lets say I have a package called simple:
mkdir -p simple/overlay/opt
mv simple/scripts simple/overlay/opt/corral
simple/manifest.yaml
...
commands:
- command: /opt/corral/install.sh
node_pools: foo
...
...
commands:
- module: module
- command: /opt/corral/install.sh
node_pools: foo
...
v1.0.0-rc5
What's Changed
- Bumped max package name to 255 (OCI image repo max) by @jakefhyde in #67
Full Changelog: v1.0.0-rc4...v1.0.0-rc5
v1.0.0-rc4
What's Changed
- move package tutorial out of readme. by @paynejacob in #64
- remove package publishing from ci by @paynejacob in #65
- templates will select a more reasonable package name by @paynejacob in #66
Full Changelog: v1.0.0-rc3...v1.0.0-rc4
v1.0.0-rc3
What's Changed
- overwrite on overlay collision by @paynejacob in #62
- fixed package version check by @paynejacob in #63
Full Changelog: v1.0.0-rc2...v1.0.0-rc3
v1.0.0-rc2
What's Changed
- fixed bastion address not being used by @paynejacob in #54
- layer template variables instead of raising error by @paynejacob in #59
- fix error when overlaying template files by @paynejacob in #60
- simplify package template command by @paynejacob in #61
Full Changelog: v1.0.0-rc1...v1.0.0-rc2
v1.0.0-rc1
What's Changed
- added package download command by @paynejacob in #45
- support new package overlay format by @paynejacob in #47
- added support for multiple terraform modules in a single package by @paynejacob in #48
- Shells will not check a commands exit code and return an error if the… by @paynejacob in #49
- Added package templates by @jakefhyde in #50
Full Changelog: v0.1.1...v1.0.0-rc1