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

Pick up the latest knative/pkg and K8s 0.17.x #2846

Merged
merged 3 commits into from
Jul 6, 2020

Conversation

mattmoor
Copy link
Member

@mattmoor mattmoor commented Jun 22, 2020

The only other manual changes are:

  1. Call Promote in tests, otherwise our generated reconcilers won't do anything (they aren't the leader!)
  2. Fill in namespaces in a few tests (I believe this is a change in the k8s 0.17.x libs)

The main change with respect to genreconciler is that they will now generate LeaderAware reconcilers. Reconcilers may be sharded across multiple replicas by setting the buckets in config-leaderelection, which will subdivide the key space being reconciled across N buckets, which are individually leader elected.

Right now the sharded reconcilers only light up through our webhook entrypoint in shared main, but I hope to eliminate the split (likely through having mirrored entrypoints for a time) in the near future.

The broader design for this is here: https://docs.google.com/document/d/1i_QHjQO2T3SNv49xjZLWlivcc0UvZN1Tbw2NKxThkyM/edit

The minimum Kubernetes version is now 1.16.

The tekton webhook can now be horizontally scaled by enabling leader election via `enabledComponents: webhook` in `config-leader-election.yaml`

/hold

cc @vdemeester @imjasonh

@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 Jun 22, 2020
@tekton-robot tekton-robot requested review from imjasonh and a user June 22, 2020 23:11
@mattmoor
Copy link
Member Author

/kind cleanup

@tekton-robot tekton-robot added kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Jun 22, 2020
@tekton-robot
Copy link
Collaborator

This PR cannot be merged: expecting exactly one kind/ label

Available kind/ labels are:

kind/bug: Categorizes issue or PR as related to a bug.
kind/flake: Categorizes issue or PR as related to a flakey test
kind/cleanup: Categorizes issue or PR as related to cleaning up code, process, or technical debt.
kind/design: Categorizes issue or PR as related to design.
kind/documentation: Categorizes issue or PR as related to documentation.
kind/feature: Categorizes issue or PR as related to a new feature.
kind/misc: Categorizes issue or PR as a miscellaneuous one.

1 similar comment
@tekton-robot
Copy link
Collaborator

This PR cannot be merged: expecting exactly one kind/ label

Available kind/ labels are:

kind/bug: Categorizes issue or PR as related to a bug.
kind/flake: Categorizes issue or PR as related to a flakey test
kind/cleanup: Categorizes issue or PR as related to cleaning up code, process, or technical debt.
kind/design: Categorizes issue or PR as related to design.
kind/documentation: Categorizes issue or PR as related to documentation.
kind/feature: Categorizes issue or PR as related to a new feature.
kind/misc: Categorizes issue or PR as a miscellaneuous one.

@tekton-robot
Copy link
Collaborator

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

File Old Coverage New Coverage Delta
pkg/pod/creds_init.go 84.2% 82.1% -2.2

@mattmoor mattmoor force-pushed the update-pkg-genleader branch from f34c55c to b856129 Compare June 22, 2020 23:15
@mattmoor
Copy link
Member Author

ah the good old shoulders.md case change 🙄

@mattmoor mattmoor force-pushed the update-pkg-genleader branch from b856129 to 6275ac3 Compare June 22, 2020 23:29
@mattmoor
Copy link
Member Author

/retest

@vdemeester
Copy link
Member

        >>> Container sidecar-registry:
        failed to try resolving symlinks in path "/var/log/pods/arendelle-8r9ph_kanikotask-run-pod-28v7p_98f0e76a-8ace-46d1-8572-01d1bc555635/sidecar-registry/0.log": lstat /var/log/pods/arendelle-8r9ph_kanikotask-run-pod-28v7p_98f0e76a-8ace-46d1-8572-01d1bc555635/sidecar-registry/0.log: no such file or directory

First time I see those log on a failure of the kaniko e2e test 🤔 👀

@vdemeester
Copy link
Member

/test pull-tekton-pipeline-integration-tests

1 similar comment
@vdemeester
Copy link
Member

/test pull-tekton-pipeline-integration-tests

@mattmoor
Copy link
Member Author

/retest

@mattmoor
Copy link
Member Author

@vdemeester passing now!

@afrittoli
Copy link
Member

Does this mean that we would not rely on k8s 0.17.x?
If yes, I'd be concerned about restricting our users to a recent version of k8s.

@vdemeester
Copy link
Member

Does this mean that we would not rely on k8s 0.17.x?
If yes, I'd be concerned about restricting our users to a recent version of k8s.

I don't think so. @mattmoor might correct me but this is just an update of the client, we are not using anything k8s 1.17 specific that wouldn't be supported earlier, right ?

@mattmoor
Copy link
Member Author

/hold

@mattmoor
Copy link
Member Author

@vdemeester @afrittoli Sorry, good catch. Too focused on genreconciler.

This DOES pick up a new minimum K8s version as well: 1.16, sorry for missing that.

This will enable Tekton to pick up CRD v1 🤩 , and is available on all of the public clouds, but I should have caught it. My bad.

I can update the release notes, but LMK if that's cool. I put a /hold for good measure.

@bobcatfish
Copy link
Collaborator

release notes update would be good, also tho we have some docs that talk about the min version, there's definitely https://github.com/tektoncd/pipeline/blob/e68c62700da03f407e5b5376d4bf69d473900a7b/DEVELOPMENT.md#kubernetes-cluster and there might be something at https://tekton.dev/ as well (hopefully its something pulled from this repo but not sure)

@mattmoor
Copy link
Member Author

Thanks @bobcatfish I will circle back this afternoon and at least try to hit those places (and release notes).

@mattmoor
Copy link
Member Author

/hold cancel

Ok, this is RFAL. I updated every 1.15 reference outside of vendor 😉

@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 Jun 23, 2020
@mattmoor
Copy link
Member Author

/retest

@afrittoli
Copy link
Member

I feel like we should discuss with with a larger audience before moving forward?
I've heard people having to stick to older Tekton versions because of the current k8s version constraint, so I wonder if we should force a new version already.

@mattmoor do you think it would be possible to control this via a feature flag? What I mean, if I'm not interested in scaling in the controller horizontally, be able to run on k8s 1.15.

@mattmoor
Copy link
Member Author

@afrittoli Generally the hard version dependency check is configurable via an environment variable on the controller, but I believe we also picked up some use of the v1 CRD API, which is only available in 1.16+

Note that our K8s minimum version principle is based on what K8s actually supports upstream, but Ack the massive lag most cloud providers have here. We are actually late picking up 1.16 because GKE was so far behind.

Ack the broader discussion, should I start one in slack?

@vdemeester
Copy link
Member

At least, let's hold that for after 0.14 (aka requiring 1.16 as minimum) ?

@mattmoor
Copy link
Member Author

@vdemeester When is that? Is there a regular cycle? Happy to mark it on my calendar to circle back and rebase/update.

@vdemeester
Copy link
Member

@mattmoor it's almost a regular cycle. It should happen next week (thursday 🙏)

@mattmoor
Copy link
Member Author

@vdemeester ok, great. By then we should have pkg 0.16 snapped (Tuesday), so I will plan to update this shortly thereafter, and then it will hopefully just be good-to-go when the snap has happened.

@vdemeester
Copy link
Member

/hold

@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 Jun 29, 2020
mattmoor added 2 commits June 30, 2020 12:28
The only other manual changes are:
1. Call `Promote` in tests, otherwise our generated reconcilers won't do anything (they aren't the leader!)
2. Fill in namespaces in a few tests (I believe this is a change in the k8s 0.17.x libs)

The main change with respect to genreconciler is that they will now generate LeaderAware reconcilers.  Reconcilers may be sharded across multiple replicas by setting the `buckets` in `config-leaderelection`, which will subdivide the key space being reconciled across N buckets, which are individually leader elected.

The broader design for this is here: https://docs.google.com/document/d/1i_QHjQO2T3SNv49xjZLWlivcc0UvZN1Tbw2NKxThkyM/edit#
@mattmoor mattmoor force-pushed the update-pkg-genleader branch from 3a5c062 to 6d39ed0 Compare June 30, 2020 19:28
@mattmoor mattmoor force-pushed the update-pkg-genleader branch from c4e214f to 13e3a50 Compare July 1, 2020 00:32
@mattmoor
Copy link
Member Author

mattmoor commented Jul 1, 2020

@vdemeester Ok, I think this is ready to go once the release cuts, it pins to knative.dev/pkg@release-0.16, which cut this morning.

@vdemeester vdemeester added this to the Pipelines v0.15 milestone Jul 1, 2020
@vdemeester
Copy link
Member

/hold cancel
/lgtm

@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 Jul 6, 2020
@tekton-robot tekton-robot added the lgtm Indicates that a PR is ready to be merged. label Jul 6, 2020
@mattmoor
Copy link
Member Author

mattmoor commented Jul 6, 2020

Thanks @vdemeester 🤩

@afrittoli @bobcatfish LMK if there's anything else?

@afrittoli
Copy link
Member

/lgtm

@imjasonh
Copy link
Member

imjasonh commented Jul 6, 2020

/approve

@tekton-robot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ImJasonH

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:

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

@tekton-robot tekton-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 6, 2020
@tekton-robot tekton-robot merged commit c7622a5 into tektoncd:master Jul 6, 2020
@mattmoor mattmoor deleted the update-pkg-genleader branch July 6, 2020 23:01
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. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. lgtm Indicates that a PR is ready to be merged. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants