Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/cluster gitops #47

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open

Feat/cluster gitops #47

wants to merge 5 commits into from

Conversation

garloff
Copy link
Member

@garloff garloff commented Feb 18, 2022

No description provided.

@garloff garloff requested a review from joshmue February 18, 2022 21:40
@garloff
Copy link
Member Author

garloff commented Feb 18, 2022

Signed-off-by: Kurt Garloff <[email protected]>
Comment on lines +37 to +42
Cluster-admin credentials need to be provided to the owners of the cluster.
The current thinking is to have a public key included in the git repo;
the cluster-admin credentials for the created cluster would be encrypted
with this public key and can then be published. (Would still use https
to ensure that these are the true credentials.) Only the owner(s) of
the private key can decrypt the credentials.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://github.com/bitnami-labs/sealed-secrets may be worth looking at for this

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same for SOPS. Flux also has builtin support for it: https://fluxcd.io/docs/guides/mozilla-sops/

## Implementation thoughts

The reconciliation loop would roughly look like this:
1. Get the latest clusters from git (via a regular check or an event)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be done by something like fluxcd, shouldn't it?


The reconciliation loop would roughly look like this:
1. Get the latest clusters from git (via a regular check or an event)
1. Per cluster
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure what (and why) exactly is needed here beyond what already happens when one applies a cluster resource.

In my mind, the workflow would look like: "install fluxcd, register git repository, put cluster manifests in there, done", so this looks very complex. Am I missing anything?

@joshmue
Copy link
Contributor

joshmue commented Feb 21, 2022

I think this topic also is tightly related to what the general user experience should look like when provisioning cloud resources (be it VM instances, storage buckets or Kubernetes clusters).

From a user perspective, IMHO a single, consistent API for all resources would be best, like most big cloud providers have already.

@garloff garloff added the Container Issues or pull requests relevant for Team 2: Container Infra and Tooling label Aug 24, 2022

* Can this be integrated into capo or do we really need to create a loop around it?

* On errors in this loop, we would move to the next cluster. However, how do we handle error reporting?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

on fluxcd: it happen independent on every cluster on the same time (if you have not set an branch, tag (semver parsing included), or gitrepo for each cluster) ...

fluxcd has metrics, we use prometheus to get them and fire alerts, if something does not work.

@mbuechse
Copy link
Contributor

Is this still relevant? I will close this PR if nothing happens by July 31st.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Container Issues or pull requests relevant for Team 2: Container Infra and Tooling
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants