From d4e3755515cd89c774fc76a58c59e01128d26355 Mon Sep 17 00:00:00 2001
From: stefanprodan
Date: Wed, 30 Sep 2020 10:07:22 +0300
Subject: [PATCH] Implement `fluxcd/pkg/meta/api` in APIs
---
Makefile | 7 +-
api/go.mod | 7 +-
api/go.sum | 18 ++--
api/v1alpha1/alert_types.go | 4 +-
api/v1alpha1/condition_types.go | 44 ---------
api/v1alpha1/provider_types.go | 4 +-
api/v1alpha1/receiver_types.go | 12 ++-
api/v1alpha1/zz_generated.deepcopy.go | 23 +----
...notification.toolkit.fluxcd.io_alerts.yaml | 6 +-
...ification.toolkit.fluxcd.io_providers.yaml | 6 +-
...ification.toolkit.fluxcd.io_receivers.yaml | 6 +-
controllers/alert_controller.go | 11 ++-
controllers/provider_controller.go | 11 ++-
controllers/receiver_controller.go | 9 +-
docs/api/notification.md | 98 +------------------
go.mod | 11 ++-
go.sum | 18 +++-
internal/server/receiver_handlers.go | 8 +-
18 files changed, 88 insertions(+), 215 deletions(-)
diff --git a/Makefile b/Makefile
index 941b188..bae705d 100644
--- a/Makefile
+++ b/Makefile
@@ -61,6 +61,11 @@ manifests: controller-gen
api-docs: gen-crd-api-reference-docs
$(API_REF_GEN) -api-dir=./api/v1alpha1 -config=./hack/api-docs/config.json -template-dir=./hack/api-docs/template -out-file=./docs/api/notification.md
+# Run go mod tidy
+tidy:
+ go mod tidy
+ cd api; go mod tidy
+
# Run go fmt against code
fmt:
go fmt ./...
@@ -73,7 +78,7 @@ vet:
# Generate code
generate: controller-gen
- $(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths="./..."
+ cd api; $(CONTROLLER_GEN) object:headerFile="../hack/boilerplate.go.txt" paths="./..."
# Build the docker image
docker-build: test
diff --git a/api/go.mod b/api/go.mod
index ef465e0..f3581ff 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -3,7 +3,8 @@ module github.com/fluxcd/notification-controller/api
go 1.14
require (
- k8s.io/api v0.18.8
- k8s.io/apimachinery v0.18.8
- sigs.k8s.io/controller-runtime v0.6.2
+ github.com/fluxcd/pkg/apis/meta v0.0.2
+ k8s.io/api v0.18.9
+ k8s.io/apimachinery v0.18.9
+ sigs.k8s.io/controller-runtime v0.6.3
)
diff --git a/api/go.sum b/api/go.sum
index 560eaf8..4262a68 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -25,7 +25,6 @@ github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:l
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
-github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
@@ -58,10 +57,12 @@ github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb
github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/evanphx/json-patch v0.0.0-20200808040245-162e5629780b/go.mod h1:NAJj0yf/KaRKURN6nyi7A9IZydMivZEm9oQLWNjfKDc=
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
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.0.2 h1:kyA4Y0IzNjf1joBOnFqpWG7aNDHvtLExZcaHQM7qhRI=
+github.com/fluxcd/pkg/apis/meta v0.0.2/go.mod h1:nCNps5JJOcEQr3MNDmZqI4o0chjePSUYL6Q2ktDtotU=
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=
@@ -170,7 +171,6 @@ github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpO
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
-github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
@@ -419,12 +419,12 @@ honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWh
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
k8s.io/api v0.18.6/go.mod h1:eeyxr+cwCjMdLAmr2W3RyDI0VvTawSg/3RFFBEnmZGI=
-k8s.io/api v0.18.8 h1:aIKUzJPb96f3fKec2lxtY7acZC9gQNDLVhfSGpxBAC4=
-k8s.io/api v0.18.8/go.mod h1:d/CXqwWv+Z2XEG1LgceeDmHQwpUJhROPx16SlxJgERY=
+k8s.io/api v0.18.9 h1:7VDtivqwbvLOf8hmXSd/PDSSbpCBq49MELg84EYBYiQ=
+k8s.io/api v0.18.9/go.mod h1:9u/h6sUh6FxfErv7QqetX1EB3yBMIYOBXzdcf0Gf0rc=
k8s.io/apiextensions-apiserver v0.18.6/go.mod h1:lv89S7fUysXjLZO7ke783xOwVTm6lKizADfvUM/SS/M=
k8s.io/apimachinery v0.18.6/go.mod h1:OaXp26zu/5J7p0f92ASynJa1pZo06YlV9fG7BoWbCko=
-k8s.io/apimachinery v0.18.8 h1:jimPrycCqgx2QPearX3to1JePz7wSbVLq+7PdBTTwQ0=
-k8s.io/apimachinery v0.18.8/go.mod h1:6sQd+iHEqmOtALqOFjSWp2KZ9F0wlU/nWm0ZgsYWMig=
+k8s.io/apimachinery v0.18.9 h1:3ZABKQx3F3xPWlsGhCfUl8W+JXRRblV6Wo2A3zn0pvY=
+k8s.io/apimachinery v0.18.9/go.mod h1:PF5taHbXgTEJLU+xMypMmYTXTWPJ5LaW8bfsisxnEXk=
k8s.io/apiserver v0.18.6/go.mod h1:Zt2XvTHuaZjBz6EFYzpp+X4hTmgWGy8AthNVnTdm3Wg=
k8s.io/client-go v0.18.6/go.mod h1:/fwtGLjYMS1MaM5oi+eXhKwG+1UHidUEXRh6cNsdO0Q=
k8s.io/code-generator v0.18.6/go.mod h1:TgNEVx9hCyPGpdtCWA34olQYLkh3ok9ar7XfSsr8b6c=
@@ -440,8 +440,8 @@ k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6/go.mod h1:GRQhZsXIAJ1xR0C
k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
k8s.io/utils v0.0.0-20200603063816-c1c6865ac451/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7/go.mod h1:PHgbrJT7lCHcxMU+mDHEm+nx46H4zuuHZkDP6icnhu0=
-sigs.k8s.io/controller-runtime v0.6.2 h1:jkAnfdTYBpFwlmBn3pS5HFO06SfxvnTZ1p5PeEF/zAA=
-sigs.k8s.io/controller-runtime v0.6.2/go.mod h1:vhcq/rlnENJ09SIRp3EveTaZ0yqH526hjf9iJdbUJ/E=
+sigs.k8s.io/controller-runtime v0.6.3 h1:SBbr+inLPEKhvlJtrvDcwIpm+uhDvp63Bl72xYJtoOE=
+sigs.k8s.io/controller-runtime v0.6.3/go.mod h1:WlZNXcM0++oyaQt4B7C2lEE5JYRs8vJUzRP4N4JpdAY=
sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
sigs.k8s.io/structured-merge-diff/v3 v3.0.0 h1:dOmIZBMfhcHS09XZkMyUgkq5trg3/jRyJYFZUiaOp8E=
sigs.k8s.io/structured-merge-diff/v3 v3.0.0/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
diff --git a/api/v1alpha1/alert_types.go b/api/v1alpha1/alert_types.go
index eb1bf7b..6d18b51 100644
--- a/api/v1alpha1/alert_types.go
+++ b/api/v1alpha1/alert_types.go
@@ -19,6 +19,8 @@ package v1alpha1
import (
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+
+ "github.com/fluxcd/pkg/apis/meta"
)
// AlertSpec defines an alerting rule for events involving a list of objects
@@ -47,7 +49,7 @@ type AlertSpec struct {
// AlertStatus defines the observed state of Alert
type AlertStatus struct {
// +optional
- Conditions []Condition `json:"conditions,omitempty"`
+ Conditions []meta.Condition `json:"conditions,omitempty"`
}
// +genclient
diff --git a/api/v1alpha1/condition_types.go b/api/v1alpha1/condition_types.go
index 9890f8a..31cfc17 100644
--- a/api/v1alpha1/condition_types.go
+++ b/api/v1alpha1/condition_types.go
@@ -16,54 +16,10 @@ limitations under the License.
package v1alpha1
-import (
- corev1 "k8s.io/api/core/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-)
-
-// Condition contains condition information for a notification object.
-type Condition struct {
- // Type of the condition, currently ('Ready').
- // +required
- Type string `json:"type"`
-
- // Status of the condition, one of ('True', 'False', 'Unknown').
- // +required
- Status corev1.ConditionStatus `json:"status"`
-
- // LastTransitionTime is the timestamp corresponding to the last status
- // change of this condition.
- // +required
- LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
-
- // Reason is a brief machine readable explanation for the condition's last
- // transition.
- // +required
- Reason string `json:"reason,omitempty"`
-
- // Message is a human readable description of the details of the last
- // transition, complementing reason.
- // +optional
- Message string `json:"message,omitempty"`
-}
-
-const (
- // ReadyCondition represents the fact that a given object has passed
- // validation and was acknowledge by the controller.
- ReadyCondition string = "Ready"
-)
-
const (
// InitializedReason represents the fact that a given resource has been initialized.
InitializedReason string = "Initialized"
- // ProgressingReason represents the fact that a resource reconciliation
- // is underway.
- ProgressingReason string = "Progressing"
-
// TokenNotFound represents the fact that receiver token can't be found.
TokenNotFoundReason string = "TokenNotFound"
-
- // SuspendedReason represents the fact that the resource reconciliation is suspended.
- SuspendedReason string = "Suspended"
)
diff --git a/api/v1alpha1/provider_types.go b/api/v1alpha1/provider_types.go
index 123e441..556736b 100644
--- a/api/v1alpha1/provider_types.go
+++ b/api/v1alpha1/provider_types.go
@@ -19,6 +19,8 @@ package v1alpha1
import (
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+
+ "github.com/fluxcd/pkg/apis/meta"
)
// ProviderSpec defines the desired state of Provider
@@ -58,7 +60,7 @@ const (
// ProviderStatus defines the observed state of Provider
type ProviderStatus struct {
// +optional
- Conditions []Condition `json:"conditions,omitempty"`
+ Conditions []meta.Condition `json:"conditions,omitempty"`
}
// +genclient
diff --git a/api/v1alpha1/receiver_types.go b/api/v1alpha1/receiver_types.go
index 0d60224..487d712 100644
--- a/api/v1alpha1/receiver_types.go
+++ b/api/v1alpha1/receiver_types.go
@@ -19,6 +19,8 @@ package v1alpha1
import (
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+
+ "github.com/fluxcd/pkg/apis/meta"
)
// ReceiverSpec defines the desired state of Receiver
@@ -52,7 +54,7 @@ type ReceiverSpec struct {
// ReceiverStatus defines the observed state of Receiver
type ReceiverStatus struct {
// +optional
- Conditions []Condition `json:"conditions,omitempty"`
+ Conditions []meta.Condition `json:"conditions,omitempty"`
// Generated webhook URL in the format
// of '/hook/sha256sum(token+name+namespace)'.
@@ -69,9 +71,9 @@ const (
)
func ReceiverReady(receiver Receiver, reason, message, url string) Receiver {
- receiver.Status.Conditions = []Condition{
+ receiver.Status.Conditions = []meta.Condition{
{
- Type: ReadyCondition,
+ Type: meta.ReadyCondition,
Status: corev1.ConditionTrue,
LastTransitionTime: metav1.Now(),
Reason: reason,
@@ -84,9 +86,9 @@ func ReceiverReady(receiver Receiver, reason, message, url string) Receiver {
}
func ReceiverNotReady(receiver Receiver, reason, message string) Receiver {
- receiver.Status.Conditions = []Condition{
+ receiver.Status.Conditions = []meta.Condition{
{
- Type: ReadyCondition,
+ Type: meta.ReadyCondition,
Status: corev1.ConditionFalse,
LastTransitionTime: metav1.Now(),
Reason: reason,
diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go
index 594b534..2e36c3a 100644
--- a/api/v1alpha1/zz_generated.deepcopy.go
+++ b/api/v1alpha1/zz_generated.deepcopy.go
@@ -21,6 +21,7 @@ limitations under the License.
package v1alpha1
import (
+ "github.com/fluxcd/pkg/apis/meta"
"k8s.io/api/core/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
)
@@ -110,7 +111,7 @@ func (in *AlertStatus) DeepCopyInto(out *AlertStatus) {
*out = *in
if in.Conditions != nil {
in, out := &in.Conditions, &out.Conditions
- *out = make([]Condition, len(*in))
+ *out = make([]meta.Condition, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
@@ -127,22 +128,6 @@ func (in *AlertStatus) DeepCopy() *AlertStatus {
return out
}
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Condition) DeepCopyInto(out *Condition) {
- *out = *in
- in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition.
-func (in *Condition) DeepCopy() *Condition {
- if in == nil {
- return nil
- }
- out := new(Condition)
- in.DeepCopyInto(out)
- return out
-}
-
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CrossNamespaceObjectReference) DeepCopyInto(out *CrossNamespaceObjectReference) {
*out = *in
@@ -242,7 +227,7 @@ func (in *ProviderStatus) DeepCopyInto(out *ProviderStatus) {
*out = *in
if in.Conditions != nil {
in, out := &in.Conditions, &out.Conditions
- *out = make([]Condition, len(*in))
+ *out = make([]meta.Condition, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
@@ -349,7 +334,7 @@ func (in *ReceiverStatus) DeepCopyInto(out *ReceiverStatus) {
*out = *in
if in.Conditions != nil {
in, out := &in.Conditions, &out.Conditions
- *out = make([]Condition, len(*in))
+ *out = make([]meta.Condition, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
diff --git a/config/crd/bases/notification.toolkit.fluxcd.io_alerts.yaml b/config/crd/bases/notification.toolkit.fluxcd.io_alerts.yaml
index 48c80be..931c085 100644
--- a/config/crd/bases/notification.toolkit.fluxcd.io_alerts.yaml
+++ b/config/crd/bases/notification.toolkit.fluxcd.io_alerts.yaml
@@ -105,8 +105,8 @@ spec:
properties:
conditions:
items:
- description: Condition contains condition information for a notification
- object.
+ description: Condition contains condition information of a toolkit
+ resource.
properties:
lastTransitionTime:
description: LastTransitionTime is the timestamp corresponding
@@ -126,7 +126,7 @@ spec:
'Unknown').
type: string
type:
- description: Type of the condition, currently ('Ready').
+ description: Type of the condition.
type: string
required:
- status
diff --git a/config/crd/bases/notification.toolkit.fluxcd.io_providers.yaml b/config/crd/bases/notification.toolkit.fluxcd.io_providers.yaml
index d0ac74a..5046248 100644
--- a/config/crd/bases/notification.toolkit.fluxcd.io_providers.yaml
+++ b/config/crd/bases/notification.toolkit.fluxcd.io_providers.yaml
@@ -82,8 +82,8 @@ spec:
properties:
conditions:
items:
- description: Condition contains condition information for a notification
- object.
+ description: Condition contains condition information of a toolkit
+ resource.
properties:
lastTransitionTime:
description: LastTransitionTime is the timestamp corresponding
@@ -103,7 +103,7 @@ spec:
'Unknown').
type: string
type:
- description: Type of the condition, currently ('Ready').
+ description: Type of the condition.
type: string
required:
- status
diff --git a/config/crd/bases/notification.toolkit.fluxcd.io_receivers.yaml b/config/crd/bases/notification.toolkit.fluxcd.io_receivers.yaml
index 1ba5d45..6957bfe 100644
--- a/config/crd/bases/notification.toolkit.fluxcd.io_receivers.yaml
+++ b/config/crd/bases/notification.toolkit.fluxcd.io_receivers.yaml
@@ -113,8 +113,8 @@ spec:
properties:
conditions:
items:
- description: Condition contains condition information for a notification
- object.
+ description: Condition contains condition information of a toolkit
+ resource.
properties:
lastTransitionTime:
description: LastTransitionTime is the timestamp corresponding
@@ -134,7 +134,7 @@ spec:
'Unknown').
type: string
type:
- description: Type of the condition, currently ('Ready').
+ description: Type of the condition.
type: string
required:
- status
diff --git a/controllers/alert_controller.go b/controllers/alert_controller.go
index 82c8b84..187347c 100644
--- a/controllers/alert_controller.go
+++ b/controllers/alert_controller.go
@@ -27,6 +27,8 @@ import (
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
+ "github.com/fluxcd/pkg/apis/meta"
+
"github.com/fluxcd/notification-controller/api/v1alpha1"
)
@@ -51,17 +53,16 @@ func (r *AlertReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
log := r.Log.WithValues("controller", strings.ToLower(alert.Kind), "request", req.NamespacedName)
init := true
- for _, condition := range alert.Status.Conditions {
- if condition.Type == v1alpha1.ReadyCondition && condition.Status == corev1.ConditionTrue {
+ if c := meta.GetCondition(alert.Status.Conditions, meta.ReadyCondition); c != nil {
+ if c.Status == corev1.ConditionTrue {
init = false
- break
}
}
if init {
- alert.Status.Conditions = []v1alpha1.Condition{
+ alert.Status.Conditions = []meta.Condition{
{
- Type: v1alpha1.ReadyCondition,
+ Type: meta.ReadyCondition,
Status: corev1.ConditionTrue,
LastTransitionTime: metav1.Now(),
Reason: v1alpha1.InitializedReason,
diff --git a/controllers/provider_controller.go b/controllers/provider_controller.go
index b3ac3eb..164321e 100644
--- a/controllers/provider_controller.go
+++ b/controllers/provider_controller.go
@@ -27,6 +27,8 @@ import (
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
+ "github.com/fluxcd/pkg/apis/meta"
+
"github.com/fluxcd/notification-controller/api/v1alpha1"
)
@@ -51,17 +53,16 @@ func (r *ProviderReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
log := r.Log.WithValues("controller", strings.ToLower(provider.Kind), "request", req.NamespacedName)
init := true
- for _, condition := range provider.Status.Conditions {
- if condition.Type == v1alpha1.ReadyCondition && condition.Status == corev1.ConditionTrue {
+ if c := meta.GetCondition(provider.Status.Conditions, meta.ReadyCondition); c != nil {
+ if c.Status == corev1.ConditionTrue {
init = false
- break
}
}
if init {
- provider.Status.Conditions = []v1alpha1.Condition{
+ provider.Status.Conditions = []meta.Condition{
{
- Type: v1alpha1.ReadyCondition,
+ Type: meta.ReadyCondition,
Status: corev1.ConditionTrue,
LastTransitionTime: metav1.Now(),
Reason: v1alpha1.InitializedReason,
diff --git a/controllers/receiver_controller.go b/controllers/receiver_controller.go
index 3107c97..7cb94c4 100644
--- a/controllers/receiver_controller.go
+++ b/controllers/receiver_controller.go
@@ -29,6 +29,8 @@ import (
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
+ "github.com/fluxcd/pkg/apis/meta"
+
"github.com/fluxcd/notification-controller/api/v1alpha1"
)
@@ -66,11 +68,8 @@ func (r *ReceiverReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
}
isReady := false
- for _, condition := range receiver.Status.Conditions {
- if condition.Type == v1alpha1.ReadyCondition && condition.Status == corev1.ConditionTrue {
- isReady = true
- break
- }
+ if c := meta.GetCondition(receiver.Status.Conditions, meta.ReadyCondition); c != nil {
+ isReady = c.Status == corev1.ConditionTrue
}
receiverURL := fmt.Sprintf("/hook/%s", sha256sum(token+receiver.Name+receiver.Namespace))
diff --git a/docs/api/notification.md b/docs/api/notification.md
index 79e4a23..f6c6cc6 100644
--- a/docs/api/notification.md
+++ b/docs/api/notification.md
@@ -515,9 +515,7 @@ Defaults to false.
conditions
-
-[]Condition
-
+[]github.com/fluxcd/pkg/apis/meta.Condition
|
@@ -528,92 +526,6 @@ Defaults to false.
-
-
-(Appears on:
-AlertStatus,
-ProviderStatus,
-ReceiverStatus)
-
-Condition contains condition information for a notification object.
-
@@ -786,9 +698,7 @@ Kubernetes core/v1.LocalObjectReference
|
conditions
-
-[]Condition
-
+[]github.com/fluxcd/pkg/apis/meta.Condition
|
@@ -906,9 +816,7 @@ Defaults to false.
|
conditions
-
-[]Condition
-
+[]github.com/fluxcd/pkg/apis/meta.Condition
|
diff --git a/go.mod b/go.mod
index 9a9cfb8..22b593b 100644
--- a/go.mod
+++ b/go.mod
@@ -6,8 +6,9 @@ replace github.com/fluxcd/notification-controller/api => ./api
require (
github.com/fluxcd/notification-controller/api v0.0.11
+ github.com/fluxcd/pkg/apis/meta v0.0.2
github.com/fluxcd/pkg/recorder v0.0.6
- github.com/fluxcd/pkg/runtime v0.0.3
+ github.com/fluxcd/pkg/runtime v0.0.6
github.com/fluxcd/source-controller/api v0.0.17
github.com/go-logr/logr v0.1.0
github.com/google/go-github/v32 v32.0.0
@@ -18,8 +19,8 @@ require (
github.com/whilp/git-urls v1.0.0
github.com/xanzy/go-gitlab v0.37.0
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
- k8s.io/api v0.18.8
- k8s.io/apimachinery v0.18.8
- k8s.io/client-go v0.18.8
- sigs.k8s.io/controller-runtime v0.6.2
+ k8s.io/api v0.18.9
+ k8s.io/apimachinery v0.18.9
+ k8s.io/client-go v0.18.9
+ sigs.k8s.io/controller-runtime v0.6.3
)
diff --git a/go.sum b/go.sum
index 8da0f23..e68895b 100644
--- a/go.sum
+++ b/go.sum
@@ -64,11 +64,15 @@ github.com/evanphx/json-patch v0.0.0-20200808040245-162e5629780b/go.mod h1:NAJj0
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
github.com/evanphx/json-patch v4.5.0+incompatible h1:ouOWdg56aJriqS0huScTkVXPC5IcNrDCXZ6OoTAWu7M=
github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
+github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses=
+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.0.2 h1:kyA4Y0IzNjf1joBOnFqpWG7aNDHvtLExZcaHQM7qhRI=
+github.com/fluxcd/pkg/apis/meta v0.0.2/go.mod h1:nCNps5JJOcEQr3MNDmZqI4o0chjePSUYL6Q2ktDtotU=
github.com/fluxcd/pkg/recorder v0.0.6 h1:me/n8syeeGXz50OXoPX3jgIj9AtinvhHdKT9Dy+MbHs=
github.com/fluxcd/pkg/recorder v0.0.6/go.mod h1:IfQxfVRSNsWs3B0Yp5B6ObEWwKHILlAx8N7XkoDdhFg=
-github.com/fluxcd/pkg/runtime v0.0.3 h1:x9rOThl1qh5srIUpW0YHEj1I84swMj5m76UqrR1QknY=
-github.com/fluxcd/pkg/runtime v0.0.3/go.mod h1:ECBTeplxhgbCJYIjmtwn3ZS0A91/+6YtOS4w2G0LeK4=
+github.com/fluxcd/pkg/runtime v0.0.6 h1:m7qwr2wRePs1vzVlM0Y88vitXSsv1lb3QCJflRpa3qQ=
+github.com/fluxcd/pkg/runtime v0.0.6/go.mod h1:iLjncjktQVpqpb1NsY2fW+UYDFOtVyt+yJrxqrrK8A0=
github.com/fluxcd/source-controller/api v0.0.17 h1:LQR6VR/CATAV+RDcK3rPgA66IW5CFbhAH4Prm0UBL5Y=
github.com/fluxcd/source-controller/api v0.0.17/go.mod h1:PUe+EYQ/s+KPnz2iOCgdf+L6clM0SWkyvdXIpbfpkQE=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
@@ -474,15 +478,19 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
k8s.io/api v0.18.6/go.mod h1:eeyxr+cwCjMdLAmr2W3RyDI0VvTawSg/3RFFBEnmZGI=
k8s.io/api v0.18.8 h1:aIKUzJPb96f3fKec2lxtY7acZC9gQNDLVhfSGpxBAC4=
k8s.io/api v0.18.8/go.mod h1:d/CXqwWv+Z2XEG1LgceeDmHQwpUJhROPx16SlxJgERY=
+k8s.io/api v0.18.9 h1:7VDtivqwbvLOf8hmXSd/PDSSbpCBq49MELg84EYBYiQ=
+k8s.io/api v0.18.9/go.mod h1:9u/h6sUh6FxfErv7QqetX1EB3yBMIYOBXzdcf0Gf0rc=
k8s.io/apiextensions-apiserver v0.18.6 h1:vDlk7cyFsDyfwn2rNAO2DbmUbvXy5yT5GE3rrqOzaMo=
k8s.io/apiextensions-apiserver v0.18.6/go.mod h1:lv89S7fUysXjLZO7ke783xOwVTm6lKizADfvUM/SS/M=
k8s.io/apimachinery v0.18.6/go.mod h1:OaXp26zu/5J7p0f92ASynJa1pZo06YlV9fG7BoWbCko=
k8s.io/apimachinery v0.18.8 h1:jimPrycCqgx2QPearX3to1JePz7wSbVLq+7PdBTTwQ0=
k8s.io/apimachinery v0.18.8/go.mod h1:6sQd+iHEqmOtALqOFjSWp2KZ9F0wlU/nWm0ZgsYWMig=
+k8s.io/apimachinery v0.18.9 h1:3ZABKQx3F3xPWlsGhCfUl8W+JXRRblV6Wo2A3zn0pvY=
+k8s.io/apimachinery v0.18.9/go.mod h1:PF5taHbXgTEJLU+xMypMmYTXTWPJ5LaW8bfsisxnEXk=
k8s.io/apiserver v0.18.6/go.mod h1:Zt2XvTHuaZjBz6EFYzpp+X4hTmgWGy8AthNVnTdm3Wg=
k8s.io/client-go v0.18.6/go.mod h1:/fwtGLjYMS1MaM5oi+eXhKwG+1UHidUEXRh6cNsdO0Q=
-k8s.io/client-go v0.18.8 h1:SdbLpIxk5j5YbFr1b7fq8S7mDgDjYmUxSbszyoesoDM=
-k8s.io/client-go v0.18.8/go.mod h1:HqFqMllQ5NnQJNwjro9k5zMyfhZlOwpuTLVrxjkYSxU=
+k8s.io/client-go v0.18.9 h1:sPHX49yOtUqv1fl49TwV3f8cC0N3etSnwgFGsIsXnZc=
+k8s.io/client-go v0.18.9/go.mod h1:UjkEetDmr40P9NX0Ok3Idt08FCf2I4mIHgjFsot77uY=
k8s.io/code-generator v0.18.6/go.mod h1:TgNEVx9hCyPGpdtCWA34olQYLkh3ok9ar7XfSsr8b6c=
k8s.io/component-base v0.18.6/go.mod h1:knSVsibPR5K6EW2XOjEHik6sdU5nCvKMrzMt2D4In14=
k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
@@ -501,6 +509,8 @@ k8s.io/utils v0.0.0-20200603063816-c1c6865ac451/go.mod h1:jPW/WVKK9YHAvNhRxK0md/
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7/go.mod h1:PHgbrJT7lCHcxMU+mDHEm+nx46H4zuuHZkDP6icnhu0=
sigs.k8s.io/controller-runtime v0.6.2 h1:jkAnfdTYBpFwlmBn3pS5HFO06SfxvnTZ1p5PeEF/zAA=
sigs.k8s.io/controller-runtime v0.6.2/go.mod h1:vhcq/rlnENJ09SIRp3EveTaZ0yqH526hjf9iJdbUJ/E=
+sigs.k8s.io/controller-runtime v0.6.3 h1:SBbr+inLPEKhvlJtrvDcwIpm+uhDvp63Bl72xYJtoOE=
+sigs.k8s.io/controller-runtime v0.6.3/go.mod h1:WlZNXcM0++oyaQt4B7C2lEE5JYRs8vJUzRP4N4JpdAY=
sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
sigs.k8s.io/structured-merge-diff/v3 v3.0.0 h1:dOmIZBMfhcHS09XZkMyUgkq5trg3/jRyJYFZUiaOp8E=
sigs.k8s.io/structured-merge-diff/v3 v3.0.0/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
diff --git a/internal/server/receiver_handlers.go b/internal/server/receiver_handlers.go
index b060cb6..3fe25f4 100644
--- a/internal/server/receiver_handlers.go
+++ b/internal/server/receiver_handlers.go
@@ -31,7 +31,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"github.com/fluxcd/notification-controller/api/v1alpha1"
- consts "github.com/fluxcd/pkg/runtime"
+ "github.com/fluxcd/pkg/apis/meta"
sourcev1 "github.com/fluxcd/source-controller/api/v1alpha1"
)
@@ -225,7 +225,7 @@ func (s *ReceiverServer) annotate(ctx context.Context, resource v1alpha1.CrossNa
if source.Annotations == nil {
source.Annotations = make(map[string]string)
}
- source.Annotations[consts.ReconcileAtAnnotation] = metav1.Now().String()
+ source.Annotations[meta.ReconcileAtAnnotation] = metav1.Now().String()
if err := s.kubeClient.Update(ctx, &source); err != nil {
return fmt.Errorf("unable to annotate Bucket '%s' error: %w", resourceName, err)
}
@@ -237,7 +237,7 @@ func (s *ReceiverServer) annotate(ctx context.Context, resource v1alpha1.CrossNa
if source.Annotations == nil {
source.Annotations = make(map[string]string)
}
- source.Annotations[consts.ReconcileAtAnnotation] = metav1.Now().String()
+ source.Annotations[meta.ReconcileAtAnnotation] = metav1.Now().String()
if err := s.kubeClient.Update(ctx, &source); err != nil {
return fmt.Errorf("unable to annotate GitRepository '%s' error: %w", resourceName, err)
}
@@ -249,7 +249,7 @@ func (s *ReceiverServer) annotate(ctx context.Context, resource v1alpha1.CrossNa
if source.Annotations == nil {
source.Annotations = make(map[string]string)
}
- source.Annotations[consts.ReconcileAtAnnotation] = metav1.Now().String()
+ source.Annotations[meta.ReconcileAtAnnotation] = metav1.Now().String()
if err := s.kubeClient.Update(ctx, &source); err != nil {
return fmt.Errorf("unable to annotate HelmRepository '%s' error: %w", resourceName, err)
}
|