From 44c11584f16d662d2f6b5ec5130c70d15c6eba70 Mon Sep 17 00:00:00 2001 From: Kartik Joshi Date: Tue, 14 Nov 2023 14:13:50 +0530 Subject: [PATCH] Provisioner: Add support to fetch kbs service ip Fixes: #1471 Signed-off-by: Kartik Joshi --- test/e2e/main_test.go | 2 +- test/provisioner/provision.go | 42 ++++++++++++++++++++++++++++------- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/test/e2e/main_test.go b/test/e2e/main_test.go index 759d1c9bd..55b5ecca0 100644 --- a/test/e2e/main_test.go +++ b/test/e2e/main_test.go @@ -144,7 +144,7 @@ func TestMain(m *testing.M) { return ctx, err } var kbsPodIP string - if kbsPodIP, err = keyBrokerService.GetKbsPodIP(ctx, cfg); err != nil { + if kbsPodIP, err = keyBrokerService.GetKbsSvcIP(ctx, cfg); err != nil { return ctx, err } diff --git a/test/provisioner/provision.go b/test/provisioner/provision.go index fb17696b7..ba2a4fc9a 100644 --- a/test/provisioner/provision.go +++ b/test/provisioner/provision.go @@ -103,7 +103,7 @@ func NewKeyBrokerService(clusterName string) (*KeyBrokerService, error) { // Create secret content := []byte("This is my cluster name: " + clusterName) - filePath := "kbs/config/kubernetes/overlays/key.bin" + filePath := "kbs/kbs/config/kubernetes/overlays/key.bin" // Create the file. file, err := os.Create(filePath) if err != nil { @@ -129,16 +129,16 @@ func NewKeyBrokerService(clusterName string) (*KeyBrokerService, error) { } fmt.Println(k8sCnfDir) - keyFile := filepath.Join(k8sCnfDir, "kbs/config/kubernetes/overlays/key.bin") + keyFile := filepath.Join(k8sCnfDir, "kbs/kbs/config/kubernetes/overlays/key.bin") if _, err := os.Stat(keyFile); os.IsNotExist(err) { err = fmt.Errorf("key.bin file does not exist") log.Errorf("%v", err) return nil, err } - kbsCert := filepath.Join(k8sCnfDir, "kbs/config/kubernetes/base/kbs.pem") + kbsCert := filepath.Join(k8sCnfDir, "kbs/kbs/config/kubernetes/base/kbs.pem") if _, err := os.Stat(kbsCert); os.IsNotExist(err) { - kbsKey := filepath.Join(k8sCnfDir, "kbs/config/kubernetes/base/kbs.key") + kbsKey := filepath.Join(k8sCnfDir, "kbs/kbs/config/kubernetes/base/kbs.key") keyOutputFile, err := os.Create(kbsKey) if err != nil { err = fmt.Errorf("Error creating key file: %w\n", err) @@ -219,7 +219,7 @@ func GetInstallOverlay(provider string, installDir string) (InstallOverlay, erro func NewKbsInstallOverlay(installDir string) (InstallOverlay, error) { log.Info("Creating kbs install overlay") - overlay, err := NewKustomizeOverlay(filepath.Join(installDir, "config/kubernetes/base")) + overlay, err := NewKustomizeOverlay(filepath.Join(installDir, "kbs/config/kubernetes/base")) if err != nil { return nil, err } @@ -252,7 +252,7 @@ func (lio *KbsInstallOverlay) Edit(ctx context.Context, cfg *envconf.Config, pro return nil } -func (p *KeyBrokerService) GetKbsPodIP(ctx context.Context, cfg *envconf.Config) (string, error) { +func (p *KeyBrokerService) GetKbsSvcIP(ctx context.Context, cfg *envconf.Config) (string, error) { client, err := cfg.NewClient() if err != nil { return "", err @@ -270,6 +270,31 @@ func (p *KeyBrokerService) GetKbsPodIP(ctx context.Context, cfg *envconf.Config) resources := client.Resources(namespace) + // Get the service associated with the deployment + serviceList := &corev1.ServiceList{} + err = resources.List(context.TODO(), serviceList) + if err != nil { + err = fmt.Errorf("Error listing services: %w\n", err) + log.Errorf("%v", err) + return "", err + } + + var matchingService *corev1.Service + for i := range serviceList.Items { + service := &serviceList.Items[i] + if service.Name == deploymentName { + matchingService = service + break + } + } + + if matchingService == nil { + return "", fmt.Errorf("No service with label selector found") + } + + fmt.Printf("Service IP: %s\n", matchingService.Spec.ClusterIP) + return matchingService.Spec.ClusterIP, nil + /* podList := &corev1.PodList{} err = resources.List(context.TODO(), podList) if err != nil { @@ -293,6 +318,7 @@ func (p *KeyBrokerService) GetKbsPodIP(ctx context.Context, cfg *envconf.Config) fmt.Printf("Pod IP: %s\n", matchingPod.Status.PodIP) return matchingPod.Status.PodIP, nil + */ } func (p *KeyBrokerService) Deploy(ctx context.Context, cfg *envconf.Config, props map[string]string) error { @@ -308,7 +334,7 @@ func (p *KeyBrokerService) Deploy(ctx context.Context, cfg *envconf.Config, prop return err } - newDirectory := "kbs/config/kubernetes/overlays" + newDirectory := "kbs/kbs/config/kubernetes/overlays" err = os.Chdir(newDirectory) if err != nil { err = fmt.Errorf("Error changing the working directory: %w\n", err) @@ -342,7 +368,7 @@ func (p *KeyBrokerService) Delete(ctx context.Context, cfg *envconf.Config) erro } // Remove kbs deployment - newDirectory := "kbs/config/kubernetes/overlays" + newDirectory := "kbs/kbs/config/kubernetes/overlays" err = os.Chdir(newDirectory) if err != nil { err = fmt.Errorf("Error changing the working directory: %w\n", err)