From 964db6a95cfdd82969f6af5a09822929a1862408 Mon Sep 17 00:00:00 2001 From: Srivahni Chivukula Date: Tue, 7 Apr 2020 17:52:05 -0700 Subject: Status operator to update status of resources This operator monitors the status of resources like pods, services, deployments, daemonsets, configmaps etc. and updates the status in the CR accordingly. Issue-ID: MULTICLOUD-1047 Signed-off-by: Srivahni Chivukula Change-Id: I7d92584a44c8add2df69f2985140a55b460ac037 --- src/monitor/pkg/apis/k8splugin/v1alpha1/types.go | 18 ++++++-- .../k8splugin/v1alpha1/zz_generated.deepcopy.go | 54 +++++++++++++++++++++- .../k8splugin/v1alpha1/zz_generated.openapi.go | 36 +++++++++++---- 3 files changed, 93 insertions(+), 15 deletions(-) (limited to 'src/monitor/pkg/apis/k8splugin') diff --git a/src/monitor/pkg/apis/k8splugin/v1alpha1/types.go b/src/monitor/pkg/apis/k8splugin/v1alpha1/types.go index 30fe1dd2..231f226e 100644 --- a/src/monitor/pkg/apis/k8splugin/v1alpha1/types.go +++ b/src/monitor/pkg/apis/k8splugin/v1alpha1/types.go @@ -1,7 +1,10 @@ package v1alpha1 import ( + appsv1 "k8s.io/api/apps/v1" + v1 "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" + v1beta1 "k8s.io/api/extensions/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -28,10 +31,17 @@ type ResourceBundleStateSpec struct { // ResourceBundleStatus defines the observed state of ResourceBundleState // +k8s:openapi-gen=true type ResourceBundleStatus struct { - Ready bool `json:"ready" protobuf:"varint,1,opt,name=ready"` - ResourceCount int32 `json:"resourceCount" protobuf:"varint,2,opt,name=resourceCount"` - PodStatuses []PodStatus `json:"podStatuses" protobuf:"varint,3,opt,name=podStatuses"` - ServiceStatuses []corev1.Service `json:"serviceStatuses" protobuf:"varint,4,opt,name=serviceStatuses"` + Ready bool `json:"ready" protobuf:"varint,1,opt,name=ready"` + ResourceCount int32 `json:"resourceCount" protobuf:"varint,2,opt,name=resourceCount"` + PodStatuses []PodStatus `json:"podStatuses" protobuf:"varint,3,opt,name=podStatuses"` + ServiceStatuses []corev1.Service `json:"serviceStatuses" protobuf:"varint,4,opt,name=serviceStatuses"` + ConfigMapStatuses []corev1.ConfigMap `json:"configMapStatuses" protobuf:"varint,5,opt,name=configMapStatuses"` + DeploymentStatuses []appsv1.Deployment `json:"deploymentStatuses" protobuf:"varint,6,opt,name=deploymentStatuses"` + SecretStatuses []corev1.Secret `json:"secretStatuses" protobuf:"varint,7,opt,name=secretStatuses"` + DaemonSetStatuses []appsv1.DaemonSet `json:"daemonSetStatuses" protobuf:"varint,8,opt,name=daemonSetStatuses"` + IngressStatuses []v1beta1.Ingress `json:"ingressStatuses" protobuf:"varint,11,opt,name=ingressStatuses"` + JobStatuses []v1.Job `json:"jobStatuses" protobuf:"varint,12,opt,name=jobStatuses"` + StatefulSetStatuses []appsv1.StatefulSet `json:"statefulSetStatuses" protobuf:"varint,13,opt,name=statefulSetStatuses"` } // PodStatus defines the observed state of ResourceBundleState diff --git a/src/monitor/pkg/apis/k8splugin/v1alpha1/zz_generated.deepcopy.go b/src/monitor/pkg/apis/k8splugin/v1alpha1/zz_generated.deepcopy.go index 72036ed1..d25db361 100644 --- a/src/monitor/pkg/apis/k8splugin/v1alpha1/zz_generated.deepcopy.go +++ b/src/monitor/pkg/apis/k8splugin/v1alpha1/zz_generated.deepcopy.go @@ -1,11 +1,14 @@ // +build !ignore_autogenerated -// Code generated by operator-sdk-v0.9.0-x86_64-linux-gnu. DO NOT EDIT. +// Code generated by operator-sdk. DO NOT EDIT. package v1alpha1 import ( + appsv1 "k8s.io/api/apps/v1" + batchv1 "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" + v1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" ) @@ -127,6 +130,55 @@ func (in *ResourceBundleStatus) DeepCopyInto(out *ResourceBundleStatus) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.ConfigMapStatuses != nil { + in, out := &in.ConfigMapStatuses, &out.ConfigMapStatuses + *out = make([]corev1.ConfigMap, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DeploymentStatuses != nil { + in, out := &in.DeploymentStatuses, &out.DeploymentStatuses + *out = make([]appsv1.Deployment, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.SecretStatuses != nil { + in, out := &in.SecretStatuses, &out.SecretStatuses + *out = make([]corev1.Secret, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DaemonSetStatuses != nil { + in, out := &in.DaemonSetStatuses, &out.DaemonSetStatuses + *out = make([]appsv1.DaemonSet, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IngressStatuses != nil { + in, out := &in.IngressStatuses, &out.IngressStatuses + *out = make([]v1beta1.Ingress, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.JobStatuses != nil { + in, out := &in.JobStatuses, &out.JobStatuses + *out = make([]batchv1.Job, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.StatefulSetStatuses != nil { + in, out := &in.StatefulSetStatuses, &out.StatefulSetStatuses + *out = make([]appsv1.StatefulSet, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } return } diff --git a/src/monitor/pkg/apis/k8splugin/v1alpha1/zz_generated.openapi.go b/src/monitor/pkg/apis/k8splugin/v1alpha1/zz_generated.openapi.go index 232acefb..1d4e81bf 100644 --- a/src/monitor/pkg/apis/k8splugin/v1alpha1/zz_generated.openapi.go +++ b/src/monitor/pkg/apis/k8splugin/v1alpha1/zz_generated.openapi.go @@ -1,4 +1,4 @@ -// +build ! +// +build !ignore_autogenerated // This file was autogenerated by openapi-gen. Do not edit it manually! @@ -11,10 +11,10 @@ import ( func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition { return map[string]common.OpenAPIDefinition{ - "monitor/pkg/apis/k8splugin/v1alpha1.PodStatus": schema_pkg_apis_k8splugin_v1alpha1_PodStatus(ref), - "monitor/pkg/apis/k8splugin/v1alpha1.ResourceBundleState": schema_pkg_apis_k8splugin_v1alpha1_ResourceBundleState(ref), - "monitor/pkg/apis/k8splugin/v1alpha1.ResourceBundleStateSpec": schema_pkg_apis_k8splugin_v1alpha1_ResourceBundleStateSpec(ref), - "monitor/pkg/apis/k8splugin/v1alpha1.ResourceBundleStatus": schema_pkg_apis_k8splugin_v1alpha1_ResourceBundleStatus(ref), + "./pkg/apis/k8splugin/v1alpha1.PodStatus": schema_pkg_apis_k8splugin_v1alpha1_PodStatus(ref), + "./pkg/apis/k8splugin/v1alpha1.ResourceBundleState": schema_pkg_apis_k8splugin_v1alpha1_ResourceBundleState(ref), + "./pkg/apis/k8splugin/v1alpha1.ResourceBundleStateSpec": schema_pkg_apis_k8splugin_v1alpha1_ResourceBundleStateSpec(ref), + "./pkg/apis/k8splugin/v1alpha1.ResourceBundleStatus": schema_pkg_apis_k8splugin_v1alpha1_ResourceBundleStatus(ref), } } @@ -23,6 +23,7 @@ func schema_pkg_apis_k8splugin_v1alpha1_PodStatus(ref common.ReferenceCallback) Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Description: "PodStatus defines the observed state of ResourceBundleState", + Type: []string{"object"}, Properties: map[string]spec.Schema{ "metadata": { SchemaProps: spec.SchemaProps{ @@ -54,6 +55,7 @@ func schema_pkg_apis_k8splugin_v1alpha1_ResourceBundleState(ref common.Reference Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Description: "ResourceBundleState is the Schema for the ResourceBundleStatees API", + Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { SchemaProps: spec.SchemaProps{ @@ -76,19 +78,19 @@ func schema_pkg_apis_k8splugin_v1alpha1_ResourceBundleState(ref common.Reference }, "spec": { SchemaProps: spec.SchemaProps{ - Ref: ref("monitor/pkg/apis/k8splugin/v1alpha1.ResourceBundleStateSpec"), + Ref: ref("./pkg/apis/k8splugin/v1alpha1.ResourceBundleStateSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ - Ref: ref("monitor/pkg/apis/k8splugin/v1alpha1.ResourceBundleStatus"), + Ref: ref("./pkg/apis/k8splugin/v1alpha1.ResourceBundleStatus"), }, }, }, }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "monitor/pkg/apis/k8splugin/v1alpha1.ResourceBundleStateSpec", "monitor/pkg/apis/k8splugin/v1alpha1.ResourceBundleStatus"}, + "./pkg/apis/k8splugin/v1alpha1.ResourceBundleStateSpec", "./pkg/apis/k8splugin/v1alpha1.ResourceBundleStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } @@ -97,6 +99,7 @@ func schema_pkg_apis_k8splugin_v1alpha1_ResourceBundleStateSpec(ref common.Refer Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Description: "ResourceBundleStateSpec defines the desired state of ResourceBundleState", + Type: []string{"object"}, Properties: map[string]spec.Schema{ "selector": { SchemaProps: spec.SchemaProps{ @@ -117,6 +120,7 @@ func schema_pkg_apis_k8splugin_v1alpha1_ResourceBundleStatus(ref common.Referenc Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Description: "ResourceBundleStatus defines the observed state of ResourceBundleState", + Type: []string{"object"}, Properties: map[string]spec.Schema{ "ready": { SchemaProps: spec.SchemaProps{ @@ -136,7 +140,7 @@ func schema_pkg_apis_k8splugin_v1alpha1_ResourceBundleStatus(ref common.Referenc Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("monitor/pkg/apis/k8splugin/v1alpha1.PodStatus"), + Ref: ref("./pkg/apis/k8splugin/v1alpha1.PodStatus"), }, }, }, @@ -154,11 +158,23 @@ func schema_pkg_apis_k8splugin_v1alpha1_ResourceBundleStatus(ref common.Referenc }, }, }, + "configMapStatuses": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/api/core/v1.ConfigMap"), + }, + }, + }, + }, + }, }, Required: []string{"ready", "resourceCount", "podStatuses", "serviceStatuses"}, }, }, Dependencies: []string{ - "k8s.io/api/core/v1.Service", "monitor/pkg/apis/k8splugin/v1alpha1.PodStatus"}, + "./pkg/apis/k8splugin/v1alpha1.PodStatus", "k8s.io/api/core/v1.ConfigMap", "k8s.io/api/core/v1.Service"}, } } -- cgit 1.2.3-korg