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

v1 Release Dashboard Support #2598

Closed
JeromeJu opened this issue Nov 23, 2022 · 4 comments · Fixed by #2649
Closed

v1 Release Dashboard Support #2598

JeromeJu opened this issue Nov 23, 2022 · 4 comments · Fixed by #2649
Assignees
Labels
kind/feature Categorizes issue or PR as related to a new feature. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release.

Comments

@JeromeJu
Copy link
Member

Feature request

V1 CRDs are released in tektoncd/pipeline#5579 and this issue tracks down the according requests for the v1 support in dashboard.

@JeromeJu JeromeJu added the kind/feature Categorizes issue or PR as related to a new feature. label Nov 23, 2022
@tekton-robot
Copy link
Contributor

@JeromeJu:
This request has been marked as needing help from a contributor.

Please ensure the request meets the requirements listed here.

If this request no longer meets these requirements, the label can be removed
by commenting with the /remove-help command.

In response to this:

/help

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@tekton-robot tekton-robot added the help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. label Nov 23, 2022
@AlanGreene
Copy link
Member

AlanGreene commented Nov 23, 2022

The Dashboard will move to requesting v1 Pipeline resources when the minimum supported Pipeline release serves v1 resources, so that's likely another 3 or more releases.

When the time comes the actual code change should be relatively small, updating the default version used on requests from v1beta1 to v1 at

version = 'v1beta1'
, and overriding this for any resources remaining at v1beta1.

There may also be some opportunity for cleanup, removing fields that are no longer used, etc.

@AlanGreene AlanGreene removed the help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. label Nov 23, 2022
@afrittoli afrittoli added the priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. label Nov 24, 2022
@afrittoli
Copy link
Member

The Dashboard will move to requesting v1 Pipeline resources when the minimum supported Pipeline release serves v1 resources, so that's likely another 3 or more releases.

I think it may be confusing for users, if they install the latest pipeline and dashboard, convert their resources to v1 and see the v1beta1 resources through the dashboard.

Is it possible to customise the behaviour of dashboard based on the version of pipeline installed?
If so, dashboard could start displaying v1 resources if the version of pipeline installed is at least the one where we start storing v1 in etcd.

@AlanGreene
Copy link
Member

AlanGreene commented Nov 24, 2022

It's the same process we followed for the move from v1alpha1 to v1beta1. The conversion works in both directions, so no matter which version we choose it may cause confusion for some users, for example If I'm still using v1beta1 resources I might be surprised to see them as v1 in the Dashboard.

Is it possible to customise the behaviour of dashboard based on the version of pipeline installed?

Maybe, but it would not be a simple task. The Dashboard currently assumes it's dealing with a single version for any given resource kind, and the APIs would need to be dynamically updated based on additional information from the back end.

2 options I currently see for this:

  • hardcode the apiVersion based on Pipelines release version
    • I'm generally not a fan of hardcoding versions / capabilities where it can be avoided
  • dynamically determine the served / stored resource versions by requesting the CRDs and inspecting the served field on each version or the storedVersions field
    • can we load all Tekton CRDs in a single request or would we require a request per kind?
      we could do something like GET /apis/apiextensions.k8s.io/v1/customresourcedefinitions?labelSelector=app.kubernetes.io%2Fpart-of%3Dtekton-pipelines to get all of Tekton Pipelines' CRDs

Both of these would require changes to how the API calls are currently made, delaying them until this additional information is available.

Another option that might be a little easier to implement (and give users control), would be to add a toggle on the settings page to enable v1 resources. A temporary opt-in until it becomes the default in a later release.

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. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release.
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

4 participants