diff --git a/api/go.mod b/api/go.mod index 2305c6f9..5561b503 100644 --- a/api/go.mod +++ b/api/go.mod @@ -3,8 +3,8 @@ module github.com/fluxcd/kustomize-controller/api go 1.15 require ( - github.com/fluxcd/pkg/apis/meta v0.2.0 - github.com/fluxcd/pkg/runtime v0.2.0 + github.com/fluxcd/pkg/apis/meta v0.4.0 + github.com/fluxcd/pkg/runtime v0.3.0 k8s.io/api v0.19.3 k8s.io/apimachinery v0.19.3 sigs.k8s.io/controller-runtime v0.6.3 diff --git a/api/go.sum b/api/go.sum index ebb09163..6909586e 100644 --- a/api/go.sum +++ b/api/go.sum @@ -61,10 +61,12 @@ github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLi github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fluxcd/pkg/apis/meta v0.2.0 h1:bxoFQtZM6OLLj0+n3h6ga7IEWUtGEDJPc65OWiXSMvY= -github.com/fluxcd/pkg/apis/meta v0.2.0/go.mod h1:50RLLSfqM4LlQrh/+5LiJVf7Hjdthee8WDdXBvpjBdA= -github.com/fluxcd/pkg/runtime v0.2.0 h1:aZmSLuyA9pF/KANf4wi7pZIICE19BKTYFSPRbl6WHtY= -github.com/fluxcd/pkg/runtime v0.2.0/go.mod h1:P1/S8TOSuJgVPU0SRahWzbNxLWYoUwvBcPCNGc+dWWg= +github.com/fluxcd/pkg/apis/meta v0.3.0 h1:o2YkfGgf0j8sKeZs8cBmmmMKLA7kEoS1qYViOial1Ds= +github.com/fluxcd/pkg/apis/meta v0.3.0/go.mod h1:wOzQQx8CdtUQCGaLzqGu4QgnNxYkI6/wvdvlovxWhF0= +github.com/fluxcd/pkg/apis/meta v0.4.0 h1:JChqB9GGgorW9HWKxirTVV0rzrcLyzBaVjinmqZ0iHA= +github.com/fluxcd/pkg/apis/meta v0.4.0/go.mod h1:wOzQQx8CdtUQCGaLzqGu4QgnNxYkI6/wvdvlovxWhF0= +github.com/fluxcd/pkg/runtime v0.3.0 h1:WpeTmDT2meIe4NsU081I8zmUGgTYs3bIMRgs9F3Lj90= +github.com/fluxcd/pkg/runtime v0.3.0/go.mod h1:gPe6JgfPB4EDh5gaVkuI0SPuATk3PmclbFa1kPcZrKE= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= diff --git a/api/v1beta1/kustomization_types.go b/api/v1beta1/kustomization_types.go index d8c21bc4..fc6042b1 100644 --- a/api/v1beta1/kustomization_types.go +++ b/api/v1beta1/kustomization_types.go @@ -143,7 +143,7 @@ type KustomizationStatus struct { ObservedGeneration int64 `json:"observedGeneration,omitempty"` // +optional - Conditions []meta.Condition `json:"conditions,omitempty"` + Conditions []metav1.Condition `json:"conditions,omitempty"` // The last successfully applied revision. // The revision format for Git sources is /. @@ -164,42 +164,21 @@ type KustomizationStatus struct { // KustomizationProgressing resets the conditions of the given Kustomization to a single // ReadyCondition with status ConditionUnknown. func KustomizationProgressing(k Kustomization) Kustomization { - k.Status.Conditions = []meta.Condition{ - { - Type: meta.ReadyCondition, - Status: corev1.ConditionUnknown, - LastTransitionTime: metav1.Now(), - Reason: meta.ProgressingReason, - Message: "reconciliation in progress", - }, - } + meta.SetResourceCondition(&k, meta.ReadyCondition, metav1.ConditionUnknown, meta.ProgressingReason, "reconciliation in progress") return k } -// SetKustomizationCondition sets the given condition with the given status, reason and message -// on the Kustomization. -func SetKustomizationCondition(k *Kustomization, condition string, status corev1.ConditionStatus, reason, message string) { - k.Status.Conditions = meta.FilterOutCondition(k.Status.Conditions, condition) - k.Status.Conditions = append(k.Status.Conditions, meta.Condition{ - Type: condition, - Status: status, - LastTransitionTime: metav1.Now(), - Reason: reason, - Message: trimString(message, MaxConditionMessageLength), - }) -} - // SetKustomizeReadiness sets the ReadyCondition, ObservedGeneration, and LastAttemptedRevision, // on the Kustomization. -func SetKustomizationReadiness(k *Kustomization, status corev1.ConditionStatus, reason, message string, revision string) { - SetKustomizationCondition(k, meta.ReadyCondition, status, reason, message) +func SetKustomizationReadiness(k *Kustomization, status metav1.ConditionStatus, reason, message string, revision string) { + meta.SetResourceCondition(k, meta.ReadyCondition, status, reason, message) k.Status.ObservedGeneration = k.Generation k.Status.LastAttemptedRevision = revision } // KustomizationNotReady registers a failed apply attempt of the given Kustomization. func KustomizationNotReady(k Kustomization, revision, reason, message string) Kustomization { - SetKustomizationReadiness(&k, corev1.ConditionFalse, reason, message, revision) + SetKustomizationReadiness(&k, metav1.ConditionFalse, reason, message, revision) if revision != "" { k.Status.LastAttemptedRevision = revision } @@ -209,7 +188,7 @@ func KustomizationNotReady(k Kustomization, revision, reason, message string) Ku // KustomizationNotReady registers a failed apply attempt of the given Kustomization, // including a Snapshot. func KustomizationNotReadySnapshot(k Kustomization, snapshot *Snapshot, revision, reason, message string) Kustomization { - SetKustomizationReadiness(&k, corev1.ConditionFalse, reason, message, revision) + SetKustomizationReadiness(&k, metav1.ConditionFalse, reason, message, revision) k.Status.Snapshot = snapshot k.Status.LastAttemptedRevision = revision return k @@ -217,7 +196,7 @@ func KustomizationNotReadySnapshot(k Kustomization, snapshot *Snapshot, revision // KustomizationReady registers a successful apply attempt of the given Kustomization. func KustomizationReady(k Kustomization, snapshot *Snapshot, revision, reason, message string) Kustomization { - SetKustomizationReadiness(&k, corev1.ConditionTrue, reason, message, revision) + SetKustomizationReadiness(&k, metav1.ConditionTrue, reason, message, revision) k.Status.Snapshot = snapshot k.Status.LastAppliedRevision = revision return k @@ -242,6 +221,11 @@ func (in Kustomization) GetDependsOn() (types.NamespacedName, []dependency.Cross }, in.Spec.DependsOn } +// GetStatusConditions returns a pointer to the Status.Conditions slice +func (in *Kustomization) GetStatusConditions() *[]metav1.Condition { + return &in.Status.Conditions +} + const ( // SourceIndexKey is the key used for indexing kustomizations // based on their Git sources. diff --git a/api/v1beta1/zz_generated.deepcopy.go b/api/v1beta1/zz_generated.deepcopy.go index 34866363..81f9e2d8 100644 --- a/api/v1beta1/zz_generated.deepcopy.go +++ b/api/v1beta1/zz_generated.deepcopy.go @@ -21,7 +21,6 @@ limitations under the License. package v1beta1 import ( - "github.com/fluxcd/pkg/apis/meta" "github.com/fluxcd/pkg/runtime/dependency" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -205,7 +204,7 @@ func (in *KustomizationStatus) DeepCopyInto(out *KustomizationStatus) { *out = *in if in.Conditions != nil { in, out := &in.Conditions, &out.Conditions - *out = make([]meta.Condition, len(*in)) + *out = make([]v1.Condition, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } diff --git a/config/crd/bases/kustomize.toolkit.fluxcd.io_kustomizations.yaml b/config/crd/bases/kustomize.toolkit.fluxcd.io_kustomizations.yaml index 3f976bb6..d473e9a8 100644 --- a/config/crd/bases/kustomize.toolkit.fluxcd.io_kustomizations.yaml +++ b/config/crd/bases/kustomize.toolkit.fluxcd.io_kustomizations.yaml @@ -214,30 +214,69 @@ spec: properties: conditions: items: - description: Condition contains condition information of a toolkit - resource. + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: + \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type + \ // +patchStrategy=merge // +listType=map // +listMapKey=type + \ Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` + \n // other fields }" properties: lastTransitionTime: - description: LastTransitionTime is the timestamp corresponding - to the last status change of this condition. + description: lastTransitionTime is the last time the condition + transitioned from one status to another. This should be when + the underlying condition changed. If that is not known, then + using the time when the API field changed is acceptable. format: date-time type: string message: - description: Message is a human readable description of the - details of the last transition, complementing reason. + description: message is a human readable message indicating + details about the transition. This may be an empty string. + maxLength: 32768 type: string + observedGeneration: + description: observedGeneration represents the .metadata.generation + that the condition was set based upon. For instance, if .metadata.generation + is currently 12, but the .status.conditions[x].observedGeneration + is 9, the condition is out of date with respect to the current + state of the instance. + format: int64 + minimum: 0 + type: integer reason: - description: Reason is a brief machine readable explanation - for the condition's last transition. + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ type: string status: - description: Status of the condition, one of ('True', 'False', - 'Unknown'). + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown type: string type: - description: Type of the condition. + description: type of condition in CamelCase or in foo.example.com/CamelCase. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string required: + - lastTransitionTime + - message + - reason - status - type type: object diff --git a/controllers/kustomization_controller.go b/controllers/kustomization_controller.go index 7f643f22..c3809a71 100644 --- a/controllers/kustomization_controller.go +++ b/controllers/kustomization_controller.go @@ -32,6 +32,8 @@ import ( "github.com/go-logr/logr" corev1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" + apimeta "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" "k8s.io/client-go/tools/clientcmd" @@ -845,7 +847,7 @@ func (r *KustomizationReconciler) checkDependencies(kustomization kustomizev1.Ku return fmt.Errorf("dependency '%s' is not ready", dName) } - if c := meta.GetCondition(k.Status.Conditions, meta.ReadyCondition); c == nil || c.Status != corev1.ConditionTrue { + if !apimeta.IsStatusConditionTrue(k.Status.Conditions, meta.ReadyCondition) { return fmt.Errorf("dependency '%s' is not ready", dName) } } @@ -961,7 +963,7 @@ func (r *KustomizationReconciler) event(kustomization kustomizev1.Kustomization, } reason := severity - if c := meta.GetCondition(kustomization.Status.Conditions, meta.ReadyCondition); c != nil { + if c := apimeta.FindStatusCondition(kustomization.Status.Conditions, meta.ReadyCondition); c != nil { reason = c.Reason } @@ -988,12 +990,12 @@ func (r *KustomizationReconciler) recordReadiness(kustomization kustomizev1.Kust ).Error(err, "unable to record readiness metric") return } - if rc := meta.GetCondition(kustomization.Status.Conditions, meta.ReadyCondition); rc != nil { + if rc := apimeta.FindStatusCondition(kustomization.Status.Conditions, meta.ReadyCondition); rc != nil { r.MetricsRecorder.RecordCondition(*objRef, *rc, !kustomization.DeletionTimestamp.IsZero()) } else { - r.MetricsRecorder.RecordCondition(*objRef, meta.Condition{ + r.MetricsRecorder.RecordCondition(*objRef, metav1.Condition{ Type: meta.ReadyCondition, - Status: corev1.ConditionUnknown, + Status: metav1.ConditionUnknown, }, !kustomization.DeletionTimestamp.IsZero()) } } diff --git a/controllers/kustomization_controller_test.go b/controllers/kustomization_controller_test.go index 9cc46b3d..8c8d3170 100644 --- a/controllers/kustomization_controller_test.go +++ b/controllers/kustomization_controller_test.go @@ -69,7 +69,7 @@ var _ = Describe("KustomizationReconciler", func() { type refTestCase struct { artifacts []testserver.File waitForReason string - expectStatus corev1.ConditionStatus + expectStatus metav1.ConditionStatus expectMessage string expectRevision string } @@ -94,10 +94,10 @@ var _ = Describe("KustomizationReconciler", func() { Interval: metav1.Duration{Duration: reconciliationInterval}, }, Status: sourcev1.GitRepositoryStatus{ - Conditions: []meta.Condition{ + Conditions: []metav1.Condition{ { Type: meta.ReadyCondition, - Status: corev1.ConditionTrue, + Status: metav1.ConditionTrue, LastTransitionTime: metav1.Now(), Reason: sourcev1.GitOperationSucceedReason, }, @@ -141,7 +141,7 @@ var _ = Describe("KustomizationReconciler", func() { defer k8sClient.Delete(context.Background(), k) got := &kustomizev1.Kustomization{} - var cond meta.Condition + var cond metav1.Condition Eventually(func() bool { _ = k8sClient.Get(context.Background(), kName, got) for _, c := range got.Status.Conditions { @@ -179,7 +179,7 @@ metadata: }, }, waitForReason: meta.ReconciliationSucceededReason, - expectStatus: corev1.ConditionTrue, + expectStatus: metav1.ConditionTrue, expectRevision: "branch/commit1", }), ) diff --git a/docs/api/kustomize.md b/docs/api/kustomize.md index 16654c23..e0d03102 100644 --- a/docs/api/kustomize.md +++ b/docs/api/kustomize.md @@ -712,8 +712,8 @@ int64 conditions
- -[]github.com/fluxcd/pkg/apis/meta.Condition + +[]Kubernetes meta/v1.Condition diff --git a/docs/spec/v1alpha1/kustomization.md b/docs/spec/v1alpha1/kustomization.md index 4e4e1fa4..858a5f5c 100644 --- a/docs/spec/v1alpha1/kustomization.md +++ b/docs/spec/v1alpha1/kustomization.md @@ -108,7 +108,7 @@ type KustomizationStatus struct { ObservedGeneration int64 `json:"observedGeneration,omitempty"` // +optional - Conditions []Condition `json:"conditions,omitempty"` + Conditions []metav1.Condition `json:"conditions,omitempty"` // The last successfully applied revision. // The revision format for Git sources is /. diff --git a/docs/spec/v1beta1/kustomization.md b/docs/spec/v1beta1/kustomization.md index c041a378..48e1ef1f 100644 --- a/docs/spec/v1beta1/kustomization.md +++ b/docs/spec/v1beta1/kustomization.md @@ -115,7 +115,7 @@ type KustomizationStatus struct { ObservedGeneration int64 `json:"observedGeneration,omitempty"` // +optional - Conditions []Condition `json:"conditions,omitempty"` + Conditions []metav1.Condition `json:"conditions,omitempty"` // The last successfully applied revision. // The revision format for Git sources is /. diff --git a/go.mod b/go.mod index ea5b3aa1..1cfd3092 100644 --- a/go.mod +++ b/go.mod @@ -6,11 +6,11 @@ replace github.com/fluxcd/kustomize-controller/api => ./api require ( github.com/fluxcd/kustomize-controller/api v0.2.2 - github.com/fluxcd/pkg/apis/meta v0.2.0 - github.com/fluxcd/pkg/runtime v0.2.0 + github.com/fluxcd/pkg/apis/meta v0.4.0 + github.com/fluxcd/pkg/runtime v0.3.0 github.com/fluxcd/pkg/testserver v0.0.2 github.com/fluxcd/pkg/untar v0.0.5 - github.com/fluxcd/source-controller/api v0.2.1 + github.com/fluxcd/source-controller/api v0.2.3 github.com/go-logr/logr v0.2.1 github.com/howeyc/gopass v0.0.0-20170109162249-bf9dde6d0d2c github.com/onsi/ginkgo v1.12.1 diff --git a/go.sum b/go.sum index 772669b3..19b6759c 100644 --- a/go.sum +++ b/go.sum @@ -161,17 +161,18 @@ github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwo github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= -github.com/fluxcd/pkg/apis/meta v0.0.2/go.mod h1:nCNps5JJOcEQr3MNDmZqI4o0chjePSUYL6Q2ktDtotU= -github.com/fluxcd/pkg/apis/meta v0.2.0 h1:bxoFQtZM6OLLj0+n3h6ga7IEWUtGEDJPc65OWiXSMvY= -github.com/fluxcd/pkg/apis/meta v0.2.0/go.mod h1:50RLLSfqM4LlQrh/+5LiJVf7Hjdthee8WDdXBvpjBdA= -github.com/fluxcd/pkg/runtime v0.2.0 h1:aZmSLuyA9pF/KANf4wi7pZIICE19BKTYFSPRbl6WHtY= -github.com/fluxcd/pkg/runtime v0.2.0/go.mod h1:P1/S8TOSuJgVPU0SRahWzbNxLWYoUwvBcPCNGc+dWWg= +github.com/fluxcd/pkg/apis/meta v0.3.0 h1:o2YkfGgf0j8sKeZs8cBmmmMKLA7kEoS1qYViOial1Ds= +github.com/fluxcd/pkg/apis/meta v0.3.0/go.mod h1:wOzQQx8CdtUQCGaLzqGu4QgnNxYkI6/wvdvlovxWhF0= +github.com/fluxcd/pkg/apis/meta v0.4.0 h1:JChqB9GGgorW9HWKxirTVV0rzrcLyzBaVjinmqZ0iHA= +github.com/fluxcd/pkg/apis/meta v0.4.0/go.mod h1:wOzQQx8CdtUQCGaLzqGu4QgnNxYkI6/wvdvlovxWhF0= +github.com/fluxcd/pkg/runtime v0.3.0 h1:WpeTmDT2meIe4NsU081I8zmUGgTYs3bIMRgs9F3Lj90= +github.com/fluxcd/pkg/runtime v0.3.0/go.mod h1:gPe6JgfPB4EDh5gaVkuI0SPuATk3PmclbFa1kPcZrKE= github.com/fluxcd/pkg/testserver v0.0.2 h1:SoaMtO9cE5p/wl2zkGudzflnEHd9mk68CGjZOo7w0Uk= github.com/fluxcd/pkg/testserver v0.0.2/go.mod h1:pgUZTh9aQ44FSTQo+5NFlh7YMbUfdz1B80DalW7k96Y= github.com/fluxcd/pkg/untar v0.0.5 h1:UGI3Ch1UIEIaqQvMicmImL1s9npQa64DJ/ozqHKB7gk= github.com/fluxcd/pkg/untar v0.0.5/go.mod h1:O6V9+rtl8c1mHBafgqFlJN6zkF1HS5SSYn7RpQJ/nfw= -github.com/fluxcd/source-controller/api v0.2.1 h1:CK2vpnEHa1nB1cqc3dAuO+hL6HGcSnh2xGmQfzmGef4= -github.com/fluxcd/source-controller/api v0.2.1/go.mod h1:1ac/vj49YVPKF+xBHTo/9pfFj64TcLc1RLaxi4MwVEM= +github.com/fluxcd/source-controller/api v0.2.3 h1:GhGx/ryZ2KU9dp25IOHg9AgW+ROD07oXGqc533DTLBQ= +github.com/fluxcd/source-controller/api v0.2.3/go.mod h1:MYmvbADJp/21m4C+PEY7WXCeqEErMYuhns+jnKyewqs= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= @@ -976,7 +977,6 @@ k8s.io/api v0.0.0-20191214185829-ca1d04f8b0d3/go.mod h1:itOjKREfmUTvcjantxOsyYU5 k8s.io/api v0.17.0/go.mod h1:npsyOePkeP0CPwyGfXDHxvypiYMJxBWAMpQxCaJ4ZxI= k8s.io/api v0.17.2/go.mod h1:BS9fjjLc4CMuqfSO8vgbHPKMt5+SF0ET6u/RVDihTo4= k8s.io/api v0.18.6/go.mod h1:eeyxr+cwCjMdLAmr2W3RyDI0VvTawSg/3RFFBEnmZGI= -k8s.io/api v0.18.9/go.mod h1:9u/h6sUh6FxfErv7QqetX1EB3yBMIYOBXzdcf0Gf0rc= k8s.io/api v0.19.3 h1:GN6ntFnv44Vptj/b+OnMW7FmzkpDoIDLZRvKX3XH9aU= k8s.io/api v0.19.3/go.mod h1:VF+5FT1B74Pw3KxMdKyinLo+zynBaMBiAfGMuldcNDs= k8s.io/apiextensions-apiserver v0.0.0-20190918161926-8f644eb6e783/go.mod h1:xvae1SZB3E17UpV59AWc271W/Ph25N+bjPyR63X6tPY= @@ -989,7 +989,6 @@ k8s.io/apimachinery v0.0.0-20191216025728-0ee8b4573e3a/go.mod h1:Ng1IY8TS7sC44KJ k8s.io/apimachinery v0.17.0/go.mod h1:b9qmWdKlLuU9EBh+06BtLcSf/Mu89rWL33naRxs1uZg= k8s.io/apimachinery v0.17.2/go.mod h1:b9qmWdKlLuU9EBh+06BtLcSf/Mu89rWL33naRxs1uZg= k8s.io/apimachinery v0.18.6/go.mod h1:OaXp26zu/5J7p0f92ASynJa1pZo06YlV9fG7BoWbCko= -k8s.io/apimachinery v0.18.9/go.mod h1:PF5taHbXgTEJLU+xMypMmYTXTWPJ5LaW8bfsisxnEXk= k8s.io/apimachinery v0.19.3 h1:bpIQXlKjB4cB/oNpnNnV+BybGPR7iP5oYpsOTEJ4hgc= k8s.io/apimachinery v0.19.3/go.mod h1:DnPGDnARWFvYa3pMHgSxtbZb7gpzzAZ1pTfaUNDVlmA= k8s.io/apiserver v0.0.0-20190918160949-bfa5e2e684ad/go.mod h1:XPCXEwhjaFN29a8NldXA901ElnKeKLrLtREO9ZhFyhg=