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

TEP0138 Per-feature Flags Improvement to Decouple API and Feature Versioning #7177

Closed
10 tasks done
Tracked by #6966
JeromeJu opened this issue Oct 5, 2023 · 3 comments
Closed
10 tasks done
Tracked by #6966
Assignees
Labels
kind/feature Categorizes issue or PR as related to a new feature.

Comments

@JeromeJu
Copy link
Member

JeromeJu commented Oct 5, 2023

This issue tracks progress on per-feature flags improvements, documentation updates for API/feature versioning decoupling. This defines the work plan to guide the implementation process.

Context

[TEP-0138]: Decouple API and Feature Versioning proposes to solve the existing coupling of the group feature flag enable-api-fields by changing to use per-feature flags for new API-driven features in Tekton Pipeline. With the consensus made in WG, the implementation aims to achieve the following goals:

  • Feature validations and implementation should be independent from any API version.
  • Easy migration plan for setting feature flags to enable stable features only by default in the long term.
  • Changes and updates made to the existing feature validations regarding decoupling API and feature versioning should keep as much backwards compatibility as possible.
  • Cluster operators can enable or disable any new features of the intended stability level.

Design doc: TEP0138
Epic: #6966

Work Plan

  1. Change existing validation to decouple feature and API versioning.

  2. Mend the gap between the validations of the stable features in v1 and v1beta1 by syncing up the validations in v1beta1.

  3. Developer guide and API compatibility policies update; broadcasting in the community that we are shifting to per-feature flags:

  4. Implementation of Per Feature Feature Flags #5632

  5. After the release of the new Per-feature flag API compatibility policy and after new feature flags come in; once we have more new features using the new per-feature flag:

  6. Per feature flag test suite & CI setup:

  7. Tekton feature flags user-facing guide:

Cross-project Constraints

For followup on the security side, [Nov-18] I have communicated with @chuangw6 that we would not need to capture stability level in provenance for chains.

Future work

  • Script to update the existing documentation for non-stable features.
  • Quarterly alpha feature review to come up to review current features in alpha & beta to ensure per-feature flag usage.
@JeromeJu JeromeJu added the kind/feature Categorizes issue or PR as related to a new feature. label Oct 5, 2023
JeromeJu added a commit to JeromeJu/pipeline that referenced this issue Oct 5, 2023
This commit adds the feature graduation process documentation to the
API compatibility policy. It aims to mitigate the confusions of API
versioning that was coupled with feature versioning as in tektoncd#6592.

part of: tektoncd#7177
related: TEP0138

/kind documentation
JeromeJu added a commit to JeromeJu/pipeline that referenced this issue Oct 5, 2023
This commit moves the Task.Validate and Pipeline.Validate back to
TaskSpec.Validate and PipelineSpec.Validate. This serves the same
purpose of fixing tektoncd#7077.

part of: tektoncd#7177
related: TEP0138

/kind misc
JeromeJu added a commit to JeromeJu/pipeline that referenced this issue Oct 5, 2023
This commit adds the feature graduation process documentation to the
API compatibility policy. It aims to mitigate the confusions of API
versioning that was coupled with feature versioning as in tektoncd#6592.
The graduation process clarifies the independence of feature versions
from API versions.

part of: tektoncd#7177
related: TEP0138

/kind documentation
JeromeJu added a commit to JeromeJu/pipeline that referenced this issue Oct 5, 2023
This commit adds the feature graduation process documentation to the
API compatibility policy. It aims to mitigate the confusions of API
versioning that was coupled with feature versioning as in tektoncd#6592.
The graduation process clarifies the independence of feature versions
from API versions.

part of: tektoncd#7177
related: TEP0138

/kind documentation
JeromeJu added a commit to JeromeJu/pipeline that referenced this issue Oct 5, 2023
This commit adds the feature graduation process documentation to the
API compatibility policy. It aims to mitigate the confusions of API
versioning that was coupled with feature versioning as in tektoncd#6592.
The graduation process clarifies the independence of feature versions
from API versions.

part of: tektoncd#7177
related: TEP0138

