You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by kv...@apache.org on 2021/05/31 03:30:10 UTC

[apisix-ingress-controller] branch master updated: feat: add events and status for ApisixClusterConfig resource (#502)

This is an automated email from the ASF dual-hosted git repository.

kvn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-ingress-controller.git


The following commit(s) were added to refs/heads/master by this push:
     new 029c0d7  feat: add events and status for ApisixClusterConfig resource (#502)
029c0d7 is described below

commit 029c0d7a26c0a3cd507f15f5dcdbff0a09799c24
Author: kv <gx...@163.com>
AuthorDate: Mon May 31 11:30:03 2021 +0800

    feat: add events and status for ApisixClusterConfig resource (#502)
---
 pkg/ingress/apisix_cluster_config.go                     | 10 ++++++++++
 pkg/kube/apisix/apis/config/v2alpha1/types.go            |  3 ++-
 .../apisix/apis/config/v2alpha1/zz_generated.deepcopy.go |  1 +
 .../typed/config/v2alpha1/apisixclusterconfig.go         | 16 ++++++++++++++++
 .../config/v2alpha1/fake/fake_apisixclusterconfig.go     | 11 +++++++++++
 samples/deploy/rbac/apisix_view_clusterrole.yaml         |  2 ++
 test/e2e/scaffold/ingress.go                             |  2 ++
 7 files changed, 44 insertions(+), 1 deletion(-)

diff --git a/pkg/ingress/apisix_cluster_config.go b/pkg/ingress/apisix_cluster_config.go
index 5df2e5d..9af9f3d 100644
--- a/pkg/ingress/apisix_cluster_config.go
+++ b/pkg/ingress/apisix_cluster_config.go
@@ -19,7 +19,9 @@ import (
 	"time"
 
 	"go.uber.org/zap"
+	corev1 "k8s.io/api/core/v1"
 	k8serrors "k8s.io/apimachinery/pkg/api/errors"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/client-go/tools/cache"
 	"k8s.io/client-go/util/workqueue"
 
@@ -140,6 +142,8 @@ func (c *apisixClusterConfigController) sync(ctx context.Context, ev *types.Even
 				zap.Error(err),
 				zap.Any("opts", clusterOpts),
 			)
+			c.controller.recorderEvent(acc, corev1.EventTypeWarning, _resourceSyncAborted, err)
+			c.controller.recordStatus(acc, _resourceSyncAborted, err, metav1.ConditionFalse)
 			return err
 		}
 	}
@@ -152,6 +156,8 @@ func (c *apisixClusterConfigController) sync(ctx context.Context, ev *types.Even
 			zap.String("key", key),
 			zap.Any("object", acc),
 		)
+		c.controller.recorderEvent(acc, corev1.EventTypeWarning, _resourceSyncAborted, err)
+		c.controller.recordStatus(acc, _resourceSyncAborted, err, metav1.ConditionFalse)
 		return err
 	}
 	log.Debugw("translated global_rule",
@@ -169,8 +175,12 @@ func (c *apisixClusterConfigController) sync(ctx context.Context, ev *types.Even
 			zap.Any("global_rule", globalRule),
 			zap.Any("cluster", acc.Name),
 		)
+		c.controller.recorderEvent(acc, corev1.EventTypeWarning, _resourceSyncAborted, err)
+		c.controller.recordStatus(acc, _resourceSyncAborted, err, metav1.ConditionFalse)
 		return err
 	}
+	c.controller.recorderEvent(acc, corev1.EventTypeNormal, _resourceSynced, nil)
+	c.controller.recordStatus(acc, _resourceSynced, nil, metav1.ConditionTrue)
 	return nil
 }
 
diff --git a/pkg/kube/apisix/apis/config/v2alpha1/types.go b/pkg/kube/apisix/apis/config/v2alpha1/types.go
index c978e92..0e49ddd 100644
--- a/pkg/kube/apisix/apis/config/v2alpha1/types.go
+++ b/pkg/kube/apisix/apis/config/v2alpha1/types.go
@@ -263,7 +263,8 @@ type ApisixClusterConfig struct {
 	metav1.ObjectMeta `json:"metadata" yaml:"metadata"`
 
 	// Spec defines the desired state of ApisixClusterConfigSpec.
-	Spec ApisixClusterConfigSpec `json:"spec" yaml:"spec"`
+	Spec   ApisixClusterConfigSpec `json:"spec" yaml:"spec"`
+	Status ApisixStatus            `json:"status,omitempty" yaml:"status,omitempty"`
 }
 
 // ApisixClusterConfigSpec defines the desired state of ApisixClusterConfigSpec.
diff --git a/pkg/kube/apisix/apis/config/v2alpha1/zz_generated.deepcopy.go b/pkg/kube/apisix/apis/config/v2alpha1/zz_generated.deepcopy.go
index cdc867c..836b88a 100644
--- a/pkg/kube/apisix/apis/config/v2alpha1/zz_generated.deepcopy.go
+++ b/pkg/kube/apisix/apis/config/v2alpha1/zz_generated.deepcopy.go
@@ -48,6 +48,7 @@ func (in *ApisixClusterConfig) DeepCopyInto(out *ApisixClusterConfig) {
 	out.TypeMeta = in.TypeMeta
 	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
 	in.Spec.DeepCopyInto(&out.Spec)
+	in.Status.DeepCopyInto(&out.Status)
 	return
 }
 
diff --git a/pkg/kube/apisix/client/clientset/versioned/typed/config/v2alpha1/apisixclusterconfig.go b/pkg/kube/apisix/client/clientset/versioned/typed/config/v2alpha1/apisixclusterconfig.go
index ab3e13f..1917523 100644
--- a/pkg/kube/apisix/client/clientset/versioned/typed/config/v2alpha1/apisixclusterconfig.go
+++ b/pkg/kube/apisix/client/clientset/versioned/typed/config/v2alpha1/apisixclusterconfig.go
@@ -39,6 +39,7 @@ type ApisixClusterConfigsGetter interface {
 type ApisixClusterConfigInterface interface {
 	Create(ctx context.Context, apisixClusterConfig *v2alpha1.ApisixClusterConfig, opts v1.CreateOptions) (*v2alpha1.ApisixClusterConfig, error)
 	Update(ctx context.Context, apisixClusterConfig *v2alpha1.ApisixClusterConfig, opts v1.UpdateOptions) (*v2alpha1.ApisixClusterConfig, error)
+	UpdateStatus(ctx context.Context, apisixClusterConfig *v2alpha1.ApisixClusterConfig, opts v1.UpdateOptions) (*v2alpha1.ApisixClusterConfig, error)
 	Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
 	DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
 	Get(ctx context.Context, name string, opts v1.GetOptions) (*v2alpha1.ApisixClusterConfig, error)
@@ -127,6 +128,21 @@ func (c *apisixClusterConfigs) Update(ctx context.Context, apisixClusterConfig *
 	return
 }
 
+// UpdateStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
+func (c *apisixClusterConfigs) UpdateStatus(ctx context.Context, apisixClusterConfig *v2alpha1.ApisixClusterConfig, opts v1.UpdateOptions) (result *v2alpha1.ApisixClusterConfig, err error) {
+	result = &v2alpha1.ApisixClusterConfig{}
+	err = c.client.Put().
+		Resource("apisixclusterconfigs").
+		Name(apisixClusterConfig.Name).
+		SubResource("status").
+		VersionedParams(&opts, scheme.ParameterCodec).
+		Body(apisixClusterConfig).
+		Do(ctx).
+		Into(result)
+	return
+}
+
 // Delete takes name of the apisixClusterConfig and deletes it. Returns an error if one occurs.
 func (c *apisixClusterConfigs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
 	return c.client.Delete().
diff --git a/pkg/kube/apisix/client/clientset/versioned/typed/config/v2alpha1/fake/fake_apisixclusterconfig.go b/pkg/kube/apisix/client/clientset/versioned/typed/config/v2alpha1/fake/fake_apisixclusterconfig.go
index 7b5af35..f348ee6 100644
--- a/pkg/kube/apisix/client/clientset/versioned/typed/config/v2alpha1/fake/fake_apisixclusterconfig.go
+++ b/pkg/kube/apisix/client/clientset/versioned/typed/config/v2alpha1/fake/fake_apisixclusterconfig.go
@@ -95,6 +95,17 @@ func (c *FakeApisixClusterConfigs) Update(ctx context.Context, apisixClusterConf
 	return obj.(*v2alpha1.ApisixClusterConfig), err
 }
 
+// UpdateStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
+func (c *FakeApisixClusterConfigs) UpdateStatus(ctx context.Context, apisixClusterConfig *v2alpha1.ApisixClusterConfig, opts v1.UpdateOptions) (*v2alpha1.ApisixClusterConfig, error) {
+	obj, err := c.Fake.
+		Invokes(testing.NewRootUpdateSubresourceAction(apisixclusterconfigsResource, "status", apisixClusterConfig), &v2alpha1.ApisixClusterConfig{})
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*v2alpha1.ApisixClusterConfig), err
+}
+
 // Delete takes name of the apisixClusterConfig and deletes it. Returns an error if one occurs.
 func (c *FakeApisixClusterConfigs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
 	_, err := c.Fake.
diff --git a/samples/deploy/rbac/apisix_view_clusterrole.yaml b/samples/deploy/rbac/apisix_view_clusterrole.yaml
index 5e99d01..ef9d342 100644
--- a/samples/deploy/rbac/apisix_view_clusterrole.yaml
+++ b/samples/deploy/rbac/apisix_view_clusterrole.yaml
@@ -146,7 +146,9 @@ rules:
   - apisixtlses
   - apisixtlses/status
   - apisixclusterconfigs
+  - apisixclusterconfigs/status
   - apisixconsumers
+  - apisixconsumers/status
   verbs:
   - '*'
 - apiGroups:
diff --git a/test/e2e/scaffold/ingress.go b/test/e2e/scaffold/ingress.go
index 5689280..75c29ca 100644
--- a/test/e2e/scaffold/ingress.go
+++ b/test/e2e/scaffold/ingress.go
@@ -158,7 +158,9 @@ rules:
       - apisixtlses
       - apisixtlses/status
       - apisixclusterconfigs
+      - apisixclusterconfigs/status
       - apisixconsumers
+      - apisixconsumers/status
     verbs:
       - '*'
   - apiGroups: