Comments (6)
I'll get the first version of POC out. We can then discuss and move it forward.
from tf-controller.
@chanwit Looks alright to me.
from tf-controller.
Couple of additional thoughts on this:
- Will we aim to support persistence for the Terraform Runner Pod? This would be required for caching providers etc... Introduces a little complexity as may require a TerraformStatefulRunner in addition to an (ephemeral/one-shot) TerraformRunner.
- Is it our intention to handle TLS generation/rotation within the controller code a la Gatekeeper or can we offload this to cert-manager? It may reduce the initial effort if cert-manager can handle it.
- How is reconcile state distributed between controller & runner, i.e. what does
.status.conditions
look like for the runner? This has knock on implications for how we handle communication and trigger the reconcile loop in tf-controller. I think communicating via status conditions should be the preferred route but it might also be possible to do something similar to flux/notification controller using a gRPC call.
from tf-controller.
Will we aim to support persistence for the Terraform Runner Pod? This would be required for caching providers etc... Introduces a little complexity as may require a TerraformStatefulRunner in addition to an (ephemeral/one-shot) TerraformRunner.
This is a good question. I'm thinking of it as a stateless system. Runner Pod is a gRPC server which allows to crash.
Is it our intention to handle TLS generation/rotation
We'll do our own TLS generation, yes. A goal is to make the controller self-contained
How is reconcile state distributed between controller & runner
Reconciliation process happens only inside the controller using the current set of logics.
Runner Pod will be issued a command, and send output back to the Controller, via gRPC, just like we run that command locally.
from tf-controller.
@phoban01 would you like to further split this epic into other issues?
from tf-controller.
Work done enough to close this issue. We'll fix other related issues along the way.
from tf-controller.
Related Issues (20)
- Unable to see `v0.16.0-rc.3` in releases for tofu HOT 1
- Helm template fails for v0.16.0-rc.4 when you specify imagePullSecrets HOT 4
- Renaming Helm chart to `tofu-controller` HOT 2
- In Helm Chart, change the default serviceAccount name from blank (auto detect) to tf-runner HOT 4
- storeReadablePlan Plan read error HOT 2
- Branch planner does plan for all opened PRs in the repo despite on branch HOT 4
- infra.contrib.fluxcd.io/v1alpha2\": Not Implemented" HOT 2
- BranchPlanner cant create terraform resources in kubernetes (RC4) HOT 2
- Feature: Add cross-namespace writeOutputsToSecret for Terraform HOT 1
- tfVarsFiles schema is missing from the Helm chart CRDs HOT 2
- Makefile and pipline should have pinned versions of dependencies HOT 2
- Branch planner does not comment of PR if plan failed due to post plan web hook HOT 1
- Branch Planner Fails due to missing create & delete RBAC for gitrepositories
- Documentation: better documentation on the differences between vars and values.
- Helm chart 0.16.0-rc.4 issue with runner-discovery-service.yaml HOT 2
- Namesapce flux-system is always needed (helm install) HOT 3
- Helm Support for Customizing Tf-Runner HOT 3
- "https://weaveworks.github.io/tf-controller" is not a valid chart repository or cannot be reached HOT 2
- TF-Runner stuck in Terminating state HOT 2
- Finalizer remains despite dependency was deleted HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tf-controller.