shipwright-io/operator

Operator cannot install Tekton Pipeline components on Kubernetes v1.25

Closed this issue · 3 comments

Per shipwright-io/build#1173 , when installing the SHP operator, one cannot get the Tekton controller and webhook in the cluster. This only happens on v1.25 and v1.26, however it works on a v1.23.

@adambkaplan @qu1queee this should be moved to the operator repository ?

I have tested and it's working for me.

Steps:

  1. install tekton
  2. install olm from operator-sdk olm install
  3. install shipwright operator from kubectl apply -f https://operatorhub.io/install/shipwright-operator.yaml
lan@lan:~$ k get po -A
NAMESPACE                    NAME                                                              READY   STATUS      RESTARTS   AGE
kube-system                  coredns-787d4945fb-t6k26                                          1/1     Running     0          77m
kube-system                  coredns-787d4945fb-vdqmm                                          1/1     Running     0          77m
kube-system                  etcd-kind-control-plane                                           1/1     Running     0          78m
kube-system                  kindnet-fzsqp                                                     1/1     Running     0          77m
kube-system                  kindnet-ht5mq                                                     1/1     Running     0          77m
kube-system                  kindnet-krj4m                                                     1/1     Running     0          77m
kube-system                  kindnet-m6228                                                     1/1     Running     0          77m
kube-system                  kindnet-s6nht                                                     1/1     Running     0          77m
kube-system                  kube-apiserver-kind-control-plane                                 1/1     Running     0          78m
kube-system                  kube-controller-manager-kind-control-plane                        1/1     Running     0          78m
kube-system                  kube-proxy-9rzzl                                                  1/1     Running     0          77m
kube-system                  kube-proxy-ddbqh                                                  1/1     Running     0          77m
kube-system                  kube-proxy-lhw6z                                                  1/1     Running     0          77m
kube-system                  kube-proxy-qjhlw                                                  1/1     Running     0          77m
kube-system                  kube-proxy-rzf5r                                                  1/1     Running     0          77m
kube-system                  kube-scheduler-kind-control-plane                                 1/1     Running     0          78m
local-path-storage           local-path-provisioner-c8855d4bb-4rs6b                            1/1     Running     0          77m
olm                          2a40c1fc0f7958649d26a49221d95375c6af9ed37d26de98fd38a28e2aq7bwj   0/1     Completed   0          87s
olm                          8a3d7c98b98aa814bbb19c5d009b45e195be7bb433dd32edf2a612be4c9nkgm   0/1     Completed   0          87s
olm                          catalog-operator-7998cc9b84-qvpms                                 1/1     Running     0          2m52s
olm                          olm-operator-5b97f58b95-kgc5p                                     1/1     Running     0          2m52s
olm                          operatorhubio-catalog-h24w5                                       1/1     Running     0          2m27s
olm                          packageserver-6fbfbdc886-2mkdp                                    1/1     Running     0          2m29s
olm                          packageserver-6fbfbdc886-p2lzt                                    1/1     Running     0          2m29s
operators                    shipwright-operator-57bf7f6cdd-7tcc9                              2/2     Running     0          43s
operators                    tekton-operator-6bc7b6dd96-gp85g                                  2/2     Running     0          46s
operators                    tekton-operator-webhook-559b985dbc-ktchn                          1/1     Running     0          46s
tekton-pipelines-resolvers   tekton-pipelines-remote-resolvers-dc9bbcd65-whqrn                 1/1     Running     0          54m
tekton-pipelines             tekton-pipelines-controller-bffdddb78-lwwkm                       1/1     Running     0          54m
tekton-pipelines             tekton-pipelines-webhook-5b86665f9d-f46g9                         1/1     Running     0          54m
tekton-pipelines             tekton-triggers-controller-5886598484-mg4pz                       1/1     Running     0          54m
tekton-pipelines             tekton-triggers-core-interceptors-7f888c477f-jzlqd                1/1     Running     0          54m
tekton-pipelines             tekton-triggers-webhook-6dd9f5bbf4-tq4cr                          1/1     Running     0          54m

Version

lan@lan:~$ k version
WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short.  Use --output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.0", GitCommit:"b46a3f887ca979b1a5d14fd39cb1af43e7e5d12d", GitTreeState:"clean", BuildDate:"2022-12-08T19:58:30Z", GoVersion:"go1.19.4", Compiler:"gc", Platform:"linux/amd64"}
Kustomize Version: v4.5.7
Server Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.0", GitCommit:"b46a3f887ca979b1a5d14fd39cb1af43e7e5d12d", GitTreeState:"clean", BuildDate:"2022-12-20T03:35:13Z", GoVersion:"go1.19.4", Compiler:"gc", Platform:"linux/amd64"}
lan@:~$ tkn version
Client version: dev
Pipeline version: v0.44.0
Triggers version: v0.22.1

Per @liangyuanpeng - this is working on k8s 1.26, and I suspect it should work on any current version of k8s.

I suspect the original issue was that Tekton's operator was out of date. The Operator Lifecycle Manager (olm) lets us declare a dependency on the Tekton operator - when the Shipwright operator is installed, OLM tries to find an appropriate operator for Tekton and install that, too. Part of the Shipwright operator's reconcile loop is to detect if Tekton has been installed, and if not, call the Tekton operator APIs to install it on our behalf.