Skip to content

Releases: padok-team/burrito

v0.6.1

20 Jan 16:15
5eba278
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.6.0...v0.6.1

v0.6.0

16 Jan 16:35
3b38dc9
Compare
Choose a tag to compare

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

Bug fixes

Others

Read more

v0.5.1

15 Nov 16:59
7a895f7
Compare
Choose a tag to compare

Changelog

Features

Bug fixes

Others

v0.5.0

18 Oct 15:40
ad015b4
Compare
Choose a tag to compare

⚠️ 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

05 Jun 05:43
0b21cad
Compare
Choose a tag to compare

Changelog

Features

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

v0.4.0

21 May 15:58
Compare
Choose a tag to compare

Release notes

This release revamps the short-term storage we had previously with redis, to a long-term storage solution that can be used to store the logs and results of the terraform actions.

This introduces a new component to burrito which is the datastore. This component acts as a gateway for other components to access logs/plans and in a near future git bundles of your repository.

With this new component we were able to introduce a new feature to Burrito -> Logs Retrieval. You can now access the logs of the last runs performed by Burrito directly in the UI.

Performance improvements

  • Ability to include terraform and terragrunt binaries inside the burrito image (reducing network use)
  • Hermitcrab support for provider caching
  • API and frontend improvements with a new paginated display

Changelog

Features

Bug fixes

  • ab720ac: fix(all): use of tls for datastore (@Alan-pad)
  • e813e45: fix(api): correctly manage Remediation Strategy precedence between repo & layer (#263) (@LucasMrqes)
  • dd6f833: fix(authz): build authz object without using constructor (@Alan-pad)
  • aa81769: fix(authz): middleware didn't initialize an in-cluster client (@Alan-pad)
  • bf49119: fix(chart): RBAC for pods log (@Alan-pad)
  • 45528ab: fix(chart): datastore healthcheck (@Alan-pad)
  • d63eadf: fix(chart): issue with volumeMounts referencing non-existing volumes (@Alan-pad)
  • 6cef16c: fix(cmd): datastore command again (@Alan-pad)
  • e9d955e: fix(controllers): didn't support datastore tls setup (@Alan-pad)
  • eb152d2: fix(controllers): logic was changed with the removal of plan checksum (@Alan-pad)
  • b3abca5: fix(datastore): change api expected request and response (@Alan-pad)
  • 80ecb8e: fix(datastore): client wasn't correctly setting header (@Alan-pad)
  • eb42693: fix(datastore): cmd was runner due to duplication (@Alan-pad)
  • 9fe58a1: fix(datastore): content-type: octet-stream (@Alan-pad)
  • 4066413: fix(datastore): could not read body (@Alan-pad)
  • 622cb9c: fix(datastore): default service and issue with annotation not being set on sa (@Alan-pad)
  • 212ca76: fix(datastore): healthcheck (@Alan-pad)
  • 6dcb6cd: fix(datastore): issue getting attempts (@Alan-pad)
  • a80b2e0: fix(datastore): list operations (@Alan-pad)
  • cb65e5d: fix(datastore): oldest run update panic (@Alan-pad)
  • f82b959: fix(datastore): startup (@Alan-pad)
  • 3a144ee: fix(datastore): storagebackend panic (@Alan-pad)
  • def4927: fix(datastore): tokens were not mounted (@Alan-pad)
  • 286e6e9: fix(datastore): write apis (@Alan-pad)
  • 912740c: fix(deps): update all patch dependencies (#243) (@renovate[bot])
  • 523d7d9: fix(helm): datastore tls volume name (@Alan-pad)
  • b7104e3: fix(helm): missing initialized map (@Alan-pad)
  • 9ae0ac0: fix(helm): scheme wasn't changed back to HTTP when certManager.use is false (@Alan-pad)
  • 874fa04: fix(layer): history policy default set to 5 (@Alan-pad)
  • cee69d8: fix(layer): issues with parallel deletes (@Alan-pad)
  • 137d774: fix(rbac): can't get pod logs (@Alan-pad)
  • f19e2e8: fix(run): read pod logs (@Alan-pad)
  • ce70baf: fix(runner): config is not present at runner instanciation (@Alan-pad)
  • 4372310: fix(runner): install terraform in binaries directory instead of tmp (#256) (@LucasMrqes)
  • 53da2ce: fix(runner): run wasn't initialized leading to panic (@Alan-pad)
  • 3d945c2: fix(s3): was using old sdk (@Alan-pad)
  • 4881451: fix(server): config is not present at server instanciation (@Alan-pad)
  • 7e21b77: fix(ui): latestRuns is not sorted, use lastRun (@Alan-pad)
  • 94ad18a: fix(ui): logs terminal was still referencing layer.id which doesn't exist anymore (@Alan-pad)
  • 87d3c2d: fix(ui): navigation was broken due to a change in path (@Alan-pad)
  • d3411ce: fix(ui): unused param in logs (@Alan-pad)
  • 9486f19: fix(ui): update incorrect text on repositories dropdown (#236) (@marcantoinegodde)
  • 74badc7: fix: add renovate.json with padok default config (#240) (@padok-enabler-github-app[bot])
  • 4e11e3d: fix: datastore client api path (@Alan-pad)
  • 015e735: fix: duplicated line (@Alan-pad)

Others

  • 4833922: Added additional data to the /layers route (#239) (@fabiopadok)
  • d93221c: chore(deps): update dependency @types/react to v18.2.59 (#249) (@renovate[bot])
  • c7f0e7b: chore(deps): update dependency vite to v5.0.12 [security] (#223) (@renovate[bot])
  • a88f1e7: chore(deps): update dependency vite to v5.1.7 [security] (#260) (@renovate[bot])
  • 101a629: chore(release): bump version to v0.3.1 (@Alan-pad)
  • 0d3ddd3: chore: add a bit more logging to issues with datastore (@Alan-pad)
  • 541d049: chore: add logs to datastore client (@Alan-pad)
  • 0b2a55f: chore: remove logger on /healthz (@Alan-pad)
  • fab417a: chore: update crds (@Alan-pad)

v0.3.1

30 Jan 15:03
19c53c5
Compare
Choose a tag to compare

Changelog

Features

Bug fixes

Others

v0.3.0

13 Dec 16:18
da56078
Compare
Choose a tag to compare

Changelog

Features

Bug fixes

  • 7ab069f: Revert "fix: repository folder was mounted and didn't have proper ownership sets (#207)" (@Alan-pad)
  • 983ad07: fix(api): didn't send the layer state (@Alan-pad)
  • da56078: fix(api): show success when plan is empty (#211) (@Alan-pad)
  • ca8683c: fix(burrito): handle cases where webhook wasn't received (#206) (@Alan-pad)
  • cb13ef8: fix(chart): RBAC on server was missing (@Alan-pad)
  • b8f373f: fix(controllers): reconcile on annotation update (#188) (@corrieriluca)
  • 4e1089c: fix(deps): update dependency axios to v1.6.0 [security] (#193) (@renovate[bot])
  • 8d15a76: fix(deps): update module github.com/go-git/go-git/v5 to v5.9.0 (#151) (@renovate[bot])
  • d31a6b3: fix(deps): update module github.com/hashicorp/hc-install to v0.6.1 (#180) (@renovate[bot])
  • 03637d9: fix(deps): update module github.com/hashicorp/terraform-exec to v0.19.0 (#62) (@renovate[bot])
  • 6ca1e46: fix(deps): update module github.com/onsi/ginkgo/v2 to v2.13.1 (#181) (@renovate[bot])
  • 511b84a: fix(github): handle reopened PR (#184) (@corrieriluca)
  • 721fc23: fix(gitlab): correctly handle GitLab MR events (#178) (@corrieriluca)
  • c0abbca: fix(lints): fix code smell from CI (#158) (@corrieriluca)
  • 2e79f83: fix(pr): multiple bugs in the PR controller (#187) (@corrieriluca)
  • 577adf5: fix(rbac): update roles in plain manifests (#185) (@corrieriluca)
  • 9e8c060: fix(runner): issues with terragrunt install (#210) (@Alan-pad)
  • 5f0eb8d: fix(server): api wasn't initialized (@Alan-pad)
  • feb79f0: fix(server): checking non-existent ownerReferences creates a panic (@Alan-pad)
  • 0d0cd65: fix(terraformpullrequest): fix pagination for github pull request files (#174) (@dixneuf19)
  • 5dfe71c: fix(url): normalizeURL wasn't working on https with .git suffix (#176) (@Alan-pad)
  • 4d43683: fix: helm chart key in values-example.yaml (@Alan-pad)
  • f195c97: fix: helm chart rbac (@Alan-pad)
  • 006165a: fix: readd the setLogger to fix issue with controller-runtime (#169) (@Alan-pad)
  • 1a88ae8: fix: repository folder was mounted and didn't have proper ownership sets (#207) (@Alan-pad)
  • 2240d2b: fix: runner workdir in a subfolder + remove mounted volume (#209) (@Alan-pad)
  • 9697028: fix: update to v0.15.2 controller-runtime (@Alan-pad)
  • 5c1e906: fix: upgrade to v0.11.4 (@Alan-pad)

Others

v0.2.0

03 Aug 14:03
393fe79
Compare
Choose a tag to compare

Changelog

Features

Bug fixes

Others

v0.1.0

28 Feb 12:48
Compare
Choose a tag to compare

Changelog

Features

  • 0dcac6b: feat(cache): implement not found generic error and use it to fail fast in case cache has an issue (#22) (@Alan-pad)
  • 72b9cb7: feat(controller): expose all the current manager options as flags in cmd (#44) (@Alan-pad)
  • 84bc075: feat(controller): remove cache dependency and put lock on an annotation (@Alan-pad)
  • 3d5f8eb: feat(init): initialize operator and both controllers (@Alan-pad)
  • 17b3d15: feat(multiple): moving some cache keys to annotations base, add kubernetes client to runner (@Alan-pad)
  • 3672cf7: feat(runner): enhance runner with a kubernetes client to check layer resources (@Alan-pad)
  • 7a3b1ef: feat(timers): introduce timers configuration (driftDetection, waitAction, onError) (#20) (@Alan-pad)
  • 950d729: feat(version): inject version at build time to runner are ran in the same version as controller (#45) (@Alan-pad)
  • a206236: feat/handle-webhook-notifications (#33) (@spoukke)
  • ed2dc74: feat/merge-pod-specs (#30) (@spoukke)
  • e4ec67d: feat: add remediation strategy in api (@spoukke)
  • 4158c89: feat: allow ssh git clone (#25) (@spoukke)
  • d52b467: feat: handle remediation strategy and concerning branch commit comparison (#41) (@spoukke)
  • 81049d7: feat: improve output of kubectl get on CRDs (#67) (@Alan-pad)
  • d0867ab: feat: introduce 2 new status fields and show them in kubectl get command (#52) (@Alan-pad)
  • 544259d: feat: make drift check and apply with custom runner code (#2) (@spoukke)
  • ef767bd: feat: no apply on empty plan (#21) (@Alan-pad)
  • 8985b89: feat: use common remediation strategy (@spoukke)

Bug fixes

  • a965dca: fix(layer): usage of printcolumn wasn't understood correctly (@Alan-pad)
  • cf55b40: fix(state): index out of range crash (@Alan-pad)
  • 30d84d6: fix/apply-not-running (#34) (@spoukke)
  • 6097d33: fix: check for branch inside webhook (#43) (@spoukke)

Others