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: