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

Overhaul Kubernetes integration #67

Merged
merged 3 commits into from
Sep 11, 2021
Merged

Overhaul Kubernetes integration #67

merged 3 commits into from
Sep 11, 2021

Conversation

Quentin-M
Copy link
Owner

@Quentin-M Quentin-M commented May 6, 2021

While the etcd-cloud-operator has been serving us amazingly on top of AWS the past several years, support for Kubernetes within the etcd-cloud-operator has been 3rd party contributed and not directly supported / tested. This PR provides a first pass of fixes.

CHANGELOG

  • Removes dependency on the Kubernetes API for discovery
  • Fixes use of PVCs on Kubernetes, as well as snapshot restores on Kubernetes

TODO

  • A lot more (DR) testing, network/node gone, etc
  • Revamp of the manifests, docs, enabling Client TLS by default
  • Idea: optionally bring on a lightweight monitoring stack pre-configured with a dashboard and alerts (I got that handy).

QUICK TESTING

helm template --namespace "dev" --release-name "test" etcd-cloud-operator | kubectl apply -n dev -f -

ironcladlou added a commit to ironcladlou/etcd-cloud-operator that referenced this pull request Sep 10, 2021
Ports the code from Quentin-M#67 but keeps
etcd on version 3.4.
This is a first pass and by no means complete.
- Use static discovery rather than through the Kubernetes API
- Fixes PVCs and snapshot restores
@Quentin-M Quentin-M changed the title Update to etcd 3.5 (alpha) & overhaul Kubernetes integration Overhaul Kubernetes integration Sep 10, 2021
@Quentin-M
Copy link
Owner Author

Quentin-M commented Sep 11, 2021

I am having an issue starting this version of etcd on our dev cluster due to the following error, which is addressed quite nicely in 3.5 by just exposing SO_REUSEPORT, etc. I had to comment out the metrics server, should dive deeper into the issue and/or make metrics configurable if needed.

In the meantime, I think we can merge as this provides value to local testing and Kubernetes usage, which nobody I believe uses and therefore does not require backward compatibility.

level=error msg="failed to seed the cluster" error="failed to start etcd: listen tcp 127.0.0.1:2381: bind: address already in use"
//etcdCfg.ListenMetricsUrls = append(metricsURLs(c.cfg.BindAddress), metricsURLs("127.0.0.1")...)
//etcdCfg.Metrics = "extensive"

@Quentin-M Quentin-M merged commit dbc74b7 into master Sep 11, 2021
@Quentin-M Quentin-M deleted the k8s_static_discovery branch September 11, 2021 00:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant