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

Path to a beta API version #712

Closed
a-thaler opened this issue Jan 15, 2024 · 1 comment
Closed

Path to a beta API version #712

a-thaler opened this issue Jan 15, 2024 · 1 comment
Assignees
Labels
area/manager Manager or module changes kind/decision Marks a decision document
Milestone

Comments

@a-thaler
Copy link
Collaborator

a-thaler commented Jan 15, 2024

Description

The telemetry API should head towards a proper v1 version. For the logs and trace API, smaller things should get adjusted like changing the status to be conform to k8s conventions (#601). For logs the OTLP support will introduce a breaking change (#556).

The goal is to get a streamlined API with a betaV1 version and then do the switch to V1 if there is no major feedback. For going that way, a more detailed path needs to be outlined - when to switch the version for which resource and in which order.

Criterias

  • Outline in more detail a plan how to get to a betaV1 version for all types
  • Answer following questions:
    • Can we have in between a beta version for trace and metrics already but not for logs (yet) - to decouple the activities
    • Can we have two version at the same time without automatic conversion? What are the implications on the code base?
    • What does it require to have a conversion webhook? Other teams had problems, talk to tunas for example
    • Is there a way to figure out usage of old API if conversion is in place
@a-thaler a-thaler changed the title Version questions Path to a beta API version Jan 15, 2024
@a-thaler a-thaler added area/manager Manager or module changes kind/decision Marks a decision document labels Jan 15, 2024
@skhalash skhalash self-assigned this Jan 23, 2024
@skhalash skhalash added this to the 1.8.0 milestone Feb 1, 2024
@a-thaler a-thaler modified the milestones: 1.8.0, 1.9.0 Feb 1, 2024
@skhalash
Copy link
Collaborator

skhalash commented Feb 2, 2024

The following ADRs will guide us on the path to Telemetry beta API:
#761
#763
#764

Q: Can we have a beta version for trace and metrics already but not for logs (yet) - to decouple the activities
A: No, since versioning is applied to API groups, not kinds

Q: Can we have two versions at the same time without automatic conversion? What are the implications on the code base?
A: No, we can not. Every API server client can read or update every resource at any version.

Q: What does it require to have a conversion webhook? Other teams had problems, talk to Tunas for example
A: An implementation of a conversion webhook is well documented in this example: https://book.kubebuilder.io/multiversion-tutorial/tutorial. Since we already have the required setup for the validation webhook, adding a conversion webhook will not be a difficult task.

Q: Is there a way to figure out the usage of the old API if conversion is in place
A: We can use the following metric: apiserver_crd_conversion_webhook_duration_seconds (https://github.com/kubernetes/apiextensions-apiserver/blob/master/pkg/apiserver/conversion/metrics.go#L62).

@skhalash skhalash closed this as completed Feb 2, 2024
@a-thaler a-thaler mentioned this issue Feb 5, 2024
20 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/manager Manager or module changes kind/decision Marks a decision document
Projects
None yet
Development

No branches or pull requests

2 participants