From a051e588d4ccf9c714d13ca1210ae38ae85852cc Mon Sep 17 00:00:00 2001 From: "Weiyanli Chen(York)" Date: Tue, 7 May 2024 20:35:52 -0400 Subject: [PATCH] test: karma assertions (#2196) * chore: set logger to get rid of warning * test: assertions about karma deployment * test: karma upgrade * test: fixex dashboard assert * test: fixing the karma object init * test: use func for karma dependencies * chore: regroup import in apply.go --- apptests/appscenarios/contants.go | 1 + apptests/appscenarios/karma.go | 6 +- apptests/appscenarios/karma_test.go | 458 ++++++++++++------ apptests/appscenarios/suite_test.go | 3 - apptests/flux/apply.go | 23 +- .../kommander-ca/kommander-ca.yaml | 31 ++ 6 files changed, 364 insertions(+), 158 deletions(-) create mode 100644 apptests/testdata/cert-manager/kommander-ca/kommander-ca.yaml diff --git a/apptests/appscenarios/contants.go b/apptests/appscenarios/contants.go index 4e1c825c5..330b959d6 100644 --- a/apptests/appscenarios/contants.go +++ b/apptests/appscenarios/contants.go @@ -17,4 +17,5 @@ const ( // priority class names dkpHighPriority = "dkp-high-priority" systemClusterCriticalPriority = "system-cluster-critical" + dkpCriticalPriority = "dkp-critical-priority" ) diff --git a/apptests/appscenarios/karma.go b/apptests/appscenarios/karma.go index ab3543b19..c0b9e726d 100644 --- a/apptests/appscenarios/karma.go +++ b/apptests/appscenarios/karma.go @@ -53,14 +53,16 @@ func (k karma) install(ctx context.Context, env *environment.Env, appPath string // apply defaults config maps first defaultKustomizations := filepath.Join(appPath, "/defaults") err := env.ApplyKustomizations(ctx, defaultKustomizations, map[string]string{ - "releaseNamespace": kommanderNamespace, + "releaseNamespace": kommanderNamespace, + "workspaceNamespace": kommanderNamespace, }) if err != nil { return err } // apply the rest of kustomizations err = env.ApplyKustomizations(ctx, appPath, map[string]string{ - "releaseNamespace": kommanderNamespace, + "releaseNamespace": kommanderNamespace, + "workspaceNamespace": kommanderNamespace, }) if err != nil { return err diff --git a/apptests/appscenarios/karma_test.go b/apptests/appscenarios/karma_test.go index e5371ab8d..e45e306dd 100644 --- a/apptests/appscenarios/karma_test.go +++ b/apptests/appscenarios/karma_test.go @@ -2,6 +2,7 @@ package appscenarios import ( "fmt" + "path/filepath" "time" . "github.com/onsi/ginkgo/v2" @@ -12,16 +13,22 @@ import ( "github.com/mesosphere/kommander-applications/apptests/constants" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" + networking "k8s.io/api/networking/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ctrlClient "sigs.k8s.io/controller-runtime/pkg/client" ) const ( - karmaTlsCertSecretName = "karma-client-tls-cert" + karmaTlsCertSecretName = "kommander-karma-client-tls" + karmaConfigMapName = "karma-config" traefikOverrideCMName = "traefik-overrides" ) var _ = Describe("Karma Tests", Label("karma"), func() { + var ( + k *karma + ) + BeforeEach(OncePerOrdered, func() { err := SetupKindCluster() Expect(err).To(BeNil()) @@ -31,6 +38,8 @@ var _ = Describe("Karma Tests", Label("karma"), func() { err = env.ApplyKommanderBaseKustomizations(ctx) Expect(err).To(BeNil()) + + k = NewKarma() }) AfterEach(OncePerOrdered, func() { @@ -40,149 +49,13 @@ var _ = Describe("Karma Tests", Label("karma"), func() { Describe("Karma Install Test", Ordered, Label("install"), func() { var ( - k *karma karmaHr *fluxhelmv2beta2.HelmRelease karmaDeploymentList *appsv1.DeploymentList karmaContainer corev1.Container ) - k = NewKarma() - - Context("Karma Dependency", func() { - It("should install cert-manager", func() { - cm := certManager{} - err := cm.Install(ctx, env) - Expect(err).To(BeNil()) - - hr := &fluxhelmv2beta2.HelmRelease{ - TypeMeta: metav1.TypeMeta{ - Kind: fluxhelmv2beta2.HelmReleaseKind, - APIVersion: fluxhelmv2beta2.GroupVersion.Version, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: constants.CertManager, - Namespace: kommanderNamespace, - }, - } - - Eventually(func() error { - err = k8sClient.Get(ctx, ctrlClient.ObjectKeyFromObject(hr), hr) - if err != nil { - return err - } - - for _, cond := range hr.Status.Conditions { - if cond.Status == metav1.ConditionTrue && - cond.Type == apimeta.ReadyCondition { - return nil - } - } - return fmt.Errorf("helm release not ready yet") - }).WithPolling(pollInterval).WithTimeout(5 * time.Minute).Should(Succeed()) - }) - - It("should install cert-manager crds successfully", func() { - certManagerCrds := &fluxhelmv2beta2.HelmRelease{ - TypeMeta: metav1.TypeMeta{ - Kind: fluxhelmv2beta2.HelmReleaseKind, - APIVersion: fluxhelmv2beta2.GroupVersion.Version, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "cert-manager-crds", - Namespace: kommanderNamespace, - }, - } - - Eventually(func() error { - err := k8sClient.Get(ctx, ctrlClient.ObjectKeyFromObject(certManagerCrds), certManagerCrds) - if err != nil { - return err - } - - for _, cond := range certManagerCrds.Status.Conditions { - if cond.Status == metav1.ConditionTrue && - cond.Type == apimeta.ReadyCondition { - return nil - } - } - return fmt.Errorf("helm release not ready yet") - }).WithPolling(pollInterval).WithTimeout(5 * time.Minute).Should(Succeed()) - }) - - It("should install traefik", func() { - // TODO: use traefik object to install - err := k.ApplyTraefikOverrideCM(ctx, env, traefikOverrideCMName) - Expect(err).To(BeNil()) - err = k.InstallDependency(ctx, env, constants.Traefik) - Expect(err).To(BeNil()) - - hr := &fluxhelmv2beta2.HelmRelease{ - TypeMeta: metav1.TypeMeta{ - Kind: fluxhelmv2beta2.HelmReleaseKind, - APIVersion: fluxhelmv2beta2.GroupVersion.Version, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: constants.Traefik, - Namespace: kommanderNamespace, - }, - } - - // override traefik values.yaml - err = k8sClient.Get(ctx, ctrlClient.ObjectKeyFromObject(hr), hr) - Expect(err).To(BeNil()) - hr.Spec.ValuesFrom = append(hr.Spec.ValuesFrom, fluxhelmv2beta2.ValuesReference{ - Kind: "ConfigMap", - Name: traefikOverrideCMName, - }) - err = k8sClient.Update(ctx, hr) - Expect(err).To(BeNil()) - - Eventually(func() error { - err = k8sClient.Get(ctx, ctrlClient.ObjectKeyFromObject(hr), hr) - if err != nil { - return err - } - - for _, cond := range hr.Status.Conditions { - if cond.Status == metav1.ConditionTrue && - cond.Type == apimeta.ReadyCondition { - return nil - } - } - return fmt.Errorf("helm release not ready yet") - }).WithPolling(pollInterval).WithTimeout(5 * time.Minute).Should(Succeed()) - }) - - It("should install karma-traefik", func() { - err := k.InstallDependency(ctx, env, constants.KarmaTraefik) - Expect(err).To(BeNil()) - - hr := &fluxhelmv2beta2.HelmRelease{ - TypeMeta: metav1.TypeMeta{ - Kind: fluxhelmv2beta2.HelmReleaseKind, - APIVersion: fluxhelmv2beta2.GroupVersion.Version, - }, - ObjectMeta: metav1.ObjectMeta{ - Name: constants.KarmaTraefik, - Namespace: kommanderNamespace, - }, - } - - Eventually(func() error { - err = k8sClient.Get(ctx, ctrlClient.ObjectKeyFromObject(hr), hr) - if err != nil { - return err - } - - for _, cond := range hr.Status.Conditions { - if cond.Status == metav1.ConditionTrue && - cond.Type == apimeta.ReadyCondition { - return nil - } - } - return fmt.Errorf("helm release not ready yet") - }).WithPolling(pollInterval).WithTimeout(5 * time.Minute).Should(Succeed()) - }) + It("should install karma dependencies", func() { + installKarmaDependencies(k) }) It("should install successfully with default config", func() { @@ -232,7 +105,7 @@ var _ = Describe("Karma Tests", Label("karma"), func() { err = k8sClient.List(ctx, karmaDeploymentList, listOptions) Expect(err).To(BeNil()) Expect(karmaDeploymentList.Items).To(HaveLen(1)) - Expect(karmaDeploymentList.Items[0].Spec.Template.Spec.PriorityClassName).To(Equal(dkpHighPriority)) + Expect(karmaDeploymentList.Items[0].Spec.Template.Spec.PriorityClassName).To(Equal(dkpCriticalPriority)) karmaContainer = karmaDeploymentList.Items[0].Spec.Template.Spec.Containers[0] Expect(karmaContainer.Resources.Requests).To(BeEmpty()) @@ -258,25 +131,326 @@ var _ = Describe("Karma Tests", Label("karma"), func() { It("should mount configmap based configuration", func() { found := false for _, vm := range karmaContainer.VolumeMounts { - if vm.Name == "karma-config" { + if vm.Name == karmaConfigMapName { found = true } } Expect(found).To(BeTrue()) }) + + It("should have reloader annotations about cm and secret", func() { + karmaDeployment := karmaDeploymentList.Items[0] + Expect(karmaDeployment.Annotations).To(HaveKeyWithValue("configmap.reloader.stakater.com/reload", karmaConfigMapName)) + Expect(karmaDeployment.Annotations).To(HaveKeyWithValue("secret.reloader.stakater.com/reload", karmaTlsCertSecretName)) + }) + }) Context("Karma Service", func() { - + It("should have prometheus label set", func() { + karmaSvc := &corev1.Service{} + err := k8sClient.Get(ctx, ctrlClient.ObjectKeyFromObject(karmaHr), karmaSvc) + Expect(err).To(BeNil()) + Expect(karmaSvc.Labels).To(HaveKeyWithValue("servicemonitor.kommander.mesosphere.io/path", "dkp__kommander__monitoring__karma__metrics")) + }) }) Context("Karma Ingress", func() { + karmaIngress := &networking.Ingress{} + It("should have traefik ingress annotations", func() { + err := k8sClient.Get(ctx, ctrlClient.ObjectKeyFromObject(karmaHr), karmaIngress) + karmaTfkMdlwaConfigStr := fmt.Sprintf("%s-stripprefixes@kubernetescrd,%s-forwardauth@kubernetescrd", kommanderNamespace, kommanderNamespace) + Expect(err).To(BeNil()) + Expect(karmaIngress.Annotations).To(HaveKeyWithValue("kubernetes.io/ingress.class", "kommander-traefik")) + Expect(karmaIngress.Annotations).To(HaveKeyWithValue("traefik.ingress.kubernetes.io/router.tls", "true")) + Expect(karmaIngress.Annotations).To(HaveKeyWithValue("traefik.ingress.kubernetes.io/router.middlewares", + karmaTfkMdlwaConfigStr)) + }) + It("should set the correct path", func() { + Expect(karmaIngress.Spec.Rules[0].HTTP.Paths[0].Path).To(Equal("/dkp/kommander/monitoring/karma")) + }) }) Context("Karma ConfigMap", func() { + karmaConfigMap := &corev1.ConfigMap{} + It("should have the helm annotations", func() { + err := k8sClient.Get(ctx, ctrlClient.ObjectKey{Namespace: kommanderNamespace, Name: karmaConfigMapName}, karmaConfigMap) + Expect(err).To(BeNil()) + Expect(karmaConfigMap.Annotations).To(HaveKeyWithValue("helm.sh/hook", "pre-install")) + Expect(karmaConfigMap.Annotations).To(HaveKeyWithValue("helm.sh/hook-delete-policy", "before-hook-creation")) + }) + }) + + Context("Karma Availability", func() { + It("should have access to the karma dashboard", func() { + selector, err := metav1.LabelSelectorAsSelector(&metav1.LabelSelector{ + MatchLabels: map[string]string{ + "app.kubernetes.io/name": "karma", + }, + }) + Expect(err).To(BeNil()) + listOptions := &ctrlClient.ListOptions{ + LabelSelector: selector, + } + podList := &corev1.PodList{} + err = k8sClient.List(ctx, podList, listOptions) + Expect(err).To(BeNil()) + Expect(podList.Items).To(HaveLen(1)) + + res := restClientV1Pods.Get().Resource("pods").Namespace(podList.Items[0].Namespace).Name(podList.Items[0].Name + ":8080").SubResource("proxy").Suffix("/dkp/kommander/monitoring/karma/").Do(ctx) + Expect(res.Error()).To(BeNil()) + + var statusCode int + res.StatusCode(&statusCode) + Expect(statusCode).To(Equal(200)) + }) + }) + }) + + Describe("Karma Upgrade Test", Ordered, Label("upgrade"), func() { + var ( + karmaHr *fluxhelmv2beta2.HelmRelease + ) + + It("should install karma dependencies successfully", func() { + installKarmaDependencies(k) + }) + + It("should install previous version successfully with default config", func() { + err := k.InstallPreviousVersion(ctx, env) + Expect(err).To(BeNil()) + + karmaHr = &fluxhelmv2beta2.HelmRelease{ + TypeMeta: metav1.TypeMeta{ + Kind: fluxhelmv2beta2.HelmReleaseKind, + APIVersion: fluxhelmv2beta2.GroupVersion.Version, + }, + ObjectMeta: metav1.ObjectMeta{ + Name: k.Name(), + Namespace: kommanderNamespace, + }, + } + + Eventually(func() error { + err := k8sClient.Get(ctx, ctrlClient.ObjectKeyFromObject(karmaHr), karmaHr) + if err != nil { + return err + } + + for _, cond := range karmaHr.Status.Conditions { + if cond.Status == metav1.ConditionTrue && + cond.Type == apimeta.ReadyCondition { + return nil + } + } + return fmt.Errorf("helm release not ready yet") + }).WithPolling(pollInterval).WithTimeout(5 * time.Minute).Should(Succeed()) + }) + + It("should have access to the karma dashboard", func() { + selector, err := metav1.LabelSelectorAsSelector(&metav1.LabelSelector{ + MatchLabels: map[string]string{ + "app.kubernetes.io/name": "karma", + }, + }) + Expect(err).To(BeNil()) + listOptions := &ctrlClient.ListOptions{ + LabelSelector: selector, + } + podList := &corev1.PodList{} + err = k8sClient.List(ctx, podList, listOptions) + Expect(err).To(BeNil()) + Expect(podList.Items).To(HaveLen(1)) + + res := restClientV1Pods.Get().Resource("pods").Namespace(podList.Items[0].Namespace).Name(podList.Items[0].Name + ":8080").SubResource("proxy").Suffix("/dkp/kommander/monitoring/karma/").Do(ctx) + Expect(res.Error()).To(BeNil()) + + var statusCode int + res.StatusCode(&statusCode) + Expect(statusCode).To(Equal(200)) + }) + + It("should upgrade karma successfully", func() { + err := k.Install(ctx, env) + Expect(err).To(BeNil()) + Eventually(func() error { + err := k8sClient.Get(ctx, ctrlClient.ObjectKeyFromObject(karmaHr), karmaHr) + if err != nil { + return err + } + + for _, cond := range karmaHr.Status.Conditions { + if cond.Status == metav1.ConditionTrue && + cond.Type == apimeta.ReadyCondition { + return nil + } + } + return fmt.Errorf("helm release not ready yet") + }).WithPolling(pollInterval).WithTimeout(5 * time.Minute).Should(Succeed()) }) + It("should have access to the karma dashboard after upgrade", func() { + selector, err := metav1.LabelSelectorAsSelector(&metav1.LabelSelector{ + MatchLabels: map[string]string{ + "app.kubernetes.io/name": "karma", + }, + }) + Expect(err).To(BeNil()) + listOptions := &ctrlClient.ListOptions{ + LabelSelector: selector, + } + podList := &corev1.PodList{} + err = k8sClient.List(ctx, podList, listOptions) + Expect(err).To(BeNil()) + Expect(podList.Items).To(HaveLen(1)) + + res := restClientV1Pods.Get().Resource("pods").Namespace(podList.Items[0].Namespace).Name(podList.Items[0].Name + ":8080").SubResource("proxy").Suffix("/dkp/kommander/monitoring/karma/").Do(ctx) + Expect(res.Error()).To(BeNil()) + + var statusCode int + res.StatusCode(&statusCode) + Expect(statusCode).To(Equal(200)) + }) }) }) + +func installKarmaDependencies(k *karma) { + By("Installing cert-manager") + cm := certManager{} + err := cm.Install(ctx, env) + Expect(err).To(BeNil()) + + hr := &fluxhelmv2beta2.HelmRelease{ + TypeMeta: metav1.TypeMeta{ + Kind: fluxhelmv2beta2.HelmReleaseKind, + APIVersion: fluxhelmv2beta2.GroupVersion.Version, + }, + ObjectMeta: metav1.ObjectMeta{ + Name: constants.CertManager, + Namespace: kommanderNamespace, + }, + } + + Eventually(func() error { + err = k8sClient.Get(ctx, ctrlClient.ObjectKeyFromObject(hr), hr) + if err != nil { + return err + } + + for _, cond := range hr.Status.Conditions { + if cond.Status == metav1.ConditionTrue && + cond.Type == apimeta.ReadyCondition { + return nil + } + } + return fmt.Errorf("helm release not ready yet") + }).WithPolling(pollInterval).WithTimeout(5 * time.Minute).Should(Succeed()) + + By("Installing cert-manager crds successfully") + certManagerCrds := &fluxhelmv2beta2.HelmRelease{ + TypeMeta: metav1.TypeMeta{ + Kind: fluxhelmv2beta2.HelmReleaseKind, + APIVersion: fluxhelmv2beta2.GroupVersion.Version, + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "cert-manager-crds", + Namespace: kommanderNamespace, + }, + } + + Eventually(func() error { + err := k8sClient.Get(ctx, ctrlClient.ObjectKeyFromObject(certManagerCrds), certManagerCrds) + if err != nil { + return err + } + + for _, cond := range certManagerCrds.Status.Conditions { + if cond.Status == metav1.ConditionTrue && + cond.Type == apimeta.ReadyCondition { + return nil + } + } + return fmt.Errorf("helm release not ready yet") + }).WithPolling(pollInterval).WithTimeout(5 * time.Minute).Should(Succeed()) + + By("Installing kommander-ca") + testDataDir, err := getTestDataDir() + Expect(err).To(BeNil()) + err = env.ApplyYAML(ctx, filepath.Join(testDataDir, "cert-manager/kommander-ca"), nil) + Expect(err).To(BeNil()) + + By("should install traefik") + // TODO: use traefik object to install + err = k.ApplyTraefikOverrideCM(ctx, env, traefikOverrideCMName) + Expect(err).To(BeNil()) + err = k.InstallDependency(ctx, env, constants.Traefik) + Expect(err).To(BeNil()) + + hr = &fluxhelmv2beta2.HelmRelease{ + TypeMeta: metav1.TypeMeta{ + Kind: fluxhelmv2beta2.HelmReleaseKind, + APIVersion: fluxhelmv2beta2.GroupVersion.Version, + }, + ObjectMeta: metav1.ObjectMeta{ + Name: constants.Traefik, + Namespace: kommanderNamespace, + }, + } + + // override traefik values.yaml + err = k8sClient.Get(ctx, ctrlClient.ObjectKeyFromObject(hr), hr) + Expect(err).To(BeNil()) + hr.Spec.ValuesFrom = append(hr.Spec.ValuesFrom, fluxhelmv2beta2.ValuesReference{ + Kind: "ConfigMap", + Name: traefikOverrideCMName, + }) + err = k8sClient.Update(ctx, hr) + Expect(err).To(BeNil()) + + Eventually(func() error { + err = k8sClient.Get(ctx, ctrlClient.ObjectKeyFromObject(hr), hr) + if err != nil { + return err + } + + for _, cond := range hr.Status.Conditions { + if cond.Status == metav1.ConditionTrue && + cond.Type == apimeta.ReadyCondition { + return nil + } + } + return fmt.Errorf("helm release not ready yet") + }).WithPolling(pollInterval).WithTimeout(5 * time.Minute).Should(Succeed()) + + By("should install karma-traefik") + err = k.InstallDependency(ctx, env, constants.KarmaTraefik) + Expect(err).To(BeNil()) + + hr = &fluxhelmv2beta2.HelmRelease{ + TypeMeta: metav1.TypeMeta{ + Kind: fluxhelmv2beta2.HelmReleaseKind, + APIVersion: fluxhelmv2beta2.GroupVersion.Version, + }, + ObjectMeta: metav1.ObjectMeta{ + Name: constants.KarmaTraefik, + Namespace: kommanderNamespace, + }, + } + + Eventually(func() error { + err = k8sClient.Get(ctx, ctrlClient.ObjectKeyFromObject(hr), hr) + if err != nil { + return err + } + + for _, cond := range hr.Status.Conditions { + if cond.Status == metav1.ConditionTrue && + cond.Type == apimeta.ReadyCondition { + return nil + } + } + return fmt.Errorf("helm release not ready yet") + }).WithPolling(pollInterval).WithTimeout(5 * time.Minute).Should(Succeed()) +} diff --git a/apptests/appscenarios/suite_test.go b/apptests/appscenarios/suite_test.go index ace5828dd..ea9ea205a 100644 --- a/apptests/appscenarios/suite_test.go +++ b/apptests/appscenarios/suite_test.go @@ -11,7 +11,6 @@ import ( "github.com/mesosphere/kommander-applications/apptests/docker" "github.com/mesosphere/kommander-applications/apptests/environment" "github.com/mesosphere/kommander-applications/apptests/kind" - "github.com/mesosphere/kommander-applications/apptests/net" "k8s.io/client-go/rest" genericClient "sigs.k8s.io/controller-runtime/pkg/client" ) @@ -20,7 +19,6 @@ var ( env *environment.Env ctx context.Context network *docker.NetworkResource - subnet *net.Subnet k8sClient genericClient.Client restClientV1Pods rest.Interface upgradeKAppsRepoPath string @@ -32,7 +30,6 @@ var _ = BeforeSuite(func() { network, err = kind.EnsureDockerNetworkExist(ctx, "", false) Expect(err).ShouldNot(HaveOccurred()) - subnet, err = network.Subnet() Expect(err).ShouldNot(HaveOccurred()) env = &environment.Env{ diff --git a/apptests/flux/apply.go b/apptests/flux/apply.go index 28ffc1a83..4de5065d3 100644 --- a/apptests/flux/apply.go +++ b/apptests/flux/apply.go @@ -9,34 +9,34 @@ import ( "path/filepath" "time" + appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" + networkingv1 "k8s.io/api/networking/v1" + rbacv1 "k8s.io/api/rbac/v1" + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + apiruntime "k8s.io/apimachinery/pkg/runtime" "k8s.io/cli-runtime/pkg/genericclioptions" "k8s.io/client-go/rest" + "k8s.io/klog/v2" "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/log" "sigs.k8s.io/kustomize/api/konfig" "github.com/fluxcd/cli-utils/pkg/kstatus/polling" "github.com/fluxcd/flux2/v2/pkg/manifestgen/kustomization" - runclient "github.com/fluxcd/pkg/runtime/client" - "github.com/fluxcd/pkg/ssa" - "github.com/fluxcd/pkg/ssa/normalize" - ssautils "github.com/fluxcd/pkg/ssa/utils" - helmv2b2 "github.com/fluxcd/helm-controller/api/v2beta2" imageautov1 "github.com/fluxcd/image-automation-controller/api/v1beta1" imagereflectv1 "github.com/fluxcd/image-reflector-controller/api/v1beta2" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" notificationv1 "github.com/fluxcd/notification-controller/api/v1" notificationv1b2 "github.com/fluxcd/notification-controller/api/v1beta2" + runclient "github.com/fluxcd/pkg/runtime/client" + "github.com/fluxcd/pkg/ssa" + "github.com/fluxcd/pkg/ssa/normalize" + ssautils "github.com/fluxcd/pkg/ssa/utils" sourcev1 "github.com/fluxcd/source-controller/api/v1" sourcev1b2 "github.com/fluxcd/source-controller/api/v1beta2" - - appsv1 "k8s.io/api/apps/v1" - networkingv1 "k8s.io/api/networking/v1" - rbacv1 "k8s.io/api/rbac/v1" - apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" - apiruntime "k8s.io/apimachinery/pkg/runtime" ) // Apply is the equivalent of 'kubectl apply --server-side -f'. @@ -121,6 +121,7 @@ func readObjects(root, manifestPath string) ([]*unstructured.Unstructured, error } func newManager(rcg genericclioptions.RESTClientGetter, opts *runclient.Options) (*ssa.ResourceManager, error) { + log.SetLogger(klog.NewKlogr()) cfg, err := KubeConfig(rcg, opts) if err != nil { return nil, err diff --git a/apptests/testdata/cert-manager/kommander-ca/kommander-ca.yaml b/apptests/testdata/cert-manager/kommander-ca/kommander-ca.yaml new file mode 100644 index 000000000..c78bef8b9 --- /dev/null +++ b/apptests/testdata/cert-manager/kommander-ca/kommander-ca.yaml @@ -0,0 +1,31 @@ +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: selfsigned-issuer +spec: + selfSigned: {} +--- +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: kommander-ca + namespace: cert-manager +spec: + isCA: true + commonName: kommander-ca + secretName: kommander-ca + privateKey: + algorithm: ECDSA + size: 256 + issuerRef: + name: selfsigned-issuer + kind: ClusterIssuer + group: cert-manager.io +--- +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: kommander-ca +spec: + ca: + secretName: kommander-ca