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

Annotate non-stable API levels in imported k8s resources #380

Closed
eladb opened this issue Nov 16, 2020 · 0 comments · Fixed by #379
Closed

Annotate non-stable API levels in imported k8s resources #380

eladb opened this issue Nov 16, 2020 · 0 comments · Fixed by #379
Assignees
Labels
feature-request New/Enhanced functionality wanted needs-triage Priority and effort undetermined yet
Milestone

Comments

@eladb
Copy link
Contributor

eladb commented Nov 16, 2020

Instead of filtering out non-stable API resources in cdk8s import k8s, we should simply append an API level annotation to those classes. For example, in 1.18, it should be IngressV1Beta1 instead of just Ingress. This is more in-line with how k8s API levels work. Before a resource is stable, breaking changes can be introduced. So we want to make sure users (and cdk8s-plus) are more explicit about their usage of non-stable resources.

@eladb eladb added feature-request New/Enhanced functionality wanted needs-triage Priority and effort undetermined yet labels Nov 16, 2020
@eladb eladb added this to the Beta Launch milestone Nov 16, 2020
@eladb eladb self-assigned this Nov 16, 2020
@mergify mergify bot closed this as completed in #379 Nov 17, 2020
mergify bot pushed a commit that referenced this issue Nov 17, 2020
Following this change, when using `cdk8s import` to generate constructs from schemas, the CLI will generate constructs for all API levels and not just the latest stable version.

The name of the generated class will now include the API level, unless this is a `v1` resource. For example, `v1/Pod` will be called `Pod`, while `v1beta1/Ingress` will be called `IngressV1Beta1`.

This change only applies to `cdk8s import k8s` and does not apply when importing CRDs, in which case a single CRD always includes a single resource definition.

BREAKING CHANGE: when importing k8s api objects using `cdk8s import`, non-stable APIs will be have an API level postfix. For example, [email protected] will have an `IngressV1Beta1` API object.
* **cli:** The `--include` CLI option has been removed since all API objects are always imported.

Resolves #380

---

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request New/Enhanced functionality wanted needs-triage Priority and effort undetermined yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants