Releases: padok-team/burrito
v0.7.0
Changelog
Features
- 94235b4: feat(chart): allow service annotation on hermitcrab service to enable Topology Aware Routing (#589) (@DjinnS)
- a4f1f80: feat(contributing): add support for debugging live pods (#585) (@michael-todorovic)
- 978aec8: feat(datastore): normalize backends output, add storage unit tests, fix GetLastAttempt (#614) (@michael-todorovic)
- 235a7e0: feat(runner): allow command+args override (#594) (@michael-todorovic)
- 3f6baf3: feat(ui): upgrade to tailwindcss v4 (#610) (@corrieriluca)
- 245b9a9: feat: allow ssh known hosts override (#578) (@michael-todorovic)
Bug fixes
- 765acea: fix(datastore): handle not found error for S3 HeadObject (#588) (@corrieriluca)
- d7f4665: fix(deps): update all patch dependencies (#584) (@renovate[bot])
- e9a63df: fix(deps): update module github.com/bradleyfalzon/ghinstallation/v2 to v2.15.0 (#570) (@renovate[bot])
- 3f224ad: fix(deps): update module github.com/go-git/go-git/v5 to v5.16.0 (#571) (@renovate[bot])
- 1eeeaad: fix(deps): update module github.com/google/go-github/v68 to v71 (#563) (@renovate[bot])
- 979746d: fix(deps): update module github.com/hashicorp/terraform-exec to v0.23.0 (#572) (@renovate[bot])
- 4d782ca: fix(deps): update module gitlab.com/gitlab-org/api/client-go to v0.128.0 (#514) (@renovate[bot])
- c0784c6: fix(deps): update ui dependencies (#574) (@renovate[bot])
- 5f1c2dc: fix(layer-controller): no error on last result when layer is new (#587) (@corrieriluca)
- 888a716: fix(runner): handle resource replacement (#583) (@michael-todorovic)
- 5ac921c: fix(s3): remove ChecksumAlgorithm (#603) (@michael-todorovic)
- 1a614f3: fix: return rc=2 for unsupported commands (#595) (@michael-todorovic)
- 6ebc0ea: fix: support gh enterprise api (#613) (@ampc)
Others
v0.6.5
Changelog
Bug fix 💥
- d6aafd7: fix(run-controller): client side filter for running pods list (#577) (@LucasMrqes)
- The
maxConcurrentRunnerPods
feature was not functional since 0.6.4, this fix the bugs by doing pod filtering on Burrito side
- The
Others
- 6963bad: chore(release): bump version to v0.6.4 (@padok-runner)
v0.6.4
Changelog
Features
- 7d022cf: feat: add support for initContainers in overrideRunnerSpec (#576) (@michael-todorovic)
Bug fixes
- 7a94cae: fix: change casing 'maxConcurrentRunnerPods' key in burrito values' (#567) (@Pockylolo)
- 83d4ee7: fix: count pending pods when listing running pods (#564) (@LucasMrqes)
Dependency upgrades
- 85f4086: fix(deps): update module sigs.k8s.io/controller-runtime to v0.20.4 (#507) (@renovate[bot])
- 55667e5: chore(ci): remove digests in actions versions (#568) (@corrieriluca)
- 6ad0beb: chore(deps): update actions/cache digest to 5a3ec84 (#557) (@renovate[bot])
- 28607f2: chore(deps): update actions/setup-go digest to 0aaccfd (#558) (@renovate[bot])
- f513495: chore(deps): update actions/setup-python digest to 8d9ed9a (#565) (@renovate[bot])
- ed6fa34: chore(deps): update dependency vite to v6.2.6 [security] (#561) (@renovate[bot])
- d4651e3: chore(deps): update node.js to v22.14.0 (#543) (@renovate[bot])
- 4c0ebb6: chore(release): bump version to v0.6.3 (@LucasMrqes)
v0.6.3
New features
- SyncWindows allows you to define precise windows during which a layer will or will not be planned / applied by Burrito. Strongly inspired by Argo CD's SyncWindows. Documentation is available here.
- MaxConcurrentRunnerPod setting can be set on the controller or repository level to limit the number of Burrito runner pods that run in parallel. More information in the associated documentation
These two features aim to empower Burrito users with tools to fine-tune the scheduling of operations, which can be especially useful for FinOps or safety-related considerations.
What's Changed
- chore(deps): update actions/setup-python digest to 4237552 by @renovate in #534
- chore(deps): update goreleaser/goreleaser-action digest to 90a3faa by @renovate in #536
- chore(docker): pin digests docker pin digests by @renovate in #537
- fix(deps): update all patch dependencies (patch) by @renovate in #541
- docs: fix getting-started helm values by @rssnyder in #546
- fix: [opentofu] no color by @rssnyder in #548
- fix: [deploy] service type use service group value by @rssnyder in #547
- chore: add new blog post by @corrieriluca in #554
- chore: add opentofu guide by @rssnyder in #555
- feat: add sync windows by @LucasMrqes in #531
- chore(deps): update dependency vite to v6.0.13 [security] by @renovate in #552
- fix(deps): update dependency axios to v1.8.2 [security] by @renovate in #556
- feat: add setting to limit the number of concurrent runner pods by @LucasMrqes in #545
New Contributors
Full Changelog: v0.6.2...v0.6.3
v0.6.2
What's Changed
- chore(deps): update dependency vite to v6.0.9 [security] by @renovate in #517
- chore(deps): update ui dependencies (minor) by @renovate in #493
- chore(deps): update dependency eslint-config-prettier to v10 by @renovate in #494
- fix(deps): update all patch dependencies (patch) by @renovate in #497
- docs: update domain name to docs.burrito.tf by @corrieriluca in #524
- feat(crd): support affinity in overriderunnerspec by @smeelock in #532
- chore(deps): update codecov/codecov-action digest to 0565863 by @renovate in #519
- chore(deps): update golangci/golangci-lint-action digest to 2226d7c by @renovate in #508
- chore(deps): update actions/setup-go digest to f111f33 by @renovate in #518
- chore(deps): update actions/cache digest to d4323d4 by @renovate in #533
- chore(deps): update actions/setup-node digest to 1d0ff46 by @renovate in #526
- docs: add affinity in available overrides by @corrieriluca in #538
- fix(pullrequests): inherit all properties from original layer in pr layer by @LucasMrqes in #539
New Contributors
Full Changelog: v0.6.1...v0.6.2
v0.6.1
What's Changed
- chore(ci): use arm64 runners by @corrieriluca in #510
- fix(datastore): handle not found errors from azure, s3 and gcs by @corrieriluca in #511
- fix(chart): add rbac for default SA + server in each tenant by @corrieriluca in #513
Full Changelog: v0.6.0...v0.6.1
v0.6.0
Important changes
Changes in Git provider authentication for PR/MR workflow
Prior to version v0.6.0, Burrito supported only one Git provider (either GitHub or GitLab) for enabling the PR/MR workflow. It means that if user were using multiple Git providers / organizations for the same Burrito installation, PR/MR workflow could apply to only one of them.
With version v0.6.0, the authentication for the PR/MR workflow relies on the secret associated to a TerraformRepository.
Deprecation warning: Old behavior with Git authentication configured in Burrito global config will remain functional until version 0.7.0.
To migrate to v0.6.0, add in each TerraformRepository secret the authentication mechanism (GitHub App / Token, GitLab Token) Burrito needs to use to track opened / closed Pull Requests.
Opt-in feature: sync repository with datastore
#467 introduces repository content syncing in the TerraformRepository controller (that was unused until now). For now this feature is disabled by default (this is done by disabling the TerraformRepository controller by default in Burrito's config) because Burrito runner does not get repository content from the datastore but still relies on Git clones.
In a future release Burrito runner pods will not clone Git repositories anymore and will instead fetch the last bundle from the datastore.
This will open the door to many enhancements in the few next releases such as layer auto-discovery in repos to name a few.
Changelog
Features
- bffc379: feat(chart): add a default service account for runner pods (#416) (@LucasMrqes)
- 56f62f7: feat(chart): merge additional datastore service accounts with required ones (#424) (@LucasMrqes)
- 8dcd817: feat(deps): update deprecated go gitlab client (#452) (@LucasMrqes)
- 69d7033: feat(dockerfile): improve caching to speed up build (#418) (@LucasMrqes)
- c6ef3c3: feat(terraformrun): passing extra args to init plan and apply cmd (#417) (@adupays)
- bc773de: feat(ui): limit width of layer cards to a third of the grid (#502) (@LucasMrqes)
- 4f0392a: feat: Update CODEOWNERS file (#498) (@LucasMrqes)
- 69c5c71: feat: refactor GitHub/GitLab clients (#413) (@LucasMrqes)
- 4a333c7: feat: sync repository content with datastore (#467) (@LucasMrqes)
Bug fixes
- eb72de2: fix(api): override envVar instead of merging them and keep valueFrom (#419) (@adupays)
- d9b2b22: fix(api): override tolerations instead of merge them (#414) (@adupays)
- 0aee2c5: fix(charts): least privilege on controller rbac (#421) (@adupays)
- 33160f5: fix(datastore): add config in Azure struct (#422) (@tbaert-prest)
- ccae1fc: fix(deps): update all patch dependencies (#435) (@renovate[bot])
- c1812f6: fix(deps): update all patch dependencies (#447) (@renovate[bot])
- 6469524: fix(deps): update all patch dependencies (#457) (@renovate[bot])
- 4854f1d: fix(deps): update all patch dependencies (#461) (@renovate[bot])
- 0eedd74: fix(deps): update all patch dependencies (#468) (@renovate[bot])
- 8731170: fix(deps): update all patch dependencies (#477) (@renovate[bot])
- 4e27d22: fix(deps): update all patch dependencies (#488) (@renovate[bot])
- aa3515c: fix(deps): update dependency @floating-ui/react to ^0.27.0 (#439) (@renovate[bot])
- 8a36dd9: fix(deps): update dependency @tanstack/react-query to v5.60.5 (#400) (@renovate[bot])
- 3f3eb89: fix(deps): update dependency @tanstack/react-query to v5.64.1 (#491) (@renovate[bot])
- 3b52dbf: fix(deps): update dependency react-router-dom to v7 (#484) (@renovate[bot])
- 6598e40: fix(deps): update dependency tailwind-merge to v2.5.5 (#403) (@renovate[bot])
- 47eb539: fix(deps): update dependency tailwind-merge to v2.6.0 (#453) (@renovate[bot])
- 15e6925: fix(deps): update kubernetes packages to v0.32.1 (minor) (#404) (@renovate[bot])
- db3c97a: fix(deps): update module github.com/aws/aws-sdk-go-v2/config to v1.28.9 (#483) (@renovate[bot])
- 12f01c3: fix(deps): update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.71.1 (#441) (@renovate[bot])
- fd02df5: fix(deps): update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.72.2 (#469) (@renovate[bot])
- b680872: fix(deps): update module github.com/azure/azure-sdk-for-go/sdk/azidentity to v1.8.0 (#454) (@renovate[bot])
- b44c05f: fix(deps): update module github.com/azure/azure-sdk-for-go/sdk/storage/azblob to v1.5.0 (#455) (@renovate[bot])
- e5d0a46: fix(deps): update module github.com/bradleyfalzon/ghinstallation/v2 to v2.13.0 (#465) (@renovate[bot])
- 8d682e1: fix(deps): update module github.com/go-git/go-git/v5 to v5.13.0 (#456) (@renovate[bot])
- 0791bcd: fix(deps): update module github.com/google/go-github/v66 to v68 (#474) (@renovate[bot])
- cd4d884: fix(deps): update module github.com/hashicorp/terraform-exec to v0.21.0 (#391) (@renovate[bot])
- 47735cf: fix(deps): update module github.com/hashicorp/terraform-json to v0.23.0 (#387) (@renovate[bot])
- e9b0006: fix(deps): update module github.com/hashicorp/terraform-json to v0.24.0 (#458) (@renovate[bot])
- dc1b16e: fix(deps): update module github.com/labstack/echo/v4 to v4.13.3 (#459) (@renovate[bot])
- f7add70: fix(deps): update module github.com/onsi/gomega to v1.36.2 (#462) (@renovate[bot])
- 1e85f9d: fix(deps): update module github.com/spf13/viper to v1.19.0 (#463) (@renovate[bot])
- a05ca2a: fix(deps): update module github.com/tofuutils/tenv/v3 to v4 (#448) (@renovate[bot])
- 517bd17: fix(deps): update module github.com/xanzy/go-gitlab to v0.114.0 (#152) (@renovate[bot])
- b7150b1: fix(deps): update module gitlab.com/gitlab-org/api/client-go to v0.119.0 (#480) (@renovate[bot])
- 20d1b40: fix(deps): update module golang.org/x/oauth2 to v0.25.0 (#464) (@renovate[bot])
- f888523: fix(deps): update module sigs.k8s.io/controller-runtime to v0.19.3 (#405) (@renovate[bot])
- 86c82f2: fix(deps): update ui dependencies (#489) (@renovate[bot])
- f039be8: fix(deps): update ui dependencies to v19 (#485) (@renovate[bot])
- de3ae39: fix(docker): ignore local UI build files (#499) (@corrieriluca)
- 9923d81: fix(docker): reduce binary size + speed up build (#492) (@corrieriluca)
- 176024b: fix(docs): typos (#445) (@LucasMrqes)
- d1a7ba6: fix(mkdocs): use superfences to correctly indent code-blocks (#411) (@LucasMrqes)
- 41b2434: fix(renovate): make ui group include all update types (#486) (@corrieriluca)
- 3b38dc9: fix: deprecation warning on old git config in PR controller (#506) (@corrieriluca)
Others
- 2ea942b: chore(ci): only run Golang CI on specific changes (#503) (@corrieriluca)
- f0e936a: chore(deps): update actions/cache digest to 1bd1e32 (#425) (@renovate[bot])
- 0a563c3: chore(deps): update actions/setup-go digest to 3041bf5 (#433) (@renovate[bot])
- 1b8081b: chore(deps): update all patch dependencies (#427) (@renovate[bot])
- 8929476: chore(deps): update codecov/codecov-action action to v5 (#393) (@renovate[bot])
- 72cdf35: chore(deps): update codecov/codecov-action digest to 1e68e06 (#446) (@renovate[bot])
- a116237: chore(deps): update dependency eslint to v9 (#394) (@renovate[bot])
- b7a2bbc: chore(deps): update dependency eslint to v9.16.0 (#428) (@renovate[bot])
- 71046b0: chore(deps): update dependency eslint to v9.17.0 (#449) (@renovate[bot])
- 581bd07: chore(deps): update dependency eslint-plugin-react-hooks to v5.1.0 (#429) (@renovate[bot])
- 270d558: chore(deps): update dependency go to v1.23.4 (#338) (@renovate[bot])
- bdcc454: chore(deps): update dependency prettier to v3.4.2 (#430) (@renovate[bot])
- 2e06086: chore(deps): update dependency typescript to v5....
v0.5.1
Changelog
Features
- 5e2aafd: feat(ci): refactor ci/cd to avoid code duplication (#353) (@corrieriluca)
- 10685b1: feat(datastore): remove all leading slashes in object key prefixes (#379) (@LucasMrqes)
- 8b11816: feat(renovate): group docker pin digests (#383) (@DjinnS)
- 36203af: feat(ui): fix eslint config and add prettier (#368) (@LucasMrqes)
- 40f80e1: feat: set default runner image in global config (#371) (@LucasMrqes)
Bug fixes
- 11dfcd5: fix(config): migrate config renovate.json (#375) (@renovate[bot])
- 96f8443: fix(datastore): correct prefix to list with S3 storage (#376) (@seboudry)
- df5de92: fix(deps): update all patch dependencies (#372) (@renovate[bot])
- 6be957d: fix(deps): update dependency @tanstack/react-table to v8.20.5 (#364) (@renovate[bot])
- 5baf1dc: fix(deps): update dependency react-router-dom to v6.28.0 (#373) (@renovate[bot])
- 2565445: fix(deps): update module github.com/labstack/echo/v4 to v4.12.0 (#388) (@renovate[bot])
- afa9ff3: fix(deps): update react monorepo to v18.3.1 (#345) (@renovate[bot])
- 7a895f7: fix(renovate): pin digest only for dockerfile (#402) (@DjinnS)
- a1b31e4: fix(renovate): wrong manager for docker (#398) (@DjinnS)
Others
- 4810a71: chore(deps): update actions/cache digest to 6849a64 (#366) (@renovate[bot])
- f73df4e: chore(deps): update actions/setup-go digest to 41dfa10 (#367) (@renovate[bot])
- 230b149: chore(deps): update actions/setup-node digest to 39370e3 (#369) (@renovate[bot])
- 07c152c: chore(deps): update actions/setup-python digest to 0b93645 (#370) (@renovate[bot])
- 243182f: chore(deps): update all patch dependencies (#384) (@renovate[bot])
- a9ef62b: chore(deps): update borales/actions-yarn action to v5 (#392) (@renovate[bot])
- 8c9355b: chore(deps): update dependency eslint-plugin-react-hooks to v5 (#395) (@renovate[bot])
- 21f16da: chore(deps): update dependency eslint-plugin-react-refresh to ^0.4.12 (#363) (@renovate[bot])
- a4e2e0c: chore(deps): update dependency typescript to v5.6.3 (#386) (@renovate[bot])
- 9b5d3d2: chore(deps): update docker.io/library/alpine:3.20.3 docker digest to 1e42bbe (#381) (@renovate[bot])
- 74ba80b: chore(deps): update docker.io/library/golang:1.22.8 docker digest to 0ca97f4 (#362) (@renovate[bot])
- 6c5cf68: chore(deps): update go-github to v66 (#385) (@corrieriluca)
- 444bf94: chore(deps): update goreleaser/goreleaser-action digest to 9ed2f89 (#382) (@renovate[bot])
- 778d444: chore(deps): update node.js to v22 (#389) (@renovate[bot])
- 767bcf3: chore(deps): update stefanzweifel/git-auto-commit-action action to v5 (#342) (@renovate[bot])
- 698d1df: chore(deps): update typescript-eslint monorepo to v8 (#396) (@renovate[bot])
- 88bf379: chore(release): bump version to v0.5.0 (@LucasMrqes)
- def56a2: chore(renovate): update renovate config file (#374) (@corrieriluca)
v0.5.0
⚠️ Breaking changes ⚠️
This version introduces the support for OpenTofu in addition to Terraform. TerraformLayer and TerraformRepositories CRDs were updated to reflect the new changes.
Make sure to update your manifests accordingly when upgrading to this version..
To upgrade from v0.4.0 to v0.5.0, please delete all your TerraformLayer and TerraformRepositories resources, update Burrito, then apply updated manifests for the new spec.
Before:
apiVersion: config.terraform.padok.cloud/v1alpha1
kind: TerraformLayer | TerraformRepository
metadata:
name: my-layer
namespace: burrito-project
spec:
terraform:
version: xxx
terragrunt:
enabled: true | false
version: xxx
...
After:
apiVersion: config.terraform.padok.cloud/v1alpha1
kind: TerraformLayer | TerraformRepository
metadata:
name: my-layer
namespace: burrito-project
spec:
terraform:
enabled: true | false
version: xxx
openTofu:
enabled: true | false
version: xxx
terragrunt:
enabled: true | false
version: xxx
...
⚠️ Important configuration
This version introduces the use of tenv to manage Terraform, Terragrunt and OpenTofu versions. Since tenv uses GitHub's public API to download binaries, Burrito might get rate limited. (the rate limit is 50 requests / hour for unauthenticated users)
To bypass this, you need to pass a GitHub token (no permissions needed) to Burrito's runners. You can do this by passing the TENV_GITHUB_TOKEN
environment variable to the runners by using the spec.overrideRunnerSpec
of TerraformLayer and TerraformRepositories resources.
What's Changed
- feat(hermitcrab): add scheduling options to chart by @LucasMrqes in #298
- feat(ui): some ui improvements by @LucasMrqes in #300
- fix(deps): update module github.com/azure/azure-sdk-for-go/sdk/azidentity to v1.6.0 [security] by @renovate in #299
- fix(deps): update module github.com/gruntwork-io/go-commons to v0.17.1 - autoclosed by @renovate in #295
- fix(deps): update module github.com/hashicorp/go-version to v1.7.0 by @renovate in #287
- fix(deps): update module github.com/bradleyfalzon/ghinstallation/v2 to v2.11.0 by @renovate in #286
- chore(deps): update node.js to v20.14.0 by @renovate in #281
- fix(deps): update all patch dependencies (patch) by @renovate in #302
- chore(deps): update docker.io/library/golang:1.22.4 docker digest to c2010b9 by @renovate in #301
- feat(ui): add frontend pagination for layers table view by @LucasMrqes in #308
- feat(chart): update values & doc to get started easier by @LucasMrqes in #312
- docs: reorganize by @LucasMrqes in #309
- allow add extra volumes and mounts in Helm chart by @seboudry in #315
- fix(deps): update dependency axios to v1.7.4 [security] by @renovate in #316
- fix(datastore): mount cert in runner + improve logs + set hostname by @corrieriluca in #320
- feat(runner): refactor runner + use tenv to install binaries by @corrieriluca in #319
- fix(controllers): add missing DATASTORE_HOSTNAME env var on run pods by @LucasMrqes in #325
- feat(datastore): datastore S3 use path style configuration by @seboudry in #322
- chore(deps): update dependency vite to v5.3.6 [security] by @renovate in #331
- feat: add manual layer sync by @LucasMrqes in #321
- feat: add support for opentofu by @LucasMrqes in #328
- fix(deps): update aws-sdk-go-v2 monorepo (minor) by @renovate in #307
- fix(deps): update module github.com/aws/aws-sdk-go to v1.55.5 by @renovate in #306
- chore(deps): update docker.io/library/golang:1.22.4 docker digest to c8736b8 by @renovate in #335
- fix(deps): update dependency @tanstack/react-query to v5.59.15 by @renovate in #198
- chore(deps): update dependency @vitejs/plugin-react-swc to ^3.6.0 by @renovate in #279
- fix(deps): update dependency react-tooltip to v5.28.0 by @renovate in #304
- fix(deps): update module cloud.google.com/go/storage to v1.45.0 by @renovate in #305
- feat(ci): bump checkout action to v4 by @DjinnS in #339
- fix(ui): handle dark mode on sync sliding pane by @LucasMrqes in #334
- fix(deps): update all patch dependencies (patch) by @renovate in #337
- chore(deps): update node.js to 02cd220 by @renovate in #336
New Contributors
Full Changelog: v0.4.1...v0.5.0
v0.4.1
Changelog
Features
- 5fbbeac: feat(controller): add parameter to fine-tune max concurrent reconciles (#288) (@LucasMrqes)
- c177cf0: feat(datastore): add mock storage option (#289) (@LucasMrqes)
- 20c1f86: feat(hermitcrab): use ephemeral storage or emptydir + sharding (#290) (@LucasMrqes)
Bug fixes
- 97b600d: fix(datastore): prefix was missing to separate layer and repositories in datastore (#283) (@Alan-pad)
- f599747: fix(deps): update all patch dependencies (#277) (@renovate[bot])
- 3ee4b5a: fix(deps): update module cloud.google.com/go/storage to v1.41.0 (#282) (@renovate[bot])
- e375094: fix(deps): update module github.com/aws/aws-sdk-go to v1.53.10 (#285) (@renovate[bot])
- 02cecf3: fix(deps): update module github.com/bombsimon/logrusr/v4 to v4.1.0 (#252) (@renovate[bot])
- 0b21cad: fix(deps): update module github.com/onsi/gomega to v1.33.1 (#294) (@renovate[bot])
- a73f071: fix(deps): update module github.com/spf13/viper to v1.18.2 (#182) (@renovate[bot])
- 30bf767: fix(layer): infinite retry introduced in 0-4-0 (#292) (@Alan-pad)
Others
- fb0d4a3: chore(deps): update all patch dependencies (#284) (@renovate[bot])
- c8d030f: chore(deps): update all patch dependencies (#293) (@renovate[bot])
- bbcd7e7: chore(deps): update docker.io/library/alpine docker tag to v3.20.0 (#280) (@renovate[bot])
- c401ecd: chore(deps): update docker.io/library/golang docker tag to v1.22.3 (#245) (@renovate[bot])
- beb1b91: chore(deps): update node.js to e06aae1 (#276) (@renovate[bot])
- 314ffe2: chore(release): bump version to v0.4.0 (@Alan-pad)
- d1a998d: chore: remove redis references (#268) (@Alan-pad)