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

Refactor TektonConfig Reconciler and Cleanup #421

Merged
merged 3 commits into from
Sep 24, 2021

Conversation

sm43
Copy link
Member

@sm43 sm43 commented Sep 24, 2021

Fixes addon component deletion

If clustertask and pipelines templates are disabled then
due to return statement it used to return early without
executing remaning code.


Updates TektonConfig Conditions and cleanup

This updates the tektonconfig conditions and removes
unnecessary code


Removes deletion timestamp check in Autocreation of TektonConfig

If TektonConfig has a deletion stamp, it won't be deleted
unless the operator is up and running as the object has
finalizer. waiting for it to get deleted will stop operator
from running and object still won't be deleted.
hence removing the condition for checking deletion timestamp
and letting user to create a new instance of tektonconfig
after deletion.

Signed-off-by: Shivam Mukhade [email protected]

Submitter Checklist

These are the criteria that every PR should meet, please check them off as you
review them:

See the contribution guide for more details.

Release Notes

If clustertask and pipelines templates are disabled then
due to return statement it used to return early without
executing remaning code.

Signed-off-by: Shivam Mukhade <[email protected]>
@tekton-robot tekton-robot added release-note Denotes a PR that will be considered when it comes time to generate release notes. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels Sep 24, 2021
@tekton-robot
Copy link
Contributor

The following is the coverage report on the affected files.
Say /test pull-tekton-operator-go-coverage to re-run this coverage report

File Old Coverage New Coverage Delta
pkg/apis/operator/v1alpha1/tektonaddon_types.go 0.0% 33.3% 33.3
pkg/apis/operator/v1alpha1/tektonconfig_lifecycle.go 76.5% 40.0% -36.5
pkg/apis/operator/v1alpha1/tektonconfig_types.go 50.0% 33.3% -16.7

Comment on lines 30 to 32
PreReconciler,
ComponentsReady,
PostReconciler,
Copy link
Contributor

Choose a reason for hiding this comment

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

I assume these conditions are displayed on status and i think PreReconciler and PostReconciler words are more towards technical

May i know the reason behind removing old conditions

Copy link
Member

Choose a reason for hiding this comment

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

PreReconciler and PostReconciler words are more towards technical

I agree with this. It would be great if we could rename it with something that indicates the objective/end result of the action. It doesn't has to be precise. Even PreInstall PostInstall will be better.

Copy link
Member Author

@sm43 sm43 Sep 24, 2021

Choose a reason for hiding this comment

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

yeah PreInstall PostInstall will also be nice
also we do want to break down the component status in some way
currently the componentsready cond will show any error
but in further interation we do want to find a better way for it

Copy link
Member

Choose a reason for hiding this comment

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

Note that if we change what is written in the Status (the name of the condition, …), we need to validate other tools that are depending on this won't be broken (e.g. openshift console, …)

Copy link
Member

Choose a reason for hiding this comment

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

(because we are changing the API)

Copy link
Member Author

Choose a reason for hiding this comment

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

yeah in this case we are chaning the api
we have removed the manifest field from status
and updated conditions
what tools do we have to validate? 🤔

@nikhil-thomas
Copy link
Member

/approve

@tekton-robot tekton-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Sep 24, 2021
@sm43
Copy link
Member Author

sm43 commented Sep 24, 2021

/hold
to rename the conditions

@tekton-robot tekton-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Sep 24, 2021
}

func (a Addon) IsEmpty() bool {
return reflect.DeepEqual(a, Addon{})
Copy link
Member

Choose a reason for hiding this comment

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

Any reason to use reflect here instead of just len(a.Params) == 0 ?
We should avoid using reflect when we can, it's kind-of costly for.. not always a valid reason to be.

Copy link
Member Author

Choose a reason for hiding this comment

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

yeah len of param would work...
@vdemeester how about using equality.Semantic.DeepEqual not in this case but here is that okay compared to reflect?

Copy link
Member

Choose a reason for hiding this comment

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

Maybe yes ? My point is just that we should aim to use as less as possible reflect and those things.. but when we don't have the choice .. 😛

Comment on lines 30 to 32
PreReconciler,
ComponentsReady,
PostReconciler,
Copy link
Member

Choose a reason for hiding this comment

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

Note that if we change what is written in the Status (the name of the condition, …), we need to validate other tools that are depending on this won't be broken (e.g. openshift console, …)

Comment on lines 30 to 32
PreReconciler,
ComponentsReady,
PostReconciler,
Copy link
Member

Choose a reason for hiding this comment

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

(because we are changing the API)

pkg/apis/operator/v1alpha1/tektonconfig_lifecycle_test.go Outdated Show resolved Hide resolved
Comment on lines -34 to +43
// GroupVersionKind returns SchemeGroupVersion of a TektonConfig
func (tp *TektonConfig) GroupVersionKind() schema.GroupVersionKind {
func (tc *TektonConfig) GroupVersionKind() schema.GroupVersionKind {
return SchemeGroupVersion.WithKind(KindTektonConfig)
}

// GetCondition returns the current condition of a given condition type
func (tps *TektonConfigStatus) GetCondition(t apis.ConditionType) *apis.Condition {
return configCondSet.Manage(tps).GetCondition(t)
func (tc *TektonConfig) GetGroupVersionKind() schema.GroupVersionKind {
return SchemeGroupVersion.WithKind(KindTektonConfig)
Copy link
Member

Choose a reason for hiding this comment

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

Any reason to have both ?

Copy link
Member Author

Choose a reason for hiding this comment

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

GroupVersionKind can be removed now.. will update !

Copy link
Member Author

@sm43 sm43 Sep 24, 2021

Choose a reason for hiding this comment

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

in generated code and internally in knative/pkg GroupVersionKind is used, in some transformer
GetGroupVersionKind is defined so that we can used in FilterController

tektonTriggerinformer.Get(ctx).Informer().AddEventHandler(cache.FilteringResourceEventHandler{
			FilterFunc: controller.FilterController(&v1alpha1.TektonConfig{}),
			Handler:    controller.HandleAll(impl.EnqueueControllerOf),
		})

so lets keep GroupVersionKind also
i will take a deep look and then remove

@tekton-robot
Copy link
Contributor

The following is the coverage report on the affected files.
Say /test pull-tekton-operator-go-coverage to re-run this coverage report

File Old Coverage New Coverage Delta
pkg/apis/operator/v1alpha1/tektonaddon_types.go 0.0% 60.0% 60.0
pkg/apis/operator/v1alpha1/tektonconfig_lifecycle.go 76.5% 40.0% -36.5
pkg/apis/operator/v1alpha1/tektonconfig_types.go 50.0% 33.3% -16.7

Shivam Mukhade added 2 commits September 24, 2021 15:12
This updates the tektonconfig conditions and removes
unnecessary code.

Signed-off-by: Shivam Mukhade <[email protected]>
If TektonConfig has a deletion stamp, it won't be deleted
unless the operator is up and running as the object has
finalizer. waiting for it to get deleted will stop operator
from running and object still won't be deleted.
hence removing the condition for checking deletion timestamp
and letting user to create a new instance of tektonconfig
after deletion.

Signed-off-by: Shivam Mukhade <[email protected]>
@tekton-robot
Copy link
Contributor

The following is the coverage report on the affected files.
Say /test pull-tekton-operator-go-coverage to re-run this coverage report

File Old Coverage New Coverage Delta
pkg/apis/operator/v1alpha1/tektonaddon_types.go 0.0% 33.3% 33.3
pkg/apis/operator/v1alpha1/tektonconfig_lifecycle.go 76.5% 40.0% -36.5
pkg/apis/operator/v1alpha1/tektonconfig_types.go 50.0% 33.3% -16.7

@sm43
Copy link
Member Author

sm43 commented Sep 24, 2021

/hold cancel

@tekton-robot tekton-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Sep 24, 2021
@vdemeester
Copy link
Member

/approve

@tekton-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: nikhil-thomas, vdemeester

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:
  • OWNERS [nikhil-thomas,vdemeester]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@nikhil-thomas
Copy link
Member

/lgtm

@tekton-robot tekton-robot added the lgtm Indicates that a PR is ready to be merged. label Sep 24, 2021
@tekton-robot tekton-robot merged commit 3c77c77 into tektoncd:main Sep 24, 2021
@sm43 sm43 deleted the refactor-config branch October 10, 2021 15:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants