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

Add document explaining v1beta1 changes #2902

Merged
merged 2 commits into from
Apr 30, 2024

Conversation

swiatekm
Copy link
Contributor

I ended up adding a more general "CRD changelog" document, with the first entry explaining the v1alpha1 -> v1beta1 transition. We can put other, similar sections in here in the future, for example introducing new CRDs.

@swiatekm swiatekm added the Skip Changelog PRs that do not require a CHANGELOG.md entry label Apr 26, 2024
@swiatekm swiatekm requested a review from a team April 26, 2024 10:50
docs/crd-changelog.md Outdated Show resolved Hide resolved
docs/crd-changelog.md Outdated Show resolved Hide resolved

### Structured Configuration

The `Config` field containing the Collector configuration is a string in `v1alpha1`. This has some downsides:
Copy link
Member

Choose a reason for hiding this comment

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

I would call out the limitation with kustomize and other tools

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I called it out below, would you prefer it closer to the start of the section?

```

> [!NOTE]
> Empty maps, like `debug:` in the above configuration, should have an explicit value of `{}`.
Copy link
Member

Choose a reason for hiding this comment

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

!! :)

@swiatekm swiatekm requested a review from pavolloffay April 26, 2024 12:53
docs/crd-changelog.md Outdated Show resolved Hide resolved
@swiatekm swiatekm force-pushed the docs/v1beta1-release branch from 75d5731 to 528e30e Compare April 27, 2024 16:42
@swiatekm swiatekm requested a review from jaronoff97 April 29, 2024 09:57

There is no need for any immediate user action. The operator will automatically convert existing `v1alpha1` resources to `v1beta1`.

However, the conversion procedure will leave your resources stored as both versions. Support for `v1alpha1` will be removed in the future.
Copy link
Member

Choose a reason for hiding this comment

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

This is not accurate, but rather misleading.

the conversion procedure will leave your resources stored as both versions.

The custom resources stored as v1alpha1 are not automatically updated to v1beta1. The updated or newly written cutom resources will be stored as v1beta1 because it is the new storage version.

I would also link https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/#upgrade-existing-objects-to-a-new-stored-version

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ok, how about:

There is no need for any immediate user action. The operator will continue to support existing `v1alpha1` resources.

In addition, any newly applied `v1alpha1` resource will be converted to `v1beta1` and stored as both versions. The plan is to remove support for `v1alpha1` in a future version, so users should migrate promptly.

(detailed migration guide here)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I put the link at the end of the guide, as I don't want to immediately force users to digest the rather extensive and technical K8s documentation for this process.

Copy link
Member

Choose a reason for hiding this comment

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

and stored in the new API version.


### Migration

There is no need for any immediate user action. The operator will automatically convert existing `v1alpha1` resources to `v1beta1`.
Copy link
Member

Choose a reason for hiding this comment

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

The operator will automatically convert existing v1alpha1 resources to v1beta1.

I would rephrase this. Yes there is conversion webhook but for migration from v1alpha1 to v1beta1 an update on the CR must happen

@swiatekm swiatekm mentioned this pull request Apr 30, 2024
@swiatekm swiatekm force-pushed the docs/v1beta1-release branch from 528e30e to 7082b59 Compare April 30, 2024 14:18
@swiatekm swiatekm requested a review from pavolloffay April 30, 2024 14:19
@pavolloffay pavolloffay merged commit 5ca66dd into open-telemetry:main Apr 30, 2024
31 checks passed
ItielOlenick pushed a commit to ItielOlenick/opentelemetry-operator that referenced this pull request May 1, 2024
* Add document explaining v1beta1 changes

* Document the CRD stored version migration
ItielOlenick pushed a commit to ItielOlenick/opentelemetry-operator that referenced this pull request May 1, 2024
* Add document explaining v1beta1 changes

* Document the CRD stored version migration
rubenvp8510 pushed a commit to rubenvp8510/opentelemetry-operator that referenced this pull request May 7, 2024
* Add document explaining v1beta1 changes

* Document the CRD stored version migration
@swiatekm swiatekm deleted the docs/v1beta1-release branch July 2, 2024 12:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Skip Changelog PRs that do not require a CHANGELOG.md entry
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants