Auto-update dependencies (#211)

Produced via:
  `dep ensure -update knative.dev/test-infra knative.dev/pkg`
/assign n3wscott
/cc n3wscott
This commit is contained in:
Matt Moore 2020-02-24 07:21:08 -08:00 committed by GitHub
parent 926e84e7b9
commit d2c62d27bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
105 changed files with 372 additions and 265 deletions

6
Gopkg.lock generated
View File

@ -966,7 +966,7 @@
[[projects]]
branch = "master"
digest = "1:f44b87ebe4aefb51530107b1d09dce6b81fc35c45117e4025f1dbcb33315a4a8"
digest = "1:cc94fa80f6e4903c1c5b2fc8673156762b2ab2dfe3be11486fea0307e9de71b8"
name = "knative.dev/pkg"
packages = [
"apis",
@ -986,7 +986,7 @@
"reconciler",
]
pruneopts = "T"
revision = "d9a38f13e8b9aa736f714b793ee28788de1b30e0"
revision = "a2e3b66654c1bcd82df07f8b4c45b19bad7ab21a"
[[projects]]
branch = "master"
@ -997,7 +997,7 @@
"tools/dep-collector",
]
pruneopts = "UT"
revision = "0a90cb89503890eab3452dac905b54c67c53145f"
revision = "39583d93138a50f40291bbeb74dbacbfc4e7d4c7"
[[projects]]
digest = "1:8730e0150dfb2b7e173890c8b9868e7a273082ef8e39f4940e3506a481cf895c"

View File

@ -19,7 +19,7 @@ limitations under the License.
package client
import (
"context"
context "context"
rest "k8s.io/client-go/rest"
versioned "knative.dev/caching/pkg/client/clientset/versioned"

View File

@ -19,10 +19,10 @@ limitations under the License.
package fake
import (
"context"
context "context"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/rest"
runtime "k8s.io/apimachinery/pkg/runtime"
rest "k8s.io/client-go/rest"
fake "knative.dev/caching/pkg/client/clientset/versioned/fake"
client "knative.dev/caching/pkg/client/injection/client"
injection "knative.dev/pkg/injection"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
image "knative.dev/caching/pkg/client/injection/informers/caching/v1alpha1/image"
fake "knative.dev/caching/pkg/client/injection/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package image
import (
"context"
context "context"
v1alpha1 "knative.dev/caching/pkg/client/informers/externalversions/caching/v1alpha1"
factory "knative.dev/caching/pkg/client/injection/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package factory
import (
"context"
context "context"
externalversions "knative.dev/caching/pkg/client/informers/externalversions"
client "knative.dev/caching/pkg/client/injection/client"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
externalversions "knative.dev/caching/pkg/client/informers/externalversions"
fake "knative.dev/caching/pkg/client/injection/client/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package client
import (
"context"
context "context"
clientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
rest "k8s.io/client-go/rest"

View File

@ -19,11 +19,11 @@ limitations under the License.
package fake
import (
"context"
context "context"
fake "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/fake"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/rest"
runtime "k8s.io/apimachinery/pkg/runtime"
rest "k8s.io/client-go/rest"
client "knative.dev/pkg/client/injection/apiextensions/client"
injection "knative.dev/pkg/injection"
logging "knative.dev/pkg/logging"

View File

@ -19,7 +19,7 @@ limitations under the License.
package customresourcedefinition
import (
"context"
context "context"
v1beta1 "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1"
factory "knative.dev/pkg/client/injection/apiextensions/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
customresourcedefinition "knative.dev/pkg/client/injection/apiextensions/informers/apiextensions/v1beta1/customresourcedefinition"
fake "knative.dev/pkg/client/injection/apiextensions/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package factory
import (
"context"
context "context"
externalversions "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions"
client "knative.dev/pkg/client/injection/apiextensions/client"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
externalversions "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions"
fake "knative.dev/pkg/client/injection/apiextensions/client/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package addressable
import (
"context"
context "context"
duck "knative.dev/pkg/apis/duck"
v1 "knative.dev/pkg/apis/duck/v1"

View File

@ -19,7 +19,7 @@ limitations under the License.
package conditions
import (
"context"
context "context"
duck "knative.dev/pkg/apis/duck"
v1 "knative.dev/pkg/apis/duck/v1"

View File

@ -19,7 +19,7 @@ limitations under the License.
package podspecable
import (
"context"
context "context"
duck "knative.dev/pkg/apis/duck"
v1 "knative.dev/pkg/apis/duck/v1"

View File

@ -19,7 +19,7 @@ limitations under the License.
package source
import (
"context"
context "context"
duck "knative.dev/pkg/apis/duck"
v1 "knative.dev/pkg/apis/duck/v1"

View File

@ -19,7 +19,7 @@ limitations under the License.
package addressable
import (
"context"
context "context"
duck "knative.dev/pkg/apis/duck"
v1alpha1 "knative.dev/pkg/apis/duck/v1alpha1"

View File

@ -19,7 +19,7 @@ limitations under the License.
package binding
import (
"context"
context "context"
duck "knative.dev/pkg/apis/duck"
v1alpha1 "knative.dev/pkg/apis/duck/v1alpha1"

View File

@ -19,7 +19,7 @@ limitations under the License.
package legacytargetable
import (
"context"
context "context"
duck "knative.dev/pkg/apis/duck"
v1alpha1 "knative.dev/pkg/apis/duck/v1alpha1"

View File

@ -19,7 +19,7 @@ limitations under the License.
package targetable
import (
"context"
context "context"
duck "knative.dev/pkg/apis/duck"
v1alpha1 "knative.dev/pkg/apis/duck/v1alpha1"

View File

@ -19,7 +19,7 @@ limitations under the License.
package addressable
import (
"context"
context "context"
duck "knative.dev/pkg/apis/duck"
v1beta1 "knative.dev/pkg/apis/duck/v1beta1"

View File

@ -19,7 +19,7 @@ limitations under the License.
package conditions
import (
"context"
context "context"
duck "knative.dev/pkg/apis/duck"
v1beta1 "knative.dev/pkg/apis/duck/v1beta1"

View File

@ -19,7 +19,7 @@ limitations under the License.
package source
import (
"context"
context "context"
duck "knative.dev/pkg/apis/duck"
v1beta1 "knative.dev/pkg/apis/duck/v1beta1"

View File

@ -19,7 +19,7 @@ limitations under the License.
package client
import (
"context"
context "context"
kubernetes "k8s.io/client-go/kubernetes"
rest "k8s.io/client-go/rest"

View File

@ -19,11 +19,11 @@ limitations under the License.
package fake
import (
"context"
context "context"
"k8s.io/apimachinery/pkg/runtime"
runtime "k8s.io/apimachinery/pkg/runtime"
fake "k8s.io/client-go/kubernetes/fake"
"k8s.io/client-go/rest"
rest "k8s.io/client-go/rest"
client "knative.dev/pkg/client/injection/kube/client"
injection "knative.dev/pkg/injection"
logging "knative.dev/pkg/logging"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
mutatingwebhookconfiguration "knative.dev/pkg/client/injection/kube/informers/admissionregistration/v1beta1/mutatingwebhookconfiguration"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package mutatingwebhookconfiguration
import (
"context"
context "context"
v1beta1 "k8s.io/client-go/informers/admissionregistration/v1beta1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
validatingwebhookconfiguration "knative.dev/pkg/client/injection/kube/informers/admissionregistration/v1beta1/validatingwebhookconfiguration"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package validatingwebhookconfiguration
import (
"context"
context "context"
v1beta1 "k8s.io/client-go/informers/admissionregistration/v1beta1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package controllerrevision
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/apps/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
controllerrevision "knative.dev/pkg/client/injection/kube/informers/apps/v1/controllerrevision"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package daemonset
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/apps/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
daemonset "knative.dev/pkg/client/injection/kube/informers/apps/v1/daemonset"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package deployment
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/apps/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
deployment "knative.dev/pkg/client/injection/kube/informers/apps/v1/deployment"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
replicaset "knative.dev/pkg/client/injection/kube/informers/apps/v1/replicaset"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package replicaset
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/apps/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
statefulset "knative.dev/pkg/client/injection/kube/informers/apps/v1/statefulset"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package statefulset
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/apps/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
horizontalpodautoscaler "knative.dev/pkg/client/injection/kube/informers/autoscaling/v1/horizontalpodautoscaler"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package horizontalpodautoscaler
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/autoscaling/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
horizontalpodautoscaler "knative.dev/pkg/client/injection/kube/informers/autoscaling/v2beta1/horizontalpodautoscaler"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package horizontalpodautoscaler
import (
"context"
context "context"
v2beta1 "k8s.io/client-go/informers/autoscaling/v2beta1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
job "knative.dev/pkg/client/injection/kube/informers/batch/v1/job"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package job
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/batch/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package cronjob
import (
"context"
context "context"
v1beta1 "k8s.io/client-go/informers/batch/v1beta1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
cronjob "knative.dev/pkg/client/injection/kube/informers/batch/v1beta1/cronjob"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package componentstatus
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/core/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
componentstatus "knative.dev/pkg/client/injection/kube/informers/core/v1/componentstatus"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package configmap
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/core/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
configmap "knative.dev/pkg/client/injection/kube/informers/core/v1/configmap"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package endpoints
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/core/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
endpoints "knative.dev/pkg/client/injection/kube/informers/core/v1/endpoints"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package event
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/core/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
event "knative.dev/pkg/client/injection/kube/informers/core/v1/event"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
limitrange "knative.dev/pkg/client/injection/kube/informers/core/v1/limitrange"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package limitrange
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/core/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
namespace "knative.dev/pkg/client/injection/kube/informers/core/v1/namespace"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package namespace
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/core/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
node "knative.dev/pkg/client/injection/kube/informers/core/v1/node"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package node
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/core/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
persistentvolume "knative.dev/pkg/client/injection/kube/informers/core/v1/persistentvolume"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package persistentvolume
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/core/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
persistentvolumeclaim "knative.dev/pkg/client/injection/kube/informers/core/v1/persistentvolumeclaim"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package persistentvolumeclaim
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/core/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
pod "knative.dev/pkg/client/injection/kube/informers/core/v1/pod"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package pod
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/core/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
podtemplate "knative.dev/pkg/client/injection/kube/informers/core/v1/podtemplate"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package podtemplate
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/core/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
replicationcontroller "knative.dev/pkg/client/injection/kube/informers/core/v1/replicationcontroller"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package replicationcontroller
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/core/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
resourcequota "knative.dev/pkg/client/injection/kube/informers/core/v1/resourcequota"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package resourcequota
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/core/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
secret "knative.dev/pkg/client/injection/kube/informers/core/v1/secret"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package secret
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/core/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
service "knative.dev/pkg/client/injection/kube/informers/core/v1/service"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package service
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/core/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
serviceaccount "knative.dev/pkg/client/injection/kube/informers/core/v1/serviceaccount"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package serviceaccount
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/core/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package factory
import (
"context"
context "context"
informers "k8s.io/client-go/informers"
client "knative.dev/pkg/client/injection/kube/client"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
informers "k8s.io/client-go/informers"
fake "knative.dev/pkg/client/injection/kube/client/fake"

View File

@ -19,7 +19,7 @@ limitations under the License.
package clusterrole
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/rbac/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"
clusterrole "knative.dev/pkg/client/injection/kube/informers/rbac/v1/clusterrole"

View File

@ -19,7 +19,7 @@ limitations under the License.
package clusterrolebinding
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/rbac/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"
clusterrolebinding "knative.dev/pkg/client/injection/kube/informers/rbac/v1/clusterrolebinding"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"
role "knative.dev/pkg/client/injection/kube/informers/rbac/v1/role"

View File

@ -19,7 +19,7 @@ limitations under the License.
package role
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/rbac/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -19,7 +19,7 @@ limitations under the License.
package fake
import (
"context"
context "context"
fake "knative.dev/pkg/client/injection/kube/informers/factory/fake"
rolebinding "knative.dev/pkg/client/injection/kube/informers/rbac/v1/rolebinding"

View File

@ -19,7 +19,7 @@ limitations under the License.
package rolebinding
import (
"context"
context "context"
v1 "k8s.io/client-go/informers/rbac/v1"
factory "knative.dev/pkg/client/injection/kube/informers/factory"

View File

@ -71,6 +71,10 @@ func (g *clientGenerator) GenerateType(c *generator.Context, t *types.Type, w io
Package: "knative.dev/pkg/logging",
Name: "FromContext",
}),
"contextContext": c.Universe.Type(types.Name{
Package: "context",
Name: "Context",
}),
}
sw.Do(injectionClient, m)
@ -86,12 +90,12 @@ func init() {
// Key is used as the key for associating information with a context.Context.
type Key struct{}
func withClient(ctx context.Context, cfg *{{.restConfig|raw}}) context.Context {
func withClient(ctx {{.contextContext|raw}}, cfg *{{.restConfig|raw}}) context.Context {
return context.WithValue(ctx, Key{}, {{.clientSetNewForConfigOrDie|raw}}(cfg))
}
// Get extracts the {{.clientSetInterface|raw}} client from the context.
func Get(ctx context.Context) {{.clientSetInterface|raw}} {
func Get(ctx {{.contextContext|raw}}) {{.clientSetInterface|raw}} {
untyped := ctx.Value(Key{})
if untyped == nil {
{{.loggingFromContext|raw}}(ctx).Panic(

View File

@ -90,6 +90,10 @@ func (g *duckGenerator) GenerateType(c *generator.Context, t *types.Type, w io.W
Package: "knative.dev/pkg/logging",
Name: "FromContext",
}),
"contextContext": c.Universe.Type(types.Name{
Package: "context",
Name: "Context",
}),
}
sw.Do(duckFactory, m)
@ -105,7 +109,7 @@ func init() {
// Key is used for associating the Informer inside the context.Context.
type Key struct{}
func WithDuck(ctx context.Context) context.Context {
func WithDuck(ctx {{.contextContext|raw}}) {{.contextContext|raw}} {
dc := {{.dynamicGet|raw}}(ctx)
dif := &{{.duckCachedInformerFactory|raw}}{
Delegate: &{{.duckTypedInformerFactory|raw}}{
@ -119,7 +123,7 @@ func WithDuck(ctx context.Context) context.Context {
}
// Get extracts the typed informer from the context.
func Get(ctx context.Context) {{.duckInformerFactory|raw}} {
func Get(ctx {{.contextContext|raw}}) {{.duckInformerFactory|raw}} {
untyped := ctx.Value(Key{})
if untyped == nil {
{{.loggingFromContext|raw}}(ctx).Panic(

View File

@ -77,6 +77,10 @@ func (g *factoryGenerator) GenerateType(c *generator.Context, t *types.Type, w i
Package: "knative.dev/pkg/logging",
Name: "FromContext",
}),
"contextContext": c.Universe.Type(types.Name{
Package: "context",
Name: "Context",
}),
}
sw.Do(injectionFactory, m)
@ -92,7 +96,7 @@ func init() {
// Key is used as the key for associating information with a context.Context.
type Key struct{}
func withInformerFactory(ctx context.Context) context.Context {
func withInformerFactory(ctx {{.contextContext|raw}}) {{.contextContext|raw}} {
c := {{.cachingClientGet|raw}}(ctx)
opts := make([]{{.informersSharedInformerOption|raw}}, 0, 1)
if {{.injectionHasNamespace|raw}}(ctx) {
@ -103,7 +107,7 @@ func withInformerFactory(ctx context.Context) context.Context {
}
// Get extracts the InformerFactory from the context.
func Get(ctx context.Context) {{.informersSharedInformerFactory|raw}} {
func Get(ctx {{.contextContext|raw}}) {{.informersSharedInformerFactory|raw}} {
untyped := ctx.Value(Key{})
if untyped == nil {
{{.loggingFromContext|raw}}(ctx).Panic(

View File

@ -75,6 +75,12 @@ func (g *fakeClientGenerator) GenerateType(c *generator.Context, t *types.Type,
Package: "knative.dev/pkg/logging",
Name: "FromContext",
}),
"contextContext": c.Universe.Type(types.Name{
Package: "context",
Name: "Context",
}),
"restConfig": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Config"}),
"runtimeObject": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/runtime", Name: "Object"}),
}
sw.Do(injectionFakeClient, m)
@ -87,18 +93,18 @@ func init() {
{{.injectionRegisterClient|raw}}(withClient)
}
func withClient(ctx context.Context, cfg *rest.Config) context.Context {
func withClient(ctx {{.contextContext|raw}}, cfg *{{.restConfig|raw}}) {{.contextContext|raw}} {
ctx, _ = With(ctx)
return ctx
}
func With(ctx context.Context, objects ...runtime.Object) (context.Context, *{{.fakeClient|raw}}) {
func With(ctx {{.contextContext|raw}}, objects ...{{.runtimeObject|raw}}) ({{.contextContext|raw}}, *{{.fakeClient|raw}}) {
cs := fake.NewSimpleClientset(objects...)
return context.WithValue(ctx, {{.clientKey|raw}}{}, cs), cs
}
// Get extracts the Kubernetes client from the context.
func Get(ctx context.Context) *{{.fakeClient|raw}} {
func Get(ctx {{.contextContext|raw}}) *{{.fakeClient|raw}} {
untyped := ctx.Value({{.clientKey|raw}}{})
if untyped == nil {
{{.loggingFromContext|raw}}(ctx).Panic(

View File

@ -79,6 +79,10 @@ func (g *fakeFactoryGenerator) GenerateType(c *generator.Context, t *types.Type,
"injectionHasNamespace": c.Universe.Type(types.Name{Package: "knative.dev/pkg/injection", Name: "HasNamespaceScope"}),
"injectionGetNamespace": c.Universe.Type(types.Name{Package: "knative.dev/pkg/injection", Name: "GetNamespaceScope"}),
"controllerGetResyncPeriod": c.Universe.Type(types.Name{Package: "knative.dev/pkg/controller", Name: "GetResyncPeriod"}),
"contextContext": c.Universe.Type(types.Name{
Package: "context",
Name: "Context",
}),
}
sw.Do(injectionFakeInformerFactory, m)
@ -93,7 +97,7 @@ func init() {
{{.injectionRegisterInformerFactory|raw}}(withInformerFactory)
}
func withInformerFactory(ctx context.Context) context.Context {
func withInformerFactory(ctx {{.contextContext|raw}}) {{.contextContext|raw}} {
c := {{.clientGet|raw}}(ctx)
opts := make([]{{.informersSharedInformerOption|raw}}, 0, 1)
if {{.injectionHasNamespace|raw}}(ctx) {

View File

@ -91,6 +91,10 @@ func (g *fakeInformerGenerator) GenerateType(c *generator.Context, t *types.Type
Package: "knative.dev/pkg/injection",
Name: "Fake.RegisterInformer",
}),
"contextContext": c.Universe.Type(types.Name{
Package: "context",
Name: "Context",
}),
}
sw.Do(injectionFakeInformer, m)
@ -105,7 +109,7 @@ func init() {
{{.injectionRegisterInformer|raw}}(withInformer)
}
func withInformer(ctx context.Context) (context.Context, {{.controllerInformer|raw}}) {
func withInformer(ctx {{.contextContext|raw}}) ({{.contextContext|raw}}, {{.controllerInformer|raw}}) {
f := {{.factoryGet|raw}}(ctx)
inf := f.{{.group}}().{{.version}}().{{.type|publicPlural}}()
return context.WithValue(ctx, {{.informerKey|raw}}{}, inf), inf.Informer()

View File

@ -90,6 +90,10 @@ func (g *injectionGenerator) GenerateType(c *generator.Context, t *types.Type, w
Package: "knative.dev/pkg/logging",
Name: "FromContext",
}),
"contextContext": c.Universe.Type(types.Name{
Package: "context",
Name: "Context",
}),
}
sw.Do(injectionInformer, m)
@ -105,14 +109,14 @@ func init() {
// Key is used for associating the Informer inside the context.Context.
type Key struct{}
func withInformer(ctx context.Context) (context.Context, {{.controllerInformer|raw}}) {
func withInformer(ctx {{.contextContext|raw}}) ({{.contextContext|raw}}, {{.controllerInformer|raw}}) {
f := {{.factoryGet|raw}}(ctx)
inf := f.{{.group}}().{{.version}}().{{.type|publicPlural}}()
return context.WithValue(ctx, Key{}, inf), inf.Informer()
}
// Get extracts the typed informer from the context.
func Get(ctx context.Context) {{.informersTypedInformer|raw}} {
func Get(ctx {{.contextContext|raw}}) {{.informersTypedInformer|raw}} {
untyped := ctx.Value(Key{})
if untyped == nil {
{{.loggingFromContext|raw}}(ctx).Panic(

View File

@ -93,120 +93,113 @@ func GetLoggingConfig(ctx context.Context) (*logging.Config, error) {
return logging.NewConfigFromConfigMap(loggingConfigMap)
}
// Main runs the generic main flow for non-webhook controllers with a new
// context. Use WebhookMainWith* if you need to serve webhooks.
func Main(component string, ctors ...injection.ControllerConstructor) {
// Set up signals so we handle the first shutdown signal gracefully.
MainWithContext(signals.NewContext(), component, ctors...)
}
// MainWithContext runs the generic main flow for non-webhook controllers. Use
// WebhookMainWithContext if you need to serve webhooks.
func MainWithContext(ctx context.Context, component string, ctors ...injection.ControllerConstructor) {
var (
masterURL = flag.String("master", "",
"The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster.")
kubeconfig = flag.String("kubeconfig", "",
"Path to a kubeconfig. Only required if out-of-cluster.")
)
flag.Parse()
cfg, err := GetConfig(*masterURL, *kubeconfig)
if err != nil {
log.Fatalf("Error building kubeconfig: %v", err)
}
MainWithConfig(ctx, component, cfg, ctors...)
MainWithConfig(ctx, component, ParseAndGetConfigOrDie(), ctors...)
}
// MainWithConfig runs the generic main flow for non-webhook controllers. Use
// WebhookMainWithConfig if you need to serve webhooks.
func MainWithConfig(ctx context.Context, component string, cfg *rest.Config, ctors ...injection.ControllerConstructor) {
log.Printf("Registering %d clients", len(injection.Default.GetClients()))
log.Printf("Registering %d informer factories", len(injection.Default.GetInformerFactories()))
log.Printf("Registering %d informers", len(injection.Default.GetInformers()))
log.Printf("Registering %d controllers", len(ctors))
// Report stats on Go memory usage every 30 seconds.
msp := metrics.NewMemStatsAll()
msp.Start(ctx, 30*time.Second)
MemStatsOrDie(ctx)
if err := view.Register(msp.DefaultViews()...); err != nil {
log.Fatalf("Error exporting go memstats view: %v", err)
}
// Adjust our client's rate limits based on the number of controller's we are running.
// Adjust our client's rate limits based on the number of controllers we are running.
cfg.QPS = float32(len(ctors)) * rest.DefaultQPS
cfg.Burst = len(ctors) * rest.DefaultBurst
ctx, informers := injection.Default.SetupInformers(ctx, cfg)
// Set up our logger.
loggingConfig, err := GetLoggingConfig(ctx)
if err != nil {
log.Fatalf("Error reading/parsing logging configuration: %v", err)
}
logger, atomicLevel := logging.NewLoggerFromConfig(loggingConfig, component)
logger, atomicLevel := SetupLoggerOrDie(ctx, component)
defer flush(logger)
ctx = logging.WithLogger(ctx, logger)
// Obtain K8s clientset.
kc := kubeclient.Get(ctx)
if err := version.CheckMinimumVersion(kc.Discovery()); err != nil {
logger.Fatalw("Version check failed", zap.Error(err))
}
// Create ConfigMaps watcher with optional label-based filter.
var cmLabelReqs []labels.Requirement
if cmLabel := system.ResourceLabel(); cmLabel != "" {
req, err := configmap.FilterConfigByLabelExists(cmLabel)
if err != nil {
logger.With(zap.Error(err)).Fatalf("Failed to generate requirement for label %q")
}
logger.Infof("Setting up ConfigMap watcher with label selector %q", req)
cmLabelReqs = append(cmLabelReqs, *req)
}
// TODO(mattmoor): This should itself take a context and be injection-based.
cmw := configmap.NewInformedWatcher(kc, system.Namespace(), cmLabelReqs...)
// Based on the reconcilers we have linked, build up the set of controllers to run.
controllers := make([]*controller.Impl, 0, len(ctors))
webhooks := make([]interface{}, 0)
for _, cf := range ctors {
ctrl := cf(ctx, cmw)
controllers = append(controllers, ctrl)
// Build a list of any reconcilers that implement webhook.AdmissionController
switch c := ctrl.Reconciler.(type) {
case webhook.AdmissionController, webhook.ConversionController:
webhooks = append(webhooks, c)
}
}
profilingHandler := profiling.NewHandler(logger, false)
// Watch the logging config map and dynamically update logging levels.
if _, err := kubeclient.Get(ctx).CoreV1().ConfigMaps(system.Namespace()).Get(logging.ConfigMapName(),
metav1.GetOptions{}); err == nil {
cmw.Watch(logging.ConfigMapName(), logging.UpdateLevelFromConfigMap(logger, atomicLevel, component))
} else if !apierrors.IsNotFound(err) {
logger.With(zap.Error(err)).Fatalf("Error reading ConfigMap %q", logging.ConfigMapName())
}
// Watch the observability config map
if _, err := kubeclient.Get(ctx).CoreV1().ConfigMaps(system.Namespace()).Get(metrics.ConfigMapName(),
metav1.GetOptions{}); err == nil {
cmw.Watch(metrics.ConfigMapName(),
metrics.UpdateExporterFromConfigMap(component, logger),
profilingHandler.UpdateFromConfigMap)
} else if !apierrors.IsNotFound(err) {
logger.With(zap.Error(err)).Fatalf("Error reading ConfigMap %q", metrics.ConfigMapName())
}
CheckK8sClientMinimumVersionOrDie(ctx, logger)
cmw := SetupConfigMapWatchOrDie(ctx, logger)
controllers, _ := ControllersAndWebhooksFromCtors(ctx, cmw, ctors...)
WatchLoggingConfigOrDie(ctx, cmw, logger, atomicLevel, component)
WatchObservabilityConfigOrDie(ctx, cmw, profilingHandler, logger, component)
logger.Info("Starting configuration manager...")
if err := cmw.Start(ctx.Done()); err != nil {
logger.Fatalw("Failed to start configuration manager", zap.Error(err))
}
// Start all of the informers and wait for them to sync.
logger.Info("Starting informers.")
logger.Info("Starting informers...")
if err := controller.StartInformers(ctx.Done(), informers...); err != nil {
logger.Fatalw("Failed to start informers", zap.Error(err))
}
logger.Info("Starting controllers...")
go controller.StartAll(ctx.Done(), controllers...)
// Start all of the controllers.
profilingServer := profiling.NewServer(profilingHandler)
eg, egCtx := errgroup.WithContext(ctx)
eg.Go(profilingServer.ListenAndServe)
// This will block until either a signal arrives or one of the grouped functions
// returns an error.
<-egCtx.Done()
profilingServer.Shutdown(context.Background())
// Don't forward ErrServerClosed as that indicates we're already shutting down.
if err := eg.Wait(); err != nil && err != http.ErrServerClosed {
logger.Errorw("Error while running server", zap.Error(err))
}
}
// WebhookMainWithContext runs the generic main flow for controllers and
// webhooks. Use MainWithContext if you do not need to serve webhooks.
func WebhookMainWithContext(ctx context.Context, component string, ctors ...injection.ControllerConstructor) {
WebhookMainWithConfig(ctx, component, ParseAndGetConfigOrDie(), ctors...)
}
// WebhookMainWithConfig runs the generic main flow for controllers and webhooks
// with the given config. Use MainWithConfig if you do not need to serve
// webhooks.
func WebhookMainWithConfig(ctx context.Context, component string, cfg *rest.Config, ctors ...injection.ControllerConstructor) {
log.Printf("Registering %d clients", len(injection.Default.GetClients()))
log.Printf("Registering %d informer factories", len(injection.Default.GetInformerFactories()))
log.Printf("Registering %d informers", len(injection.Default.GetInformers()))
log.Printf("Registering %d controllers", len(ctors))
MemStatsOrDie(ctx)
// Adjust our client's rate limits based on the number of controllers we are running.
cfg.QPS = float32(len(ctors)) * rest.DefaultQPS
cfg.Burst = len(ctors) * rest.DefaultBurst
ctx, informers := injection.Default.SetupInformers(ctx, cfg)
logger, atomicLevel := SetupLoggerOrDie(ctx, component)
defer flush(logger)
ctx = logging.WithLogger(ctx, logger)
profilingHandler := profiling.NewHandler(logger, false)
CheckK8sClientMinimumVersionOrDie(ctx, logger)
cmw := SetupConfigMapWatchOrDie(ctx, logger)
controllers, webhooks := ControllersAndWebhooksFromCtors(ctx, cmw, ctors...)
WatchLoggingConfigOrDie(ctx, cmw, logger, atomicLevel, component)
WatchObservabilityConfigOrDie(ctx, cmw, profilingHandler, logger, component)
logger.Info("Starting configuration manager...")
if err := cmw.Start(ctx.Done()); err != nil {
logger.Fatalw("Failed to start configuration manager", zap.Error(err))
}
logger.Info("Starting informers...")
if err := controller.StartInformers(ctx.Done(), informers...); err != nil {
logger.Fatalw("Failed to start informers", zap.Error(err))
}
logger.Info("Starting controllers...")
go controller.StartAll(ctx.Done(), controllers...)
@ -245,3 +238,117 @@ func flush(logger *zap.SugaredLogger) {
logger.Sync()
metrics.FlushExporter()
}
// ParseAndGetConfigOrDie parses the rest config flags and creates a client or
// dies by calling log.Fatalf.
func ParseAndGetConfigOrDie() *rest.Config {
var (
masterURL = flag.String("master", "",
"The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster.")
kubeconfig = flag.String("kubeconfig", "",
"Path to a kubeconfig. Only required if out-of-cluster.")
)
flag.Parse()
cfg, err := GetConfig(*masterURL, *kubeconfig)
if err != nil {
log.Fatalf("Error building kubeconfig: %v", err)
}
return cfg
}
// MemStatsOrDie sets up reporting on Go memory usage every 30 seconds or dies
// by calling log.Fatalf.
func MemStatsOrDie(ctx context.Context) {
msp := metrics.NewMemStatsAll()
msp.Start(ctx, 30*time.Second)
if err := view.Register(msp.DefaultViews()...); err != nil {
log.Fatalf("Error exporting go memstats view: %v", err)
}
}
// SetupLoggerOrDie sets up the logger using the config from the given context
// and returns a logger and atomic level, or dies by calling log.Fatalf.
func SetupLoggerOrDie(ctx context.Context, component string) (*zap.SugaredLogger, zap.AtomicLevel) {
loggingConfig, err := GetLoggingConfig(ctx)
if err != nil {
log.Fatalf("Error reading/parsing logging configuration: %v", err)
}
return logging.NewLoggerFromConfig(loggingConfig, component)
}
// CheckK8sClientMinimumVersionOrDie checks that the hosting Kubernetes cluster
// is at least the minimum allowable version or dies by calling log.Fatalf.
func CheckK8sClientMinimumVersionOrDie(ctx context.Context, logger *zap.SugaredLogger) {
kc := kubeclient.Get(ctx)
if err := version.CheckMinimumVersion(kc.Discovery()); err != nil {
logger.Fatalw("Version check failed", zap.Error(err))
}
}
// SetupConfigMapWatchOrDie establishes a watch of the configmaps in the system
// namespace that are labeled to be watched or dies by calling log.Fatalf.
func SetupConfigMapWatchOrDie(ctx context.Context, logger *zap.SugaredLogger) *configmap.InformedWatcher {
kc := kubeclient.Get(ctx)
// Create ConfigMaps watcher with optional label-based filter.
var cmLabelReqs []labels.Requirement
if cmLabel := system.ResourceLabel(); cmLabel != "" {
req, err := configmap.FilterConfigByLabelExists(cmLabel)
if err != nil {
logger.With(zap.Error(err)).Fatalf("Failed to generate requirement for label %q")
}
logger.Infof("Setting up ConfigMap watcher with label selector %q", req)
cmLabelReqs = append(cmLabelReqs, *req)
}
// TODO(mattmoor): This should itself take a context and be injection-based.
return configmap.NewInformedWatcher(kc, system.Namespace(), cmLabelReqs...)
}
// WatchLoggingConfigOrDie establishes a watch of the logging config or dies by
// calling log.Fatalf. Note, if the config does not exist, it will be defaulted
// and this method will not die.
func WatchLoggingConfigOrDie(ctx context.Context, cmw *configmap.InformedWatcher, logger *zap.SugaredLogger, atomicLevel zap.AtomicLevel, component string) {
if _, err := kubeclient.Get(ctx).CoreV1().ConfigMaps(system.Namespace()).Get(logging.ConfigMapName(),
metav1.GetOptions{}); err == nil {
cmw.Watch(logging.ConfigMapName(), logging.UpdateLevelFromConfigMap(logger, atomicLevel, component))
} else if !apierrors.IsNotFound(err) {
logger.With(zap.Error(err)).Fatalf("Error reading ConfigMap %q", logging.ConfigMapName())
}
}
// WatchObservabilityConfigOrDie establishes a watch of the logging config or
// dies by calling log.Fatalf. Note, if the config does not exist, it will be
// defaulted and this method will not die.
func WatchObservabilityConfigOrDie(ctx context.Context, cmw *configmap.InformedWatcher, profilingHandler *profiling.Handler, logger *zap.SugaredLogger, component string) {
if _, err := kubeclient.Get(ctx).CoreV1().ConfigMaps(system.Namespace()).Get(metrics.ConfigMapName(),
metav1.GetOptions{}); err == nil {
cmw.Watch(metrics.ConfigMapName(),
metrics.UpdateExporterFromConfigMap(component, logger),
profilingHandler.UpdateFromConfigMap)
} else if !apierrors.IsNotFound(err) {
logger.With(zap.Error(err)).Fatalf("Error reading ConfigMap %q", metrics.ConfigMapName())
}
}
// ControllersAndWebhooksFromCtors returns a list of the controllers and a list
// of the webhooks created from the given constructors.
func ControllersAndWebhooksFromCtors(ctx context.Context,
cmw *configmap.InformedWatcher,
ctors ...injection.ControllerConstructor) ([]*controller.Impl, []interface{}) {
controllers := make([]*controller.Impl, 0, len(ctors))
webhooks := make([]interface{}, 0)
for _, cf := range ctors {
ctrl := cf(ctx, cmw)
controllers = append(controllers, ctrl)
// Build a list of any reconcilers that implement webhook.AdmissionController
switch c := ctrl.Reconciler.(type) {
case webhook.AdmissionController, webhook.ConversionController:
webhooks = append(webhooks, c)
}
}
return controllers, webhooks
}

View File

@ -1,40 +0,0 @@
/*
Copyright 2019 The Knative Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package testing
import (
"fmt"
"time"
)
// FakeStatsReporter is a fake implementation of StatsReporter
type FakeStatsReporter struct {
servicesReady map[string]int
}
func (r *FakeStatsReporter) ReportServiceReady(namespace, service string, d time.Duration) error {
key := fmt.Sprintf("%s/%s", namespace, service)
if r.servicesReady == nil {
r.servicesReady = make(map[string]int)
}
r.servicesReady[key]++
return nil
}
func (r *FakeStatsReporter) GetServiceReadyStats() map[string]int {
return r.servicesReady
}

View File

@ -79,9 +79,6 @@ type TableRow struct {
// WantEvents holds the ordered list of events we expect during reconciliation.
WantEvents []string
// WantServiceReadyStats holds the ServiceReady stats we expect during reconciliation.
WantServiceReadyStats map[string]int
// WithReactors is a set of functions that are installed as Reactors for the execution
// of this row of the table-driven-test.
WithReactors []clientgotesting.ReactionFunc
@ -123,15 +120,14 @@ func objKey(o runtime.Object) string {
return path.Join(typeOf, on.GetNamespace(), on.GetName())
}
// Factory returns a Reconciler.Interface to perform reconciliation in table test,
// ActionRecorderList/EventList to capture k8s actions/events produced during reconciliation
// and FakeStatsReporter to capture stats.
type Factory func(*testing.T, *TableRow) (controller.Reconciler, ActionRecorderList, EventList, *FakeStatsReporter)
// Factory returns a Reconciler.Interface to perform reconciliation in table test, and
// ActionRecorderList/EventList to capture k8s actions/events produced during reconciliation.
type Factory func(*testing.T, *TableRow) (controller.Reconciler, ActionRecorderList, EventList)
// Test executes the single table test.
func (r *TableRow) Test(t *testing.T, factory Factory) {
t.Helper()
c, recorderList, eventList, statsReporter := factory(t, r)
c, recorderList, eventList := factory(t, r)
// Set the Reconciler for PostConditions to access it post-Reconcile()
r.Reconciler = c
@ -355,11 +351,6 @@ func (r *TableRow) Test(t *testing.T, factory Factory) {
}
}
gotStats := statsReporter.GetServiceReadyStats()
if diff := cmp.Diff(r.WantServiceReadyStats, gotStats); diff != "" {
t.Errorf("Unexpected service ready stats (-want, +got): %s", diff)
}
for _, verify := range r.PostConditions {
verify(t, r)
}

Some files were not shown because too many files have changed in this diff Show More