Skip to content

Releases: rancherlabs/corral

v1.1.1

26 Sep 20:34
c5a0b23
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.1.0...v1.1.1

v1.1.0

17 Sep 03:00
88bbecd
Compare
Choose a tag to compare

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

New Contributors

Full Changelog: v1.0.0...v1.1.0

v1.1.0-rc.2

17 Sep 02:35
Compare
Choose a tag to compare
v1.1.0-rc.2 Pre-release
Pre-release

v1.1.0-rc.1

17 Sep 01:54
308deef
Compare
Choose a tag to compare
v1.1.0-rc.1 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v1.0.0-rc5...v1.1.0-rc.1

v1.0.0

06 May 20:20
54c4157
Compare
Choose a tag to compare

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

05 May 16:39
87528bb
Compare
Choose a tag to compare
v1.0.0-rc5 Pre-release
Pre-release

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

04 May 16:28
7d3291e
Compare
Choose a tag to compare
v1.0.0-rc4 Pre-release
Pre-release

What's Changed

Full Changelog: v1.0.0-rc3...v1.0.0-rc4

v1.0.0-rc3

25 Apr 19:22
ae7bdc0
Compare
Choose a tag to compare
v1.0.0-rc3 Pre-release
Pre-release

What's Changed

Full Changelog: v1.0.0-rc2...v1.0.0-rc3

v1.0.0-rc2

25 Apr 16:09
d12baa3
Compare
Choose a tag to compare
v1.0.0-rc2 Pre-release
Pre-release

What's Changed

Full Changelog: v1.0.0-rc1...v1.0.0-rc2

v1.0.0-rc1

12 Apr 17:05
c7c1902
Compare
Choose a tag to compare
v1.0.0-rc1 Pre-release
Pre-release

What's Changed

Full Changelog: v0.1.1...v1.0.0-rc1