Files
paralus/pkg/service/deleterelayservice.go
Nirav Parikhandmabhi f4a8a69c7d Delete relay agent from target cluster while cluster deletion (#120)
* updated reconciler to handle delete events

Signed-off-by: mabhi <abhijit.mukherjee@infracloud.io>

* fix to ensure relay agent is deleted from taget cluster

Signed-off-by: Nirav Parikh <nir.parikh05@gmail.com>

* updated changelog

Signed-off-by: niravparikh05 <nir.parikh05@gmail.com>

Signed-off-by: mabhi <abhijit.mukherjee@infracloud.io>
Signed-off-by: Nirav Parikh <nir.parikh05@gmail.com>
Signed-off-by: niravparikh05 <nir.parikh05@gmail.com>
Co-authored-by: mabhi <abhijit.mukherjee@infracloud.io>
2022-12-29 13:15:08 +05:30

50 lines
1.3 KiB
Go

package service
import (
"context"
"k8s.io/client-go/tools/clientcmd"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
)
func DeleteRelayAgent(ctx context.Context, kubeConfig []byte, namespace string) bool {
config, err := clientcmd.NewClientConfigFromBytes(kubeConfig)
if err != nil {
_log.Errorf("Unable to build kube configuration %s", err.Error())
return false
}
clientConfig, err := config.ClientConfig()
if err != nil {
_log.Errorf("Unable to get client config %s", err.Error())
return false
}
clientSet, err := kubernetes.NewForConfig(clientConfig)
if err != nil {
_log.Errorf("Unable to clientset %s", err.Error())
return false
}
status, err := processDeleteDeployment(ctx, clientSet, namespace)
if err != nil {
return false
}
return status
}
func processDeleteDeployment(ctx context.Context, clientset *kubernetes.Clientset, ns string) (bool, error) {
err := clientset.AppsV1().Deployments(ns).Delete(ctx, "relay-agent", v1.DeleteOptions{})
if err != nil {
_log.Errorf("Error while deleting deployment %s", err.Error())
return false, err
}
err = clientset.CoreV1().ConfigMaps(ns).Delete(ctx, "relay-agent-config", v1.DeleteOptions{})
if err != nil {
_log.Errorf("Error while deleting ConfigMap %s", err.Error())
return false, err
}
return true, nil
}