/kind documentation
tekton-robot pushed a commit that referenced this issue Oct 6, 2023
This commit adds the feature graduation process documentation to the
API compatibility policy. It aims to mitigate the confusions of API
versioning that was coupled with feature versioning as in #6592.
The graduation process clarifies the independence of feature versions
from API versions.

part of: #7177
related: TEP0138

/kind documentation
@vdemeester vdemeester added this to the Pipelines v0.53 LTS milestone Oct 10, 2023
JeromeJu added a commit to JeromeJu/pipeline that referenced this issue Oct 10, 2023
This commit moves the Task.Validate and Pipeline.Validate back to
TaskSpec.Validate and PipelineSpec.Validate. This serves the same
purpose of fixing tektoncd#7077.

part of: tektoncd#7177
related: TEP0138

/kind misc
JeromeJu added a commit to JeromeJu/pipeline that referenced this issue Oct 12, 2023
This commit moves the Task.Validate and Pipeline.Validate back to
TaskSpec.Validate and PipelineSpec.Validate. This serves the same
purpose of fixing tektoncd#7077.

part of: tektoncd#7177
related: TEP0138

/kind misc
JeromeJu added a commit to JeromeJu/pipeline that referenced this issue Oct 17, 2023
This commit moves the Task.Validate and Pipeline.Validate back to
TaskSpec.Validate and PipelineSpec.Validate. This serves the same
purpose of fixing tektoncd#7077.

part of: tektoncd#7177
related: TEP0138

/kind misc
JeromeJu added a commit to JeromeJu/pipeline that referenced this issue Oct 18, 2023
This commit moves the Task.Validate and Pipeline.Validate back to
TaskSpec.Validate and PipelineSpec.Validate. This serves the same
purpose of fixing tektoncd#7077.

part of: tektoncd#7177
related: TEP0138

/kind misc
JeromeJu added a commit to JeromeJu/pipeline that referenced this issue Oct 19, 2023
This commit moves the Task.Validate and Pipeline.Validate back to
TaskSpec.Validate and PipelineSpec.Validate. This serves the same
purpose of fixing tektoncd#7077.

part of: tektoncd#7177
related: TEP0138

/kind misc
JeromeJu added a commit to JeromeJu/pipeline that referenced this issue Oct 20, 2023
This commit moves the Task.Validate and Pipeline.Validate back to
TaskSpec.Validate and PipelineSpec.Validate. This serves the same
purpose of fixing tektoncd#7077.

part of: tektoncd#7177
related: TEP0138

/kind misc
JeromeJu added a commit to JeromeJu/pipeline that referenced this issue Oct 23, 2023
This commit moves the Task.Validate and Pipeline.Validate back to
TaskSpec.Validate and PipelineSpec.Validate. This serves the same
purpose of fixing tektoncd#7077.

part of: tektoncd#7177
related: TEP0138

/kind misc
JeromeJu added a commit to JeromeJu/pipeline that referenced this issue Oct 24, 2023
This commit moves the Task.Validate and Pipeline.Validate back to
TaskSpec.Validate and PipelineSpec.Validate. This serves the same
purpose of fixing tektoncd#7077.

part of: tektoncd#7177
related: TEP0138

/kind misc
JeromeJu added a commit to JeromeJu/pipeline that referenced this issue Oct 24, 2023
This commit moves the Task.Validate and Pipeline.Validate back to
TaskSpec.Validate and PipelineSpec.Validate. This serves the same
purpose of fixing tektoncd#7077.

part of: tektoncd#7177
related: TEP0138

/kind misc
tekton-robot pushed a commit that referenced this issue Oct 24, 2023
This commit moves the Task.Validate and Pipeline.Validate back to
TaskSpec.Validate and PipelineSpec.Validate. This serves the same
purpose of fixing #7077.

part of: #7177
related: TEP0138

/kind misc
@afrittoli
Copy link
Member

@JeromeJu can we close this?

@JeromeJu
Copy link
Member Author

JeromeJu commented Oct 25, 2023

@JeromeJu can we close this?

We would still need #7090 to close this one. Would be much appreciated if we could get it merged but this would not need to block the cutoff.

@JeromeJu
Copy link
Member Author

Closing as #7090 is merged. Thanks again for the time and review on this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature.
Projects
None yet
Development

No branches or pull requests

3 participants