Skip to content
This repository has been archived by the owner on Jun 19, 2022. It is now read-only.

Remove v1alpha1 support for our Resources #1544

Closed
nachocano opened this issue Aug 4, 2020 · 12 comments
Closed

Remove v1alpha1 support for our Resources #1544

nachocano opened this issue Aug 4, 2020 · 12 comments
Assignees
Labels
area/api APIs area/broker area/channels area/sources kind/feature-request New feature or request kind/good-first-issue priority/1 Blocks current release defined by release/* label or blocks current milestone storypoint/5
Milestone

Comments

@nachocano
Copy link
Member

Problem
In #1435, we agreed to remove v1alpha1 versions of all our resources.
We should do this after 0.17 cuts.
We should add a migration tool for our users to run before upgrading to 0.18, so that we can move all of their resources to v1beta1 (or v1).

Persona:
Developer

Exit Criteria
v1alpha1 is not served and is removed from our codebase.

** Additional Context **
See #1435 for more context

@nachocano nachocano added the kind/feature-request New feature or request label Aug 4, 2020
@akashrv akashrv added this to the Backlog milestone Aug 4, 2020
@nachocano nachocano added priority/2 Nice to have feature but doesn't block current release defined by release/* storypoint/5 labels Aug 10, 2020
@nachocano nachocano added priority/1 Blocks current release defined by release/* label or blocks current milestone and removed priority/2 Nice to have feature but doesn't block current release defined by release/* labels Aug 17, 2020
@nachocano
Copy link
Member Author

This should be done before #1413
Also, v1alpha1 ducks in eventing are going to be removed. We need to remove our Channel v1alpha1 that uses those ducks fast if we want to keep on updating dependencies. See knative/eventing#3789

@nachocano
Copy link
Member Author

@bharattkukreja this will involve removing a bunch of code and update necessary docs if needed
I think the migration tool can be done as part of #1482

@danyinggu
Copy link
Contributor

danyinggu commented Aug 31, 2020

I did some investigation. Since we haven't had any migration tool before, there might be some customers still using the old cluster with v1alpha1 as the storage version for some sources. If we remove v1alpha1 support before these users migrate their storage version, their side will be crashed. I created a cluster with v1alpha1 as the storage version and serves v1beta1 and v1, then upgrade my cluster without v1alpha1 support (with v1alpha1.served=false, v1alpha1.storage=false), then the existing pods which stored as v1alpha1 will be crashed by

k describe cloudpubsubsources.v1.events.cloud.google.com
Error from server: conversion webhook for events.cloud.google.com/v1alpha1, Kind=CloudPubSubSource failed: conversion not supported for type [kind=CloudPubSubSource group=events.cloud.google.com version=v1alpha1]

 k get sources
Error from server: conversion webhook for events.cloud.google.com/v1alpha1, Kind=CloudPubSubSource failed: conversion not supported for type [kind=CloudPubSubSource group=events.cloud.google.com version=v1alpha1]

The root cause is that it needs the conversion logic from v1alpha1 to a higher version, but v1alpha1's logic is removed.
I think we should:

  1. Delay the removal of v1alpha1 to the next release so that customers can migrate their storage version to get rid of v1alpha1 as the storage version first.
  2. Expand the migration tool to add CloudBuildSource and Channel of v1beta1 storage version (not v1) in this release to make sure customers migrate to v1beta1 for these resources.

@danyinggu
Copy link
Contributor

Synced with @nachocano offline. We agreed that

  1. We remove v1alpha1 in 0.19
  2. We migrate storage of Channel and CloudBuild to v1beta1 in 0.18

So this issue will be blocked until 0.19.

@nachocano
Copy link
Member Author

Removing the milestone here, as this is blocked

@danyinggu
Copy link
Contributor

@nachocano Is there anyone planning to pick up this? If not, I can go for this.

@danyinggu danyinggu self-assigned this Sep 30, 2020
@nachocano
Copy link
Member Author

@nachocano Is there anyone planning to pick up this? If not, I can go for this.

I was thinking of giving this to @eclipselu but he has some other issues to work on first. If you are free and want to go for it, you are more than welcome to do so. Otherwise we can wait a bit

@danyinggu
Copy link
Contributor

@nachocano Is there anyone planning to pick up this? If not, I can go for this.

I was thinking of giving this to @eclipselu but he has some other issues to work on first. If you are free and want to go for it, you are more than welcome to do so. Otherwise we can wait a bit

Ok. Thanks for clarifying! Just want to see if we need help with this as it was unassigned. But yeah this is a great issue for ramping up. Let's see if Lu has free cycle then. Please let me know if I can help later.

@danyinggu danyinggu removed their assignment Sep 30, 2020
@grantr
Copy link
Contributor

grantr commented Oct 7, 2020

The v1alpha Channelable duck is likely to be removed in 0.19 (knative/eventing#3881). The v1alpha1 PubSub Channel uses v1alpha1 Channelable, but v1beta1 Channel does not.

If we can't drop support for v1alpha1 Channel by 0.19 (I'm not sure we can, since we need to do a post-install job to convert), then we'll need to figure out how to keep v1alpha1 channelable code (by copying it into this repo) OR upgrade v1alpha1 Channel to use v1beta1 channelable.

@capri-xiyue capri-xiyue modified the milestones: v0.19.0-M1, Backlog Oct 8, 2020
@eclipselu eclipselu self-assigned this Oct 19, 2020
@grantr
Copy link
Contributor

grantr commented Oct 20, 2020

(I'm not sure we can, since we need to do a post-install job to convert)

@eclipselu points out that we have a pre-install job in 0.18 that converts all v1alpha1 Channels to v1beta1 (#1653). So it should be safe to drop v1alpha1 Channel in 0.19.

@nlopezgi
Copy link
Contributor

I actually think we should consider switching the pre-install job for 0.18 that was just created and move it to a post install job. Pre-install jobs are heavily discouraged.

@eclipselu
Copy link
Contributor

eclipselu commented Oct 27, 2020

Closing as the necessary PRs are merged, this is scheduled to release in v0.19.

Only BrokerCell is in v1alpha1 now since this is the only version it supports.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area/api APIs area/broker area/channels area/sources kind/feature-request New feature or request kind/good-first-issue priority/1 Blocks current release defined by release/* label or blocks current milestone storypoint/5
Projects
None yet
Development

No branches or pull requests

7 participants