From ce5c20b32d7fe6214c5d76b0676c2a5d89abe0e9 Mon Sep 17 00:00:00 2001 From: Lukasz Rajewski Date: Mon, 9 Aug 2021 22:44:48 +0200 Subject: Fixed issue of leftovers after instace create failure Fixed issue of leftovers after instace create failure Issue-ID: MULTICLOUD-1269 Signed-off-by: Lukasz Rajewski Change-Id: I69b4a170d72a482f29fd79ecdfc949f55c70a61a --- src/k8splugin/internal/app/client.go | 7 ++++--- src/k8splugin/internal/app/instance.go | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'src/k8splugin/internal') diff --git a/src/k8splugin/internal/app/client.go b/src/k8splugin/internal/app/client.go index 00fd8e97..405fdc33 100644 --- a/src/k8splugin/internal/app/client.go +++ b/src/k8splugin/internal/app/client.go @@ -353,16 +353,17 @@ func (k *KubernetesClient) updateKind(resTempl helm.KubernetesResourceTemplate, func (k *KubernetesClient) createResources(sortedTemplates []helm.KubernetesResourceTemplate, namespace string) ([]helm.KubernetesResource, error) { + var createdResources []helm.KubernetesResource + err := k.ensureNamespace(namespace) if err != nil { - return nil, pkgerrors.Wrap(err, "Creating Namespace") + return createdResources, pkgerrors.Wrap(err, "Creating Namespace") } - var createdResources []helm.KubernetesResource for _, resTempl := range sortedTemplates { resCreated, err := k.CreateKind(resTempl, namespace) if err != nil { - return nil, pkgerrors.Wrapf(err, "Error creating kind: %+v", resTempl.GVK) + return createdResources, pkgerrors.Wrapf(err, "Error creating kind: %+v", resTempl.GVK) } createdResources = append(createdResources, resCreated) } diff --git a/src/k8splugin/internal/app/instance.go b/src/k8splugin/internal/app/instance.go index c1ec35b6..4a326d50 100644 --- a/src/k8splugin/internal/app/instance.go +++ b/src/k8splugin/internal/app/instance.go @@ -164,6 +164,10 @@ func (v *InstanceClient) Create(i InstanceRequest) (InstanceResponse, error) { createdResources, err := k8sClient.createResources(sortedTemplates, profile.Namespace) if err != nil { + if len(createdResources) > 0 { + log.Printf("[Instance] Reverting created resources on Error: %s", err.Error()) + k8sClient.deleteResources(createdResources, profile.Namespace) + } return InstanceResponse{}, pkgerrors.Wrap(err, "Create Kubernetes Resources") } -- cgit 1.2.3-korg