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

[BETA] Add kubernetes_stateful_set resource #45

Closed
wants to merge 1 commit into from

Conversation

sl1pm4t
Copy link
Contributor

@sl1pm4t sl1pm4t commented Aug 11, 2017

This PR adds thekubernetes_stateful_set resource.

I know the policy on beta resources, and don't expect this to be merged until the API is stable.

@radeksimko
Copy link
Member

I know the policy on beta resources, and don't expect this to be merged until the API is stable.

I appreciate you noticed the note 🙂

As we don't know (or certainly I don't) when the resource hits v1 API the PR may become stale and get into (git) conflict with some other PRs that we'll merge in the meantime. Do you therefore mind me closing this PR for now?

@sl1pm4t
Copy link
Contributor Author

sl1pm4t commented Aug 12, 2017

Do you therefore mind me closing this PR for now?

@radeksimko - yes no problem. I just posted the PR so people can find a fork with the supported resource if they need it.

In regards to handling beta resources - what if we did something like:

  • Now - Create a resource with _beta suffix - e.g. (kubernetes_stateful_set_beta) and add to the official Provider.
  • Later - When the API becomes stable, we port that to a GA resource - e.g. (kubernetes_stateful_set) and make sure the GA resource is importable. We would also leave the _beta resource in for a deprecation cycle.

In this way, it's clear the resource is beta - so "user beware". There's little or no risk of BC problems because there's no direct path from the Beta API to GA. Also we'd be providing a fairly "low friction", albeit manual path from the beta to GA resource once it becomes available.

@radeksimko
Copy link
Member

I just posted the PR so people can find a fork with the supported resource if they need it.

I don't mind adding link(s) to the Readme for the time being if discoverability is what you're looking for. As long as it comes with clear warning along the lines of "no guarantees" (that's not to downsell your efforts, but to set expectations) I'm ok with that.

Create a resource with _beta suffix - e.g. (kubernetes_stateful_set_beta) and add to the official Provider.

I believe the _beta suffix is something we did discuss in the past, in fact we kind of already tried that approach in Fastly: https://www.terraform.io/docs/providers/fastly/r/service_v1.html

The main downsides are that this potentially results in duplicated code (both code & docs) if you want a real isolation and (more importantly) that we don't have a mechanism to deprecate a whole resource yet.


We're continuously (re)evaluating the idea of supporting alpha/beta APIs in Terraform. It affects other providers too, K8S is not a special case there.

Google Cloud is affected significantly as many resources there remain in alpha/beta for a long time and there's also high demand for those resources within the community, so folks from Google (maintaining that provider) are evaluating one approach. I can't predict how this will go from either code maintenance perspective or how users will or won't accept it in terms of UX. If it works out well I'd be happy to replicate a success in K8S.

Thanks for understanding and patience.

@stigok
Copy link

stigok commented Apr 19, 2018

StatefulSets are stable (GA) in 1.9.
https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/

Is this pull request still up to date?

@sl1pm4t sl1pm4t deleted the statefulset branch May 3, 2018 21:52
@ghost ghost locked and limited conversation to collaborators Apr 21, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants