padok-team / burrito Goto Github PK
View Code? Open in Web Editor NEW๐ฏ Burrito is a TACoS ๐ฎ
Home Page: https://padok-team.github.io/burrito
License: Apache License 2.0
๐ฏ Burrito is a TACoS ๐ฎ
Home Page: https://padok-team.github.io/burrito
License: Apache License 2.0
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates are currently rate-limited. Click on a checkbox below to force their creation now.
@floating-ui/react
, autoprefixer
, axios
, docker.io/library/alpine
, docker.io/library/golang
, eslint-plugin-react-refresh
, github.com/aws/aws-sdk-go-v2/config
, github.com/gruntwork-io/go-commons
, go
, k8s.io/api
, k8s.io/apimachinery
, k8s.io/client-go
, postcss
, tailwindcss
, vite
)@typescript-eslint/eslint-plugin
, @typescript-eslint/parser
)These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
@typescript-eslint/eslint-plugin
, @typescript-eslint/parser
, @vitejs/plugin-react-swc
, actions/cache
, actions/checkout
, actions/setup-go
, actions/setup-node
, actions/setup-python
, autoprefixer
, codecov/codecov-action
, docker/build-push-action
, docker/login-action
, docker/metadata-action
, docker/setup-buildx-action
, docker/setup-qemu-action
, eslint
, eslint-plugin-react-hooks
, eslint-plugin-react-refresh
, ghcr.io/padok-team/burrito
, golangci/golangci-lint-action
, goreleaser/goreleaser-action
, nginx
, node
, postcss
, sealio/hermitcrab
, stefanzweifel/git-auto-commit-action
, tailwindcss
, typescript
, vite
)@types/react
, @types/react-dom
, react
, react-dom
)@typescript-eslint/eslint-plugin
, @typescript-eslint/parser
)Dockerfile
docker.io/library/node 20.14.0@sha256:d0a9a2399581a9de1ff962a48a28b5cfe700678a6a5df8e31a63aaa47bebb923
docker.io/library/golang 1.22.4@sha256:c2010b9c2342431a24a2e64e33d9eb2e484af49e72c820e200d332d214d5e61f
docker.io/library/alpine 3.20.0@sha256:77726ef6b57ddf65bb551896826ec38bc3e53f75cdde31354fbffb4f25238ebd
ui/Dockerfile
node 20
nginx stable-alpine
.github/workflows/conventional-commits.yaml
actions/checkout v3
actions/setup-node v3
.github/workflows/docs.yaml
actions/checkout v4
actions/setup-python v4
actions/cache v3
.github/workflows/helm.yaml
actions/checkout v3
actions/checkout v3
.github/workflows/main.yaml
actions/checkout v3
actions/cache v3
actions/setup-go v4
codecov/codecov-action v3
actions/checkout v3
actions/setup-go v4
actions/checkout v3
actions/setup-go v4
golangci/golangci-lint-action v3
actions/checkout v3
docker/metadata-action v4
docker/setup-qemu-action v2
docker/setup-buildx-action v2
docker/login-action v2
docker/build-push-action v4
.github/workflows/pr.yaml
actions/checkout v3
actions/cache v3
actions/setup-go v4
codecov/codecov-action v3
actions/checkout v3
actions/setup-go v4
actions/checkout v3
actions/setup-go v4
golangci/golangci-lint-action v3
actions/checkout v3
docker/metadata-action v4
docker/setup-qemu-action v2
docker/setup-buildx-action v2
docker/login-action v2
docker/build-push-action v4
.github/workflows/release.yaml
actions/checkout v3
actions/setup-go v4
goreleaser/goreleaser-action v3
actions/checkout v3
stefanzweifel/git-auto-commit-action v4
actions/checkout v3
docker/metadata-action v4
docker/setup-qemu-action v2
docker/setup-buildx-action v2
docker/login-action v2
docker/build-push-action v4
go.mod
go 1.22.0
go 1.22.4
cloud.google.com/go/storage v1.41.0
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.6.0
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2
github.com/aws/aws-sdk-go v1.53.21
github.com/bradleyfalzon/ghinstallation/v2 v2.11.0
github.com/ghodss/yaml v1.0.0
github.com/gruntwork-io/go-commons v0.17.1
github.com/hashicorp/go-multierror v1.1.1
github.com/hashicorp/terraform-json v0.17.1
github.com/onsi/ginkgo/v2 v2.17.3
github.com/onsi/gomega v1.33.1
github.com/sirupsen/logrus v1.9.3
github.com/stretchr/testify v1.9.0
google.golang.org/api v0.178.0
k8s.io/apimachinery v0.30.2
k8s.io/client-go v0.30.2
sigs.k8s.io/controller-runtime v0.18.4
github.com/aws/aws-sdk-go-v2/config v1.27.20
github.com/aws/aws-sdk-go-v2/service/s3 v1.54.4
github.com/bombsimon/logrusr/v4 v4.1.0
github.com/go-git/go-git/v5 v5.12.0
github.com/go-playground/webhooks v5.17.0+incompatible
github.com/google/go-cmp v0.6.0
github.com/google/go-github/v50 v50.2.0
github.com/hashicorp/go-version v1.7.0
github.com/hashicorp/hc-install v0.6.4
github.com/hashicorp/terraform-exec v0.19.0
github.com/labstack/echo/v4 v4.11.4
github.com/patrickmn/go-cache v2.1.0+incompatible
github.com/spf13/cobra v1.7.0
github.com/spf13/pflag v1.0.5
github.com/spf13/viper v1.18.2
github.com/xanzy/go-gitlab v0.93.2
golang.org/x/oauth2 v0.20.0
k8s.io/api v0.30.2
deploy/charts/burrito/values.yaml
sealio/hermitcrab main
ghcr.io/padok-team/burrito
manifests/base/kustomization.yaml
ghcr.io/padok-team/burrito main
ui/package.json
@floating-ui/react ^0.26.9
@tanstack/react-query ^5.8.3
@tanstack/react-table ^8.10.7
axios ^1.5.1
react ^18.2.0
react-dom ^18.2.0
react-router-dom ^6.16.0
react-tooltip ^5.21.6
tailwind-merge ^2.0.0
@types/react ^18.3.2
@types/react-dom ^18.2.19
@typescript-eslint/eslint-plugin ^7.1.0
@typescript-eslint/parser ^7.1.0
@vitejs/plugin-react-swc ^3.3.2
autoprefixer ^10.4.17
eslint ^8.56.0
eslint-plugin-react-hooks ^4.6.0
eslint-plugin-react-refresh ^0.4.5
postcss ^8.4.35
tailwindcss ^3.4.3
typescript ^5.3.3
vite ^5.2.12
We want the controller to be notified when a PR/MR is opened on a given layer. When it's the case, we want to generate a new TerraformLayer
which will be temporary to run only the plans.
Ideally, the controller/runner should send the result of the plan as a comment in the MR/PR
Currently, we use the same state to start an apply coming from a drift and a webhook event, we should seperate them
Repository URL comparison
For GitHub events we compare the repository url to webUrl and the sshUrl received in the webhook.
We should be able to parse thos url, reducing the number of compraisons.
For GitLab, we do not comprae to any sshUrl at the moment
Multiple files triggering layer plan
Today our webhook only checks for change in the path of the layer
For Terraform codebases that have local modules we need to be able to specify those modules' paths
For Terragrunt it's especially important as there is multiple levels of inputs
Currently, the runner will not be able to init a codebas eusing private terraform modules
golang:alpine
is not needed for the final stage of the Dockerfile--no-cache
can be added to apk
The merging logic we have make a list corev1.EnvVar without retrieving the valueFrom field.
We should implement a new runner type to handle terragrunt.
Also, we need to discuss wether terraform and terragrunt codebases will be handled through the same CRDs or with different CRDs
Handle
method of the Webhook
objectThe Makefile
generates the CRDs in the config
folder but does not update the manifests/all.yaml
file
Make sure that burrito only watches the namespaces present in config
I thought about a specific use case: most of my Terraform codebase is somewhat idempotent. If you don't change anything in the code, after a successful apply all following plan/apply will find no changes to apply.
However I have some specific parts which might change, for example
For these specific changes, which can appear at any time, I would expect Burrito to notify me about this drift. However, I know that I can also blindy apply theses changes since it is common and mastered operations.
For other drifts however, it might be dangerous to apply blindly (for example reverting a manual hotfix in prod) and the planOnly mode of Burrito is more interesting.
I don't have an idea for an interface for this kind of configuration, but being able to have a selective "auto-apply" for know changes would we interesting
Support for :
Currently, you cannot add your ownenv variables in the runner execution
It would be nice to discuss in this thread which struct
methods and functions need to be exposed outside their own packages
Anyone who's coming on the repo can not understand the purpose of Burrito, a more complete readme could help :)
Currently a Terraform plan/apply failure in the runner does not result in an error.
It puts the runner.terraform.padok.cloud/plan-date
or runner.terraform.padok.cloud/apply-date
, resulting in the controller to believe that a plan was successfully generated for this layer (or apply successfully applied).
This code snippet should be adapted:
burrito/internal/runner/runner.go
Lines 83 to 96 in 6f45c0b
Also, and as stated in #27, runner should exit with a code greater than 0 when Terraform/Terragrunt fails inside the pod.
We need to check the repository status to handle the case where an event was not handled well
Currently, to connect the pull request controller to GitHub we only handle the use of an API Token. This token belongs to a user, not an organization. We should allow the use of a GitHub app which belongs to an organization
For a git repository, branch
is a subset of ref
which can include branch but also tags, commit, etc...
For argo app CRD, they use targetRevision
instead.
Anyway, I think that naming this variable "ref" would still work for branch, but also enable some different uses cases such as testing on one commit or tag. Since it is a breaking change, it would be way easier to change it right away before there is any adoption.
However forcing the use of a branch
can be an opinionated idea to push for a gitops/trunk workflow in all projects
Currently, if a terraform command fails. A new runner will be restarted indefinitely. We should implement an exponential back-off retry
We're seeing emerging usecases as Burrito grows in complexity :
As stated in PR #144, CLI flags are not unit tested.
They should take precedence over configuration files, but not over environment variables.
Currently, after an apply has ran, we do not re-run a plan to make sure that everything is really up to date
The runner should exit on error
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.