diff --git a/tests/e2e/e2e_test.go b/tests/e2e/e2e_test.go index 1d2ad4286..cb665d05e 100644 --- a/tests/e2e/e2e_test.go +++ b/tests/e2e/e2e_test.go @@ -38,10 +38,13 @@ const ( ) var ( - testResources []step.Resource - tagsSpecified []string - stepRunner *step.Runner - beautify string + testResources []step.Resource + testResourcesApex []step.ResourceApex + tagsSpecified []string + stepRunner *step.Runner + beautify string + testCsm bool + testApex bool ) func Contains(slice []string, str string) bool { @@ -89,12 +92,28 @@ var _ = BeforeSuite(func() { } By(fmt.Sprint(tagsSpecified)) + By("Reading values file") res, err := step.GetTestResources(valuesFile) if err != nil { framework.Failf("Failed to read values file: %v", err) } + testResources = res + if strings.Contains(testResources[0].CustomResource[0].Kind, "ContainerStorageModule") { + testCsm = true + } + + By("Reading apex values file") + resApex, err := step.GetTestResourcesApex(valuesFile) + if err != nil { + framework.Failf("Failed to read apex values file: %v", err) + } + + testResourcesApex = resApex + if strings.Contains(testResourcesApex[0].CustomResourceApex[0].Kind, "ApexConnectivityClient") { + testApex = true + } By("Getting a k8s client") ctrlClient, err := client.New(config.GetConfigOrDie(), client.Options{}) @@ -112,26 +131,50 @@ var _ = BeforeSuite(func() { step.StepRunnerInit(stepRunner, ctrlClient, clientSet) beautify = " " + }) var _ = Describe("[run-e2e-test] E2E Testing", func() { + It("Running all test Given Test Scenarios", func() { - for _, test := range testResources { - By(fmt.Sprintf("Starting: %s ", test.Scenario.Scenario)) - if ContainsTag(test.Scenario.Tags, tagsSpecified) == false { - By(fmt.Sprintf("Not tagged for this test run, skipping")) - By(fmt.Sprintf("Ending: %s\n", test.Scenario.Scenario)) - continue + if testApex { + for _, test := range testResourcesApex { + By(fmt.Sprintf("Starting: %s ", test.ScenarioApex.Scenario)) + if ContainsTag(test.ScenarioApex.Tags, tagsSpecified) == false { + By(fmt.Sprintf("Not tagged for this test run, skipping")) + By(fmt.Sprintf("Ending: %s\n", test.ScenarioApex.Scenario)) + continue + } + + for _, stepName := range test.ScenarioApex.Steps { + By(fmt.Sprintf("%s Executing %s", beautify, stepName)) + Eventually(func() error { + return stepRunner.RunStepClient(stepName, test) + }, timeout, interval).Should(BeNil()) + } + By(fmt.Sprintf("Ending: %s\n", test.ScenarioApex.Scenario)) + time.Sleep(5 * time.Second) } - for _, stepName := range test.Scenario.Steps { - By(fmt.Sprintf("%s Executing %s", beautify, stepName)) - Eventually(func() error { - return stepRunner.RunStep(stepName, test) - }, timeout, interval).Should(BeNil()) + } + if testCsm { + for _, test := range testResources { + By(fmt.Sprintf("Starting: %s ", test.Scenario.Scenario)) + if ContainsTag(test.Scenario.Tags, tagsSpecified) == false { + By(fmt.Sprintf("Not tagged for this test run, skipping")) + By(fmt.Sprintf("Ending: %s\n", test.Scenario.Scenario)) + continue + } + + for _, stepName := range test.Scenario.Steps { + By(fmt.Sprintf("%s Executing %s", beautify, stepName)) + Eventually(func() error { + return stepRunner.RunStep(stepName, test) + }, timeout, interval).Should(BeNil()) + } + By(fmt.Sprintf("Ending: %s\n", test.Scenario.Scenario)) + time.Sleep(5 * time.Second) } - By(fmt.Sprintf("Ending: %s\n", test.Scenario.Scenario)) - time.Sleep(5 * time.Second) } }) }) diff --git a/tests/e2e/run-e2e-test.sh b/tests/e2e/run-e2e-test.sh index 587eb4bf0..80ac244f6 100755 --- a/tests/e2e/run-e2e-test.sh +++ b/tests/e2e/run-e2e-test.sh @@ -16,6 +16,7 @@ # Set environment variables and options ############################################################################### export E2E_SCENARIOS_FILE=testfiles/scenarios.yaml +#export E2E_SCENARIOS_FILE=testfiles/connectivity-values.yaml export ARRAY_INFO_FILE=array-info.sh export GO111MODULE=on export ACK_GINKGO_RC=true @@ -254,5 +255,5 @@ if [ -v APPLICATIONMOBILITY ]; then checkForDellctl fi checkForGinkgo -runTests +#runTests diff --git a/tests/e2e/steps/step_common.go b/tests/e2e/steps/step_common.go index fdc9903b3..7d9c1d140 100644 --- a/tests/e2e/steps/step_common.go +++ b/tests/e2e/steps/step_common.go @@ -60,6 +60,12 @@ type Resource struct { CustomResource []csmv1.ContainerStorageModule } +// ResourceApex - +type ResourceApex struct { + ScenarioApex Scenario + CustomResourceApex []csmv1.ApexConnectivityClient +} + // Step - type Step struct { ctrlClient client.Client diff --git a/tests/e2e/steps/steps_def.go b/tests/e2e/steps/steps_def.go index c2e4c588c..5f7729177 100644 --- a/tests/e2e/steps/steps_def.go +++ b/tests/e2e/steps/steps_def.go @@ -117,6 +117,43 @@ func GetTestResources(valuesFilePath string) ([]Resource, error) { return resources, nil } +// GetTestResourcesApex -- parse values file +func GetTestResourcesApex(valuesFilePath string) ([]ResourceApex, error) { + b, err := os.ReadFile(valuesFilePath) + if err != nil { + return nil, fmt.Errorf("failed to read values file: %v", err) + } + + scenarios := []Scenario{} + err = yaml.Unmarshal(b, &scenarios) + if err != nil { + return nil, fmt.Errorf("failed to read unmarshal values file: %v", err) + } + + resources := []ResourceApex{} + for _, scene := range scenarios { + customResources := []csmv1.ApexConnectivityClient{} + for _, path := range scene.Paths { + b, err := os.ReadFile(path) + if err != nil { + return nil, fmt.Errorf("failed to read testdata: %v", err) + } + customResource := csmv1.ApexConnectivityClient{} + err = yaml.Unmarshal(b, &customResource) + if err != nil { + return nil, fmt.Errorf("failed to read unmarshal CSM custom resource: %v", err) + } + customResources = append(customResources, customResource) + } + resources = append(resources, ResourceApex{ + ScenarioApex: scene, + CustomResourceApex: customResources, + }) + } + + return resources, nil +} + func (step *Step) applyCustomResource(res Resource, crNumStr string) error { crNum, _ := strconv.Atoi(crNumStr) cr := res.CustomResource[crNum-1] @@ -1300,10 +1337,63 @@ func (step *Step) configureAMInstall(res Resource, templateFile string) error { } // Steps for Connectivity Client +func (step *Step) validateClientTestEnvironment(_ ResourceApex) error { + if os.Getenv("OPERATOR_NAMESPACE") != "" { + operatorNamespace = os.Getenv("OPERATOR_NAMESPACE") + } + + pods, err := fpod.GetPodsInNamespace(context.TODO(), step.clientSet, operatorNamespace, map[string]string{}) + if err != nil { + return err + } + if len(pods) == 0 { + return fmt.Errorf("no pod was found") + } -func (step *Step) validateConnectivityClientInstalled(res Resource, crNumStr string) error { + notReadyMessage := "" + allReady := true + for _, pod := range pods { + if pod.Status.Phase != corev1.PodRunning { + allReady = false + notReadyMessage += fmt.Sprintf("\nThe pod(%s) is %s", pod.Name, pod.Status.Phase) + } + } + + if !allReady { + return fmt.Errorf(notReadyMessage) + } + + return nil +} + +func (step *Step) applyClientCustomResource(res ResourceApex, crNumStr string, secretNumStr string) error { crNum, _ := strconv.Atoi(crNumStr) - cr := res.CustomResource[crNum-1] + cr := res.CustomResourceApex[crNum-1] + crBuff, err := os.ReadFile(res.ScenarioApex.Paths[crNum-1]) + if err != nil { + return fmt.Errorf("failed to read connecivity client testdata: %v", err) + } + + scrNum, _ := strconv.Atoi(secretNumStr) + scr := res.CustomResourceApex[scrNum-1] + scrBuff, err := os.ReadFile(res.ScenarioApex.Paths[scrNum-1]) + if err != nil { + return fmt.Errorf("failed to read secret testdata: %v", err) + } + + if _, err := kubectl.RunKubectlInput(cr.Namespace, string(crBuff), "apply", "--validate=true", "-f", "-"); err != nil { + return fmt.Errorf("failed to apply connecivity client CR %s in namespace %s: %v", cr.Name, cr.Namespace, err) + } + if _, err := kubectl.RunKubectlInput(scr.Namespace, string(scrBuff), "apply", "--validate=true", "-f", "-"); err != nil { + return fmt.Errorf("failed to apply secret CR %s in namespace %s: %v", scr.Name, scr.Namespace, err) + } + return nil +} + +func (step *Step) validateConnectivityClientInstalled(res ResourceApex, crNumStr string) error { + crNum, _ := strconv.Atoi(crNumStr) + cr := res.CustomResourceApex[crNum-1] + time.Sleep(60 * time.Second) found := new(csmv1.ApexConnectivityClient) if err := step.ctrlClient.Get(context.TODO(), client.ObjectKey{ @@ -1313,12 +1403,34 @@ func (step *Step) validateConnectivityClientInstalled(res Resource, crNumStr str return err } - return checkAllRunningPods(context.TODO(), res.CustomResource[crNum-1].Namespace, step.clientSet) + return checkAllRunningPods(context.TODO(), res.CustomResourceApex[crNum-1].Namespace, step.clientSet) } -func (step *Step) validateConnectivityClientNotInstalled(res Resource, crNumStr string) error { +func (step *Step) upgradeCustomResourceClient(res ResourceApex, oldCrNumStr string, newCrNumStr string) error { + oldCrNum, _ := strconv.Atoi(oldCrNumStr) + oldCr := res.CustomResourceApex[oldCrNum-1] + + newCrNum, _ := strconv.Atoi(newCrNumStr) + newCr := res.CustomResourceApex[newCrNum-1] + + found := new(csmv1.ApexConnectivityClient) + if err := step.ctrlClient.Get(context.TODO(), client.ObjectKey{ + Namespace: oldCr.Namespace, + Name: oldCr.Name, + }, found); err != nil { + fmt.Printf("Failed to get newCr.Name--> %v", err) + return err + } + + // Update old CR with the spec of new CR + found.Spec = newCr.Spec + return step.ctrlClient.Update(context.TODO(), found) +} + +func (step *Step) validateConnectivityClientNotInstalled(res ResourceApex, crNumStr string) error { crNum, _ := strconv.Atoi(crNumStr) - cr := res.CustomResource[crNum-1] + cr := res.CustomResourceApex[crNum-1] + time.Sleep(20 * time.Second) found := new(csmv1.ApexConnectivityClient) if err := step.ctrlClient.Get(context.TODO(), client.ObjectKey{ Namespace: cr.Namespace, @@ -1327,13 +1439,13 @@ func (step *Step) validateConnectivityClientNotInstalled(res Resource, crNumStr return fmt.Errorf("Found traces of client installation in namespace %s: %v", cr.Namespace, found) } - return checkNoRunningPods(context.TODO(), res.CustomResource[crNum-1].Namespace, step.clientSet) + return checkNoRunningPods(context.TODO(), res.CustomResourceApex[crNum-1].Namespace, step.clientSet) } // uninstallConnectivityClient - uninstall the client -func (step *Step) uninstallConnectivityClient(res Resource, crNumStr string) error { +func (step *Step) uninstallConnectivityClient(res ResourceApex, crNumStr string) error { crNum, _ := strconv.Atoi(crNumStr) - cr := res.CustomResource[crNum-1] + cr := res.CustomResourceApex[crNum-1] found := new(csmv1.ApexConnectivityClient) err := step.ctrlClient.Get(context.TODO(), client.ObjectKey{ @@ -1348,7 +1460,7 @@ func (step *Step) uninstallConnectivityClient(res Resource, crNumStr string) err return err } - crBuff, err := os.ReadFile(res.Scenario.Paths[crNum-1]) + crBuff, err := os.ReadFile(res.ScenarioApex.Paths[crNum-1]) if err != nil { return fmt.Errorf("failed to read testdata: %v", err) } @@ -1360,6 +1472,22 @@ func (step *Step) uninstallConnectivityClient(res Resource, crNumStr string) err return nil } +func (step *Step) uninstallConnectivityClientSecret(res ResourceApex, scrNumStr string) error { + crNum, _ := strconv.Atoi(scrNumStr) + cr := res.CustomResourceApex[crNum-1] + + crBuff, err := os.ReadFile(res.ScenarioApex.Paths[crNum-1]) + if err != nil { + return fmt.Errorf("failed to read secret testdata: %v", err) + } + + if _, err := kubectl.RunKubectlInput(cr.Namespace, string(crBuff), "delete", "--wait=true", "--timeout=30s", "-f", "-"); err != nil { + return fmt.Errorf("failed to delete secret CR %s in namespace %s: %v", cr.Name, cr.Namespace, err) + } + + return nil +} + func (step *Step) validateApplicationMobilityNotInstalled(cr csmv1.ContainerStorageModule) error { fakeReconcile := utils.FakeReconcileCSM{ Client: step.ctrlClient, diff --git a/tests/e2e/steps/steps_runner.go b/tests/e2e/steps/steps_runner.go index bf2269188..21babc826 100644 --- a/tests/e2e/steps/steps_runner.go +++ b/tests/e2e/steps/steps_runner.go @@ -75,10 +75,13 @@ func StepRunnerInit(runner *Runner, ctrlClient client.Client, clientSet *kuberne runner.addStep(`^Set up application mobility CR \[([^"]*)\]$`, step.configureAMInstall) // Connectivity Client steps - runner.addStep(`^Install connectivity client from CR \[(\d+)\]$`, step.applyCustomResource) + runner.addStep(`^Given an client environment with k8s or openshift, and CSM operator installed$`, step.validateClientTestEnvironment) + runner.addStep(`^Install connectivity client from CR \[(\d+)\] and create secret \[(\d+)\]$`, step.applyClientCustomResource) runner.addStep(`^Validate connectivity client from CR \[(\d+)\] is installed$`, step.validateConnectivityClientInstalled) runner.addStep(`^Validate connectivity client from CR \[(\d+)\] is not installed$`, step.validateConnectivityClientNotInstalled) runner.addStep(`^Uninstall connectivity client from CR \[(\d+)\]`, step.uninstallConnectivityClient) + runner.addStep(`^Upgrade client from custom resource \[(\d+)\] to \[(\d+)\]$`, step.upgradeCustomResourceClient) + runner.addStep(`^Uninstall connectivity client secret from CR \[(\d+)\]`, step.uninstallConnectivityClientSecret) runner.addStep(`^Install Authorization CRDs \[(\d+)\]$`, step.createCustomResourceDefinition) runner.addStep(`^Validate \[([^"]*)\] CRD for Authorization is installed$`, step.validateCustomResourceDefinition) runner.addStep(`^Delete Authorization CRDs \[(\d+)\]$`, step.deleteCustomResourceDefinition) @@ -144,3 +147,33 @@ func (runner *Runner) RunStep(stepName string, res Resource) error { return fmt.Errorf("no method for step: %s", stepName) } + +// RunStepClient - runs a step +func (runner *Runner) RunStepClient(stepName string, res ResourceApex) error { + for _, stepDef := range runner.Definitions { + if stepDef.Expr.MatchString(stepName) { + var values []reflect.Value + groups := stepDef.Expr.FindStringSubmatch(stepName) + + typ := stepDef.Handler.Type() + numArgs := typ.NumIn() + if numArgs > len(groups) { + return fmt.Errorf("expected handler method to take %d but got: %d", numArgs, len(groups)) + } + + values = append(values, reflect.ValueOf(res)) + for i := 1; i < len(groups); i++ { + values = append(values, reflect.ValueOf(groups[i])) + } + + res := stepDef.Handler.Call(values) + if err, ok := res[0].Interface().(error); ok { + fmt.Printf("\nerr: %+v\n", err) + return err + } + return nil + } + } + + return fmt.Errorf("no method for step: %s", stepName) +} diff --git a/tests/e2e/testfiles/connectivity-values.yaml b/tests/e2e/testfiles/connectivity-values.yaml index 88bda918e..14b2ced13 100644 --- a/tests/e2e/testfiles/connectivity-values.yaml +++ b/tests/e2e/testfiles/connectivity-values.yaml @@ -1,17 +1,40 @@ - scenario: "Install/uninstall APEX Connectivity Client" paths: - "testfiles/connectivity_client.yaml" + - "testfiles/connectivity_client_secret.yaml" + tags: + - "sanity" steps: - "Given an environment with k8s or openshift, and CSM operator installed" - - "Install connectivity client from CR [1]" + - "Install connectivity client from CR [1] and create secret [2]" - "Validate connectivity client from CR [1] is installed" - "Uninstall connectivity client from CR [1]" + - "Uninstall connectivity client secret from CR [2]" - "Validate connectivity client from CR [1] is not installed" +- scenario: "Upgrade APEX Connectivity Client" + paths: + - "testfiles/connectivity_client.yaml" + - "testfiles/connectivity_client_1.yaml" + - "testfiles/connectivity_client_secret.yaml" + tags: + - "sanity" + steps: + - "Given an client environment with k8s or openshift, and CSM operator installed" + - "Install connectivity client from CR [1] and create secret [3]" + - "Validate connectivity client from CR [1] is installed" + - "Upgrade client from custom resource [1] to [2]" + - "Validate connectivity client from CR [2] is installed" + - "Uninstall connectivity client from CR [2]" + - "Uninstall connectivity client secret from CR [3]" + - "Validate connectivity client from CR [2] is not installed" + - scenario: "Validate role/rolebindings created for brownfield-onboard scenario" paths: - "testfiles/connectivity_client.yaml" - "testfiles/storage_csm_powerflex.yaml" + tags: + - "sanity" steps: - "Given an environment with k8s or openshift, and CSM operator installed" - "Set up secret with template [testfiles/powerflex-templates/powerflex-secret-template.yaml] name [test-vxflexos-config] in namespace [test-vxflexos] for [pflex]" diff --git a/tests/e2e/testfiles/connectivity_client.yaml b/tests/e2e/testfiles/connectivity_client.yaml index 74d83af5f..f3d144731 100644 --- a/tests/e2e/testfiles/connectivity_client.yaml +++ b/tests/e2e/testfiles/connectivity_client.yaml @@ -6,30 +6,22 @@ metadata: spec: client: csmClientType: "apexConnectivityClient" - configVersion: v1.1.0 - connectionTarget: connect-into.dell.com + configVersion: v1.0.0 forceRemoveClient: true + connectionTarget: connect-p3.dell.com + usePrivateCaCerts: true common: name: connectivity-client-docker-k8s - image: dellemc/connectivity-client-docker-k8s:1.19.0 + image: amaas-eos-mw1.cec.lab.emc.com:5106/dcm/connectivity-client-docker-k8s:1.2.3 imagePullPolicy: IfNotPresent initContainers: - name: connectivity-client-init - image: dellemc/connectivity-client-docker-k8s:1.19.0 + image: amaas-eos-mw1.cec.lab.emc.com:5106/dcm/connectivity-client-docker-k8s:1.2.3 imagePullPolicy: IfNotPresent sideCars: - name: kubernetes-proxy image: bitnami/kubectl:latest - imagePullPolicy: IfNotPresent + imagePullPolicy: Always - name: cert-persister - image: dellemc/connectivity-cert-persister-k8s - imagePullPolicy: IfNotPresent ---- -apiVersion: v1 -kind: Secret -metadata: - name: connectivity-client-docker-k8s-cert - namespace: dell-connectivity-client -type: Opaque -data: - cert.pem: "" + image: amaas-eos-drm2.cec.lab.emc.com:5074/csm/connectivity-cert-persister-k8s:latest + imagePullPolicy: Always \ No newline at end of file diff --git a/tests/e2e/testfiles/connectivity_client_1.yaml b/tests/e2e/testfiles/connectivity_client_1.yaml new file mode 100644 index 000000000..c9ae5fa3f --- /dev/null +++ b/tests/e2e/testfiles/connectivity_client_1.yaml @@ -0,0 +1,27 @@ +apiVersion: storage.dell.com/v1 +kind: ApexConnectivityClient +metadata: + name: dell-connectivity-client + namespace: dell-connectivity-client +spec: + client: + csmClientType: "apexConnectivityClient" + configVersion: v1.1.0 + forceRemoveClient: true + connectionTarget: connect-p3.dell.com + usePrivateCaCerts: true + common: + name: connectivity-client-docker-k8s + image: amaas-eos-mw1.cec.lab.emc.com:5106/dcm/connectivity-client-docker-k8s:1.12.0 + imagePullPolicy: IfNotPresent + initContainers: + - name: connectivity-client-init + image: amaas-eos-mw1.cec.lab.emc.com:5106/dcm/connectivity-client-docker-k8s:1.12.0 + imagePullPolicy: IfNotPresent + sideCars: + - name: kubernetes-proxy + image: bitnami/kubectl:latest + imagePullPolicy: Always + - name: cert-persister + image: amaas-eos-drm2.cec.lab.emc.com:5074/csm/connectivity-cert-persister-k8s:latest + imagePullPolicy: Always \ No newline at end of file diff --git a/tests/e2e/testfiles/connectivity_client_secret.yaml b/tests/e2e/testfiles/connectivity_client_secret.yaml new file mode 100644 index 000000000..201a014a8 --- /dev/null +++ b/tests/e2e/testfiles/connectivity_client_secret.yaml @@ -0,0 +1,26 @@ +apiVersion: v1 +kind: Secret +metadata: + name: connectivity-client-docker-k8s-loadbalancer-ca-cert + namespace: dell-connectivity-client +type: Opaque +data: + loadbalancer_root_ca_cert.crt: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM5ekNDQWQrZ0F3SUJBZ0lKQU0xYThtb0UzaldhTUEwR0NTcUdTSWIzRFFFQkN3VUFNQkl4RURBT0JnTlYKQkFNTUIzUmxjM1F0WTJFd0hoY05Nak14TURBMU1EYzBOVE0yV2hjTk16TXhNREF5TURjME5UTTJXakFTTVJBdwpEZ1lEVlFRRERBZDBaWE4wTFdOaE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBCndXemtVNnZwOEZVK1ZKeFBSQk43andLclJ5WEozTHhWbGpkTDVkVUw1WnVMSitsZjhDUGlaTmNLSGs3YnlUTDIKdUNvV3NFU3NJY0xsV3NYR3pUTGEyTFl5VGN6YStSTHJyL2d0TFpZbldtNVpBOWdZT0FQSlkyWVlQVXMxWjZKYgorU3ZTZldtY0tsdmN4YUVXbVhELzhacm52ek9ITW9vY0F6TmFqSEZ3TnArcHVrU3RQQXJNY0F0cnFtWWR3TW5hCkcvMGJrTndBdkRiTW1Bc1VCTXJwYkxub2wvZWd6bkt4ZUtUMkNkejJuWEZiUE82SWRVSmZTU0hHRktxaWFwa1cKZ3lLdUNuMlJKd09CbHpvekRVUnJzVTg4bTdKRW8zS3BtTmtkZ3hYNzNackdJWUtPcmFlRVRmTUdBOEl0NEQ2UQo5cFlHWTQ5Mk5mM1JvV2dvelM3TzFRSURBUUFCbzFBd1RqQWRCZ05WSFE0RUZnUVV6bXFmVk0rYy82dlRiTDgwCndqTUJ2K3FwSHBNd0h3WURWUjBqQkJnd0ZvQVV6bXFmVk0rYy82dlRiTDgwd2pNQnYrcXBIcE13REFZRFZSMFQKQkFVd0F3RUIvekFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBVXNydDRCZk5iY2UwK3pjWm0raWJXcTlFRGZOaQozdlVONHEyYkZUNUV0bWkvbTZkbi9veHBwSGNyL3dWQ05Ka2pzSFZ2ZXhYMnVGU3VQeFBYUTN6aVFxbVpKK2NpCmJZR29lTDBTdmZQZEoyUllBeVhFRitjNVpNUGkvV2l2cHh0QWxjNlUwcHp4cUJpTElMOVBUM1lJa1hZSk81bncKNDYyY3ZLQnFjVTNlTkJpQXVGWkdYUVBYNVUwTmZSNEN3bzE0OFphNDhEclVzc1ArNjZhSVRteExXY1dzOVczWgpmSVNDbDJIMmxvTXg1RzU2My9TTWgzS0ZXL3JCTkgyUnpxUHNUWkhockd4OEVYYjVFdkpJT0M3bHpBb1A0eUs4CldBZUpXd3dTRldUVkM0Z2Z5bHR6RnFOSGlqNENITkVxRTBrbXprRDN4K3MxTnUxTWtESDF5SFhpcXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" +--- +apiVersion: v1 +kind: Secret +metadata: + name: connectivity-client-docker-k8s-aggregator-internal-ca-cert + namespace: dell-connectivity-client +type: Opaque +data: + aggregator_internal_root_ca_cert.crt: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM5ekNDQWQrZ0F3SUJBZ0lKQU5Mcm1ZZUlKTW5hTUEwR0NTcUdTSWIzRFFFQkN3VUFNQkl4RURBT0JnTlYKQkFNTUIzUmxjM1F0WTJFd0hoY05NalF3TVRFeU1UTTFNREF5V2hjTk16UXdNVEE1TVRNMU1EQXlXakFTTVJBdwpEZ1lEVlFRRERBZDBaWE4wTFdOaE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBCnI4WUZZR2dlTXhrNU5xQzN5bm1PRUgvT0xuZ1dmQ3RtbkhZSkNidFBiRmFMRnJrVkJYcG9HTWFpS1NTK2F1UG0Ka3kwOGVBWFhlZWFTdUI0SXQ3TWFnTFNsOCt4MERMUXRhNFpsVDdvQjVCS2Q1L3JxTitGa2NZaGFOSjR3VFVqUgpndDE1UE40L2RFQ2F1dWJGaFpESXZ5MzRrRnZNZHk2eEcrTTJZMUcwUXhHcERaRGROMDF1a3NOMXM5YkJCNkZwCjBXRER0aG9sWmxVT29pTk1GdmRaaytsVHpzMksvaS8vSDArckZiRXJhRE5mN2JqUmRQRWFRMnd6TDRPTjN4ZFQKSHhha1A0MkVScmxJZ0pDaTJjMTJiTXd0NUp0R3AzRVhyUTNQSnNnQ2dZSjdCelZGYUpEcGI3bms0Qm1yY3ZpTgpkREs3YXNZdVBkK3FKcm5KSzEyTFp3SURBUUFCbzFBd1RqQWRCZ05WSFE0RUZnUVVJL3pMeGw5SW5EUXZUMVoyCnpodWR0OUg0Wldrd0h3WURWUjBqQkJnd0ZvQVVJL3pMeGw5SW5EUXZUMVoyemh1ZHQ5SDRaV2t3REFZRFZSMFQKQkFVd0F3RUIvekFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBcnB1VE5xTW41RUk2a2NtN2V2SnBFMHordUxadwoxRi9lOG84Q0h6emNnQVgzUlJrR2Z0blcxSkduYXZzQlVvL0I2VWVEdkxMT0N6bjVSZS9JMWdSUTdxOHoyY2tCCjJiWGlpaDJYZERtSUlEbEx2dkNlMkRONytHSSt2WjFocXFOSTRUZFFuOS9XcUkwZDdiZVBId2RyRTl2WGUvcEsKSUUzcEk5eDA2SXJwV3pGRjJOcHQ5S1pLL1djeThPN3gyRGlGQWRpaE5tUUxMNHZUTUkvZW03VllFZ0hRSGRuZApXcnkySlFIcHBiVzcxN2VKUWJERDFTbnptemdCOWdUTXE2bDhObEE2NE5kYnFHaHNTMk91cFNoeHlFNHVtZ2poCk1NaElZaksvUmQ4eVllcnRBQVpoYUdoTzhIakpUYXJRak9TeUpHbHI0M1N3QWZVSXBwblJzVzMxSXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" +--- +apiVersion: v1 +kind: Secret +metadata: + name: connectivity-client-docker-k8s-cert + namespace: dell-connectivity-client +type: Opaque +data: + cert.pem: ""