Set OwnerReferences to K8s resources created by Fission (#2964)
* Poolmanager deployment is created based on environment. Set environment as owner to poolmanager deployment. Signed-off-by: Md Soharab Ansari <soharab.ansari@infracloud.io> * Set OwnerReferences to K8s resources created by fission resources. ``` Set OwnerReferences to deployment, service and HPA created by newdeploy function. Set OwnerReferences to builderManager deployment and service created by environment. Set OwnerReferences to deployment, service and HPA created by container function. ``` Signed-off-by: Md Soharab Ansari <soharab.ansari@infracloud.io> * Use ControllerRef Signed-off-by: Md Soharab Ansari <soharab.ansari@infracloud.io> --------- Signed-off-by: Md Soharab Ansari <soharab.ansari@infracloud.io>
This commit is contained in:
@@ -28,6 +28,7 @@ import (
|
|||||||
apiv1 "k8s.io/api/core/v1"
|
apiv1 "k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
"k8s.io/apimachinery/pkg/labels"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
"k8s.io/apimachinery/pkg/util/intstr"
|
||||||
"k8s.io/client-go/kubernetes"
|
"k8s.io/client-go/kubernetes"
|
||||||
@@ -329,6 +330,13 @@ func (envw *environmentWatcher) createBuilderService(ctx context.Context, env *f
|
|||||||
Namespace: ns,
|
Namespace: ns,
|
||||||
Name: name,
|
Name: name,
|
||||||
Labels: sel,
|
Labels: sel,
|
||||||
|
OwnerReferences: []metav1.OwnerReference{
|
||||||
|
*metav1.NewControllerRef(env, schema.GroupVersionKind{
|
||||||
|
Group: "fission.io",
|
||||||
|
Version: "v1",
|
||||||
|
Kind: "Environment",
|
||||||
|
}),
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Spec: apiv1.ServiceSpec{
|
Spec: apiv1.ServiceSpec{
|
||||||
Selector: sel,
|
Selector: sel,
|
||||||
@@ -440,6 +448,13 @@ func (envw *environmentWatcher) createBuilderDeployment(ctx context.Context, env
|
|||||||
Namespace: ns,
|
Namespace: ns,
|
||||||
Name: name,
|
Name: name,
|
||||||
Labels: sel,
|
Labels: sel,
|
||||||
|
OwnerReferences: []metav1.OwnerReference{
|
||||||
|
*metav1.NewControllerRef(env, schema.GroupVersionKind{
|
||||||
|
Group: "fission.io",
|
||||||
|
Version: "v1",
|
||||||
|
Kind: "Environment",
|
||||||
|
}),
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Spec: appsv1.DeploymentSpec{
|
Spec: appsv1.DeploymentSpec{
|
||||||
Replicas: &replicas,
|
Replicas: &replicas,
|
||||||
|
|||||||
@@ -421,7 +421,7 @@ func (caaf *Container) fnCreate(ctx context.Context, fn *fv1.Function) (*fscache
|
|||||||
return nil, fmt.Errorf("error creating deployment %s: %w", objName, err)
|
return nil, fmt.Errorf("error creating deployment %s: %w", objName, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
hpa, err := caaf.hpaops.CreateOrGetHpa(ctx, objName, &fn.Spec.InvokeStrategy.ExecutionStrategy, depl, deployLabels, deployAnnotations)
|
hpa, err := caaf.hpaops.CreateOrGetHpa(ctx, fn, objName, &fn.Spec.InvokeStrategy.ExecutionStrategy, depl, deployLabels, deployAnnotations)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
caaf.logger.Error("error creating HPA", zap.Error(err), zap.String("hpa", objName))
|
caaf.logger.Error("error creating HPA", zap.Error(err), zap.String("hpa", objName))
|
||||||
go cleanupFunc(ns, objName)
|
go cleanupFunc(ns, objName)
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import (
|
|||||||
apiv1 "k8s.io/api/core/v1"
|
apiv1 "k8s.io/api/core/v1"
|
||||||
k8s_err "k8s.io/apimachinery/pkg/api/errors"
|
k8s_err "k8s.io/apimachinery/pkg/api/errors"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
"k8s.io/apimachinery/pkg/util/intstr"
|
||||||
|
|
||||||
fv1 "github.com/fission/fission/pkg/apis/core/v1"
|
fv1 "github.com/fission/fission/pkg/apis/core/v1"
|
||||||
@@ -86,6 +87,7 @@ func (cn *Container) createOrGetDeployment(ctx context.Context, fn *fv1.Function
|
|||||||
if existingDepl.Annotations[fv1.EXECUTOR_INSTANCEID_LABEL] != cn.instanceID {
|
if existingDepl.Annotations[fv1.EXECUTOR_INSTANCEID_LABEL] != cn.instanceID {
|
||||||
existingDepl.Annotations = deployment.Annotations
|
existingDepl.Annotations = deployment.Annotations
|
||||||
existingDepl.Labels = deployment.Labels
|
existingDepl.Labels = deployment.Labels
|
||||||
|
existingDepl.OwnerReferences = deployment.OwnerReferences
|
||||||
existingDepl.Spec.Template.Spec.Containers = deployment.Spec.Template.Spec.Containers
|
existingDepl.Spec.Template.Spec.Containers = deployment.Spec.Template.Spec.Containers
|
||||||
existingDepl.Spec.Template.Spec.ServiceAccountName = deployment.Spec.Template.Spec.ServiceAccountName
|
existingDepl.Spec.Template.Spec.ServiceAccountName = deployment.Spec.Template.Spec.ServiceAccountName
|
||||||
existingDepl.Spec.Template.Spec.TerminationGracePeriodSeconds = deployment.Spec.Template.Spec.TerminationGracePeriodSeconds
|
existingDepl.Spec.Template.Spec.TerminationGracePeriodSeconds = deployment.Spec.Template.Spec.TerminationGracePeriodSeconds
|
||||||
@@ -268,6 +270,13 @@ func (cn *Container) getDeploymentSpec(ctx context.Context, fn *fv1.Function, ta
|
|||||||
Name: deployName,
|
Name: deployName,
|
||||||
Labels: deployLabels,
|
Labels: deployLabels,
|
||||||
Annotations: deployAnnotations,
|
Annotations: deployAnnotations,
|
||||||
|
OwnerReferences: []metav1.OwnerReference{
|
||||||
|
*metav1.NewControllerRef(fn, schema.GroupVersionKind{
|
||||||
|
Group: "fission.io",
|
||||||
|
Version: "v1",
|
||||||
|
Kind: "Function",
|
||||||
|
}),
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Spec: appsv1.DeploymentSpec{
|
Spec: appsv1.DeploymentSpec{
|
||||||
Replicas: &replicas,
|
Replicas: &replicas,
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import (
|
|||||||
apiv1 "k8s.io/api/core/v1"
|
apiv1 "k8s.io/api/core/v1"
|
||||||
k8s_err "k8s.io/apimachinery/pkg/api/errors"
|
k8s_err "k8s.io/apimachinery/pkg/api/errors"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
"k8s.io/apimachinery/pkg/util/intstr"
|
||||||
|
|
||||||
fv1 "github.com/fission/fission/pkg/apis/core/v1"
|
fv1 "github.com/fission/fission/pkg/apis/core/v1"
|
||||||
@@ -54,6 +55,13 @@ func (cn *Container) createOrGetSvc(ctx context.Context, fn *fv1.Function, deplo
|
|||||||
Name: svcName,
|
Name: svcName,
|
||||||
Labels: deployLabels,
|
Labels: deployLabels,
|
||||||
Annotations: deployAnnotations,
|
Annotations: deployAnnotations,
|
||||||
|
OwnerReferences: []metav1.OwnerReference{
|
||||||
|
*metav1.NewControllerRef(fn, schema.GroupVersionKind{
|
||||||
|
Group: "fission.io",
|
||||||
|
Version: "v1",
|
||||||
|
Kind: "Function",
|
||||||
|
}),
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Spec: apiv1.ServiceSpec{
|
Spec: apiv1.ServiceSpec{
|
||||||
Ports: []apiv1.ServicePort{
|
Ports: []apiv1.ServicePort{
|
||||||
@@ -74,6 +82,7 @@ func (cn *Container) createOrGetSvc(ctx context.Context, fn *fv1.Function, deplo
|
|||||||
if existingSvc.Annotations[fv1.EXECUTOR_INSTANCEID_LABEL] != cn.instanceID {
|
if existingSvc.Annotations[fv1.EXECUTOR_INSTANCEID_LABEL] != cn.instanceID {
|
||||||
existingSvc.Annotations = service.Annotations
|
existingSvc.Annotations = service.Annotations
|
||||||
existingSvc.Labels = service.Labels
|
existingSvc.Labels = service.Labels
|
||||||
|
existingSvc.OwnerReferences = service.OwnerReferences
|
||||||
existingSvc.Spec.Ports = service.Spec.Ports
|
existingSvc.Spec.Ports = service.Spec.Ports
|
||||||
existingSvc.Spec.Selector = service.Spec.Selector
|
existingSvc.Spec.Selector = service.Spec.Selector
|
||||||
existingSvc.Spec.Type = service.Spec.Type
|
existingSvc.Spec.Type = service.Spec.Type
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import (
|
|||||||
k8s_err "k8s.io/apimachinery/pkg/api/errors"
|
k8s_err "k8s.io/apimachinery/pkg/api/errors"
|
||||||
"k8s.io/apimachinery/pkg/api/resource"
|
"k8s.io/apimachinery/pkg/api/resource"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
"k8s.io/apimachinery/pkg/util/intstr"
|
||||||
"k8s.io/client-go/kubernetes"
|
"k8s.io/client-go/kubernetes"
|
||||||
|
|
||||||
@@ -61,6 +62,7 @@ func (deploy *NewDeploy) createOrGetDeployment(ctx context.Context, fn *fv1.Func
|
|||||||
if existingDepl.Annotations[fv1.EXECUTOR_INSTANCEID_LABEL] != deploy.instanceID {
|
if existingDepl.Annotations[fv1.EXECUTOR_INSTANCEID_LABEL] != deploy.instanceID {
|
||||||
existingDepl.Annotations = deployment.Annotations
|
existingDepl.Annotations = deployment.Annotations
|
||||||
existingDepl.Labels = deployment.Labels
|
existingDepl.Labels = deployment.Labels
|
||||||
|
existingDepl.OwnerReferences = deployment.OwnerReferences
|
||||||
existingDepl.Spec.Template.Spec.Containers = deployment.Spec.Template.Spec.Containers
|
existingDepl.Spec.Template.Spec.Containers = deployment.Spec.Template.Spec.Containers
|
||||||
existingDepl.Spec.Template.Spec.ServiceAccountName = deployment.Spec.Template.Spec.ServiceAccountName
|
existingDepl.Spec.Template.Spec.ServiceAccountName = deployment.Spec.Template.Spec.ServiceAccountName
|
||||||
existingDepl.Spec.Template.Spec.TerminationGracePeriodSeconds = deployment.Spec.Template.Spec.TerminationGracePeriodSeconds
|
existingDepl.Spec.Template.Spec.TerminationGracePeriodSeconds = deployment.Spec.Template.Spec.TerminationGracePeriodSeconds
|
||||||
@@ -249,6 +251,13 @@ func (deploy *NewDeploy) getDeploymentSpec(ctx context.Context, fn *fv1.Function
|
|||||||
Name: deployName,
|
Name: deployName,
|
||||||
Labels: deployLabels,
|
Labels: deployLabels,
|
||||||
Annotations: deployAnnotations,
|
Annotations: deployAnnotations,
|
||||||
|
OwnerReferences: []metav1.OwnerReference{
|
||||||
|
*metav1.NewControllerRef(fn, schema.GroupVersionKind{
|
||||||
|
Group: "fission.io",
|
||||||
|
Version: "v1",
|
||||||
|
Kind: "Function",
|
||||||
|
}),
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Spec: appsv1.DeploymentSpec{
|
Spec: appsv1.DeploymentSpec{
|
||||||
Replicas: &replicas,
|
Replicas: &replicas,
|
||||||
@@ -323,13 +332,20 @@ func (deploy *NewDeploy) getResources(env *fv1.Environment, fn *fv1.Function) ap
|
|||||||
return resources
|
return resources
|
||||||
}
|
}
|
||||||
|
|
||||||
func (deploy *NewDeploy) createOrGetSvc(ctx context.Context, deployLabels map[string]string, deployAnnotations map[string]string, svcName string, svcNamespace string) (*apiv1.Service, error) {
|
func (deploy *NewDeploy) createOrGetSvc(ctx context.Context, fn *fv1.Function, deployLabels map[string]string, deployAnnotations map[string]string, svcName string, svcNamespace string) (*apiv1.Service, error) {
|
||||||
logger := otelUtils.LoggerWithTraceID(ctx, deploy.logger)
|
logger := otelUtils.LoggerWithTraceID(ctx, deploy.logger)
|
||||||
service := &apiv1.Service{
|
service := &apiv1.Service{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: svcName,
|
Name: svcName,
|
||||||
Labels: deployLabels,
|
Labels: deployLabels,
|
||||||
Annotations: deployAnnotations,
|
Annotations: deployAnnotations,
|
||||||
|
OwnerReferences: []metav1.OwnerReference{
|
||||||
|
*metav1.NewControllerRef(fn, schema.GroupVersionKind{
|
||||||
|
Group: "fission.io",
|
||||||
|
Version: "v1",
|
||||||
|
Kind: "Function",
|
||||||
|
}),
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Spec: apiv1.ServiceSpec{
|
Spec: apiv1.ServiceSpec{
|
||||||
Ports: []apiv1.ServicePort{
|
Ports: []apiv1.ServicePort{
|
||||||
@@ -351,6 +367,7 @@ func (deploy *NewDeploy) createOrGetSvc(ctx context.Context, deployLabels map[st
|
|||||||
if existingSvc.Annotations[fv1.EXECUTOR_INSTANCEID_LABEL] != deploy.instanceID {
|
if existingSvc.Annotations[fv1.EXECUTOR_INSTANCEID_LABEL] != deploy.instanceID {
|
||||||
existingSvc.Annotations = service.Annotations
|
existingSvc.Annotations = service.Annotations
|
||||||
existingSvc.Labels = service.Labels
|
existingSvc.Labels = service.Labels
|
||||||
|
existingSvc.OwnerReferences = service.OwnerReferences
|
||||||
existingSvc.Spec.Ports = service.Spec.Ports
|
existingSvc.Spec.Ports = service.Spec.Ports
|
||||||
existingSvc.Spec.Selector = service.Spec.Selector
|
existingSvc.Spec.Selector = service.Spec.Selector
|
||||||
existingSvc.Spec.Type = service.Spec.Type
|
existingSvc.Spec.Type = service.Spec.Type
|
||||||
|
|||||||
@@ -451,7 +451,7 @@ func (deploy *NewDeploy) fnCreate(ctx context.Context, fn *fv1.Function) (*fscac
|
|||||||
// Since newdeploy waits for pods of deployment to be ready,
|
// Since newdeploy waits for pods of deployment to be ready,
|
||||||
// change the order of kubeObject creation (create service first,
|
// change the order of kubeObject creation (create service first,
|
||||||
// then deployment) to take advantage of waiting time.
|
// then deployment) to take advantage of waiting time.
|
||||||
svc, err := deploy.createOrGetSvc(ctx, deployLabels, deployAnnotations, objName, ns)
|
svc, err := deploy.createOrGetSvc(ctx, fn, deployLabels, deployAnnotations, objName, ns)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
deploy.logger.Error("error creating service", zap.Error(err), zap.String("service", objName))
|
deploy.logger.Error("error creating service", zap.Error(err), zap.String("service", objName))
|
||||||
go cleanupFunc(context.Background(), ns, objName)
|
go cleanupFunc(context.Background(), ns, objName)
|
||||||
@@ -466,7 +466,7 @@ func (deploy *NewDeploy) fnCreate(ctx context.Context, fn *fv1.Function) (*fscac
|
|||||||
return nil, fmt.Errorf("error creating deployment %s: %w", objName, err)
|
return nil, fmt.Errorf("error creating deployment %s: %w", objName, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
hpa, err := deploy.hpaops.CreateOrGetHpa(ctx, objName, &fn.Spec.InvokeStrategy.ExecutionStrategy, depl, deployLabels, deployAnnotations)
|
hpa, err := deploy.hpaops.CreateOrGetHpa(ctx, fn, objName, &fn.Spec.InvokeStrategy.ExecutionStrategy, depl, deployLabels, deployAnnotations)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
deploy.logger.Error("error creating HPA", zap.Error(err), zap.String("hpa", objName))
|
deploy.logger.Error("error creating HPA", zap.Error(err), zap.String("hpa", objName))
|
||||||
go cleanupFunc(context.Background(), ns, objName)
|
go cleanupFunc(context.Background(), ns, objName)
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import (
|
|||||||
apiv1 "k8s.io/api/core/v1"
|
apiv1 "k8s.io/api/core/v1"
|
||||||
k8sErrs "k8s.io/apimachinery/pkg/api/errors"
|
k8sErrs "k8s.io/apimachinery/pkg/api/errors"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
|
|
||||||
fv1 "github.com/fission/fission/pkg/apis/core/v1"
|
fv1 "github.com/fission/fission/pkg/apis/core/v1"
|
||||||
"github.com/fission/fission/pkg/executor/util"
|
"github.com/fission/fission/pkg/executor/util"
|
||||||
@@ -62,6 +63,13 @@ func (gp *GenericPool) genDeploymentMeta(env *fv1.Environment) metav1.ObjectMeta
|
|||||||
Name: getPoolName(env),
|
Name: getPoolName(env),
|
||||||
Labels: deployLabels,
|
Labels: deployLabels,
|
||||||
Annotations: deployAnnotations,
|
Annotations: deployAnnotations,
|
||||||
|
OwnerReferences: []metav1.OwnerReference{
|
||||||
|
*metav1.NewControllerRef(env, schema.GroupVersionKind{
|
||||||
|
Group: "fission.io",
|
||||||
|
Version: "v1",
|
||||||
|
Kind: "Environment",
|
||||||
|
}),
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import (
|
|||||||
corev1 "k8s.io/api/core/v1"
|
corev1 "k8s.io/api/core/v1"
|
||||||
k8s_err "k8s.io/apimachinery/pkg/api/errors"
|
k8s_err "k8s.io/apimachinery/pkg/api/errors"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/client-go/kubernetes"
|
"k8s.io/client-go/kubernetes"
|
||||||
|
|
||||||
fv1 "github.com/fission/fission/pkg/apis/core/v1"
|
fv1 "github.com/fission/fission/pkg/apis/core/v1"
|
||||||
@@ -72,7 +73,7 @@ func getScaleTargetRef(deployment *appsv1.Deployment) asv2.CrossVersionObjectRef
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (hpaops *HpaOperations) CreateOrGetHpa(ctx context.Context, hpaName string, execStrategy *fv1.ExecutionStrategy,
|
func (hpaops *HpaOperations) CreateOrGetHpa(ctx context.Context, fn *fv1.Function, hpaName string, execStrategy *fv1.ExecutionStrategy,
|
||||||
depl *appsv1.Deployment, deployLabels map[string]string, deployAnnotations map[string]string) (*asv2.HorizontalPodAutoscaler, error) {
|
depl *appsv1.Deployment, deployLabels map[string]string, deployAnnotations map[string]string) (*asv2.HorizontalPodAutoscaler, error) {
|
||||||
|
|
||||||
if depl == nil {
|
if depl == nil {
|
||||||
@@ -103,6 +104,13 @@ func (hpaops *HpaOperations) CreateOrGetHpa(ctx context.Context, hpaName string,
|
|||||||
Name: hpaName,
|
Name: hpaName,
|
||||||
Labels: deployLabels,
|
Labels: deployLabels,
|
||||||
Annotations: deployAnnotations,
|
Annotations: deployAnnotations,
|
||||||
|
OwnerReferences: []metav1.OwnerReference{
|
||||||
|
*metav1.NewControllerRef(fn, schema.GroupVersionKind{
|
||||||
|
Group: "fission.io",
|
||||||
|
Version: "v1",
|
||||||
|
Kind: "Function",
|
||||||
|
}),
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Spec: asv2.HorizontalPodAutoscalerSpec{
|
Spec: asv2.HorizontalPodAutoscalerSpec{
|
||||||
ScaleTargetRef: getScaleTargetRef(depl),
|
ScaleTargetRef: getScaleTargetRef(depl),
|
||||||
@@ -119,6 +127,7 @@ func (hpaops *HpaOperations) CreateOrGetHpa(ctx context.Context, hpaName string,
|
|||||||
if existingHpa.Annotations[fv1.EXECUTOR_INSTANCEID_LABEL] != hpaops.instanceID {
|
if existingHpa.Annotations[fv1.EXECUTOR_INSTANCEID_LABEL] != hpaops.instanceID {
|
||||||
existingHpa.Annotations = hpa.Annotations
|
existingHpa.Annotations = hpa.Annotations
|
||||||
existingHpa.Labels = hpa.Labels
|
existingHpa.Labels = hpa.Labels
|
||||||
|
existingHpa.OwnerReferences = hpa.OwnerReferences
|
||||||
existingHpa.Spec = hpa.Spec
|
existingHpa.Spec = hpa.Spec
|
||||||
existingHpa, err = hpaops.kubernetesClient.AutoscalingV2().HorizontalPodAutoscalers(depl.ObjectMeta.Namespace).Update(ctx, existingHpa, metav1.UpdateOptions{})
|
existingHpa, err = hpaops.kubernetesClient.AutoscalingV2().HorizontalPodAutoscalers(depl.ObjectMeta.Namespace).Update(ctx, existingHpa, metav1.UpdateOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import (
|
|||||||
asv2 "k8s.io/api/autoscaling/v2"
|
asv2 "k8s.io/api/autoscaling/v2"
|
||||||
corev1 "k8s.io/api/core/v1"
|
corev1 "k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/util/uuid"
|
||||||
"k8s.io/client-go/kubernetes/fake"
|
"k8s.io/client-go/kubernetes/fake"
|
||||||
|
|
||||||
fv1 "github.com/fission/fission/pkg/apis/core/v1"
|
fv1 "github.com/fission/fission/pkg/apis/core/v1"
|
||||||
@@ -67,7 +68,14 @@ func TestHpaOps(t *testing.T) {
|
|||||||
"test-annotation": "test-annotation-value",
|
"test-annotation": "test-annotation-value",
|
||||||
}
|
}
|
||||||
// Test CreateHPA
|
// Test CreateHPA
|
||||||
hpa, err := hpaops.CreateOrGetHpa(ctx, "test-hpa",
|
hpa, err := hpaops.CreateOrGetHpa(ctx,
|
||||||
|
&fv1.Function{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: "test-fn",
|
||||||
|
UID: uuid.NewUUID(),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"test-hpa",
|
||||||
&fv1.ExecutionStrategy{
|
&fv1.ExecutionStrategy{
|
||||||
ExecutorType: fv1.ExecutorTypeNewdeploy,
|
ExecutorType: fv1.ExecutorTypeNewdeploy,
|
||||||
MinScale: 1,
|
MinScale: 1,
|
||||||
|
|||||||
Reference in New Issue
Block a user