You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pc...@apache.org on 2024/06/13 10:38:48 UTC
(camel-k) 01/03: fix(install): simplify kustomize procedure
This is an automated email from the ASF dual-hosted git repository.
pcongiusti pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit e117f51ad262c6c46a40023ab3ca1601863da066
Author: Pasquale Congiusti <pa...@gmail.com>
AuthorDate: Fri Jun 7 15:36:42 2024 +0200
fix(install): simplify kustomize procedure
---
e2e/install/kustomize/operator_test.go | 171 --------
e2e/install/kustomize/setup_test.go | 246 ++++++++---
e2e/install/kustomize/uninstall_test.go | 126 ------
e2e/install/upgrade/cli_upgrade_test.go | 3 -
e2e/install/upgrade/kustomize_upgrade_test.go | 164 ++++++++
install/Makefile | 465 ---------------------
install/base/config | 1 +
install/{setup => base}/kustomization.yaml | 4 +-
install/config | 1 -
install/operator/kustomization.yaml | 50 ---
.../kubernetes/descoped/integration-platform.yaml | 25 +-
.../kubernetes/descoped}/kustomization.yaml | 11 +-
.../descoped}/patch-watch-namespace-global.yaml | 2 +-
.../namespaced/integration-platform.yaml | 25 +-
.../kubernetes/namespaced}/kustomization.yaml | 23 +-
.../patch-image-pull-policy-always.yaml | 0
.../patch-install-default-kamelets.yaml | 0
.../kubernetes/namespaced}/patch-log-level.yaml | 0
.../namespaced}/patch-node-selector.yaml | 0
.../kubernetes/namespaced}/patch-ports.yaml | 0
.../namespaced}/patch-resource-requirements.yaml | 0
.../kubernetes/namespaced}/patch-toleration.yaml | 0
install/script/Makefile | 1 -
install/script/check_crd_api_support.sh | 1 -
install/script/check_platform.sh | 1 -
install/script/help.sh | 30 --
install/setup-cluster/kustomization.yaml | 22 -
pkg/resources/config/manager/kustomization.yaml | 9 -
pkg/resources/config/manifests/kustomization.yaml | 1 -
.../config/manifests/patch-delete-pvc.yaml | 28 --
.../operator-cluster-role-binding-events.yaml | 1 -
.../operator-cluster-role-binding-keda.yaml | 1 -
.../operator-cluster-role-binding-knative.yaml | 1 -
.../operator-cluster-role-binding-leases.yaml | 1 -
.../operator-cluster-role-binding-podmonitors.yaml | 1 -
.../operator-cluster-role-binding-strimzi.yaml | 1 -
.../descoped/operator-cluster-role-binding.yaml | 1 -
37 files changed, 423 insertions(+), 994 deletions(-)
diff --git a/e2e/install/kustomize/operator_test.go b/e2e/install/kustomize/operator_test.go
deleted file mode 100644
index c8d686241..000000000
--- a/e2e/install/kustomize/operator_test.go
+++ /dev/null
@@ -1,171 +0,0 @@
-//go:build integration
-// +build integration
-
-// To enable compilation of this file in Goland, go to "Settings -> Go -> Vendoring & Build Tags -> Custom Tags" and add "integration"
-
-/*
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements. See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package kustomize
-
-import (
- "context"
- "fmt"
- "os"
- "testing"
-
- corev1 "k8s.io/api/core/v1"
-
- . "github.com/apache/camel-k/v2/e2e/support"
- testutil "github.com/apache/camel-k/v2/e2e/support/util"
- v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
- "github.com/apache/camel-k/v2/pkg/util/kubernetes"
-
- . "github.com/onsi/gomega"
-)
-
-func TestOperatorBasic(t *testing.T) {
- makeDir := testutil.MakeTempCopyDir(t, "../../../install")
- os.Setenv("CAMEL_K_TEST_MAKE_DIR", makeDir)
-
- ctx := TestContext()
-
- // Ensure no CRDs are already installed
- g := NewWithT(t)
- g.Expect(UninstallAll(t, ctx)).To(Succeed())
-
- // Return the cluster to previous state
- defer Cleanup(t, ctx)
-
- WithNewTestNamespace(t, func(ctx context.Context, g *WithT, ns string) {
- namespaceArg := fmt.Sprintf("NAMESPACE=%s", ns)
- ExpectExecSucceed(t, g, Make(t, "setup-cluster", namespaceArg))
- ExpectExecSucceed(t, g, Make(t, "setup", namespaceArg))
- // Skip default kamelets installation for faster test runs
- ExpectExecSucceed(t, g, Make(t, "operator",
- namespaceArg,
- "INSTALL_DEFAULT_KAMELETS=false"))
-
- // Refresh the test client to account for the newly installed CRDs
- RefreshClient(t)
-
- g.Eventually(OperatorPod(t, ctx, ns)).ShouldNot(BeNil())
- g.Eventually(OperatorPodPhase(t, ctx, ns), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-
- // Check if restricted security context has been applyed
- operatorPod := OperatorPod(t, ctx, ns)()
- g.Expect(operatorPod.Spec.Containers[0].SecurityContext.RunAsNonRoot).To(Equal(kubernetes.DefaultOperatorSecurityContext().RunAsNonRoot))
- g.Expect(operatorPod.Spec.Containers[0].SecurityContext.Capabilities).To(Equal(kubernetes.DefaultOperatorSecurityContext().Capabilities))
- g.Expect(operatorPod.Spec.Containers[0].SecurityContext.SeccompProfile).To(Equal(kubernetes.DefaultOperatorSecurityContext().SeccompProfile))
- g.Expect(operatorPod.Spec.Containers[0].SecurityContext.AllowPrivilegeEscalation).To(Equal(kubernetes.DefaultOperatorSecurityContext().AllowPrivilegeEscalation))
-
- g.Eventually(Platform(t, ctx, ns)).ShouldNot(BeNil())
- registry := os.Getenv("KIND_REGISTRY")
- if registry != "" {
- g.Eventually(PlatformHas(t, ctx, ns, func(pl *v1.IntegrationPlatform) bool {
- return pl.Status.Build.Registry.Address == registry
- }), TestTimeoutShort).Should(BeTrue())
- }
-
- })
-}
-
-func TestOperatorKustomizeAlternativeImage(t *testing.T) {
- makeDir := testutil.MakeTempCopyDir(t, "../../../install")
- os.Setenv("CAMEL_K_TEST_MAKE_DIR", makeDir)
-
- ctx := TestContext()
-
- // Ensure no CRDs are already installed
- g := NewWithT(t)
- g.Expect(UninstallAll(t, ctx)).To(Succeed())
-
- // Return the cluster to previous state
- defer Cleanup(t, ctx)
-
- WithNewTestNamespace(t, func(ctx context.Context, g *WithT, ns string) {
- namespaceArg := fmt.Sprintf("NAMESPACE=%s", ns)
- ExpectExecSucceed(t, g, Make(t, "setup-cluster", namespaceArg))
- ExpectExecSucceed(t, g, Make(t, "setup", namespaceArg))
-
- // Skip default kamelets installation for faster test runs
- newImage := "quay.io/kameltest/kamel-operator"
- newTag := "1.1.1"
- ExpectExecSucceed(t, g, Make(t, "operator",
- fmt.Sprintf("CUSTOM_IMAGE=%s", newImage),
- fmt.Sprintf("CUSTOM_VERSION=%s", newTag),
- namespaceArg,
- "INSTALL_DEFAULT_KAMELETS=false"))
-
- // Refresh the test client to account for the newly installed CRDs
- RefreshClient(t)
-
- g.Eventually(OperatorImage(t, ctx, ns)).Should(Equal(fmt.Sprintf("%s:%s", newImage, newTag)))
- })
-}
-
-func TestOperatorKustomizeGlobal(t *testing.T) {
- makeDir := testutil.MakeTempCopyDir(t, "../../../install")
- os.Setenv("CAMEL_K_TEST_MAKE_DIR", makeDir)
-
- ctx := TestContext()
-
- // Ensure no CRDs are already installed
- g := NewWithT(t)
- g.Expect(UninstallAll(t, ctx)).To(Succeed())
-
- // Return the cluster to previous state
- defer Cleanup(t, ctx)
-
- WithNewTestNamespace(t, func(ctx context.Context, g *WithT, ns string) {
- namespaceArg := fmt.Sprintf("NAMESPACE=%s", ns)
- ExpectExecSucceed(t, g, Make(t, "setup-cluster", namespaceArg))
- ExpectExecSucceed(t, g, Make(t, "setup", namespaceArg, "GLOBAL=true"))
-
- // Skip default kamelets installation for faster test runs
- ExpectExecSucceed(t, g, Make(t, "operator",
- namespaceArg,
- "GLOBAL=true",
- "INSTALL_DEFAULT_KAMELETS=false"))
-
- // Refresh the test client to account for the newly installed CRDs
- RefreshClient(t)
-
- podFunc := OperatorPod(t, ctx, ns)
- g.Eventually(podFunc).ShouldNot(BeNil())
- g.Eventually(OperatorPodPhase(t, ctx, ns), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
- pod := podFunc()
-
- containers := pod.Spec.Containers
- g.Expect(containers).NotTo(BeEmpty())
-
- envvars := containers[0].Env
- g.Expect(envvars).NotTo(BeEmpty())
-
- found := false
- for _, v := range envvars {
- if v.Name == "WATCH_NAMESPACE" {
- g.Expect(v.Value).To(Equal("\"\""))
- found = true
- break
- }
- }
- g.Expect(found).To(BeTrue())
-
- g.Eventually(Platform(t, ctx, ns)).ShouldNot(BeNil())
- })
-}
diff --git a/e2e/install/kustomize/setup_test.go b/e2e/install/kustomize/setup_test.go
index 79a2d1b72..90db17876 100644
--- a/e2e/install/kustomize/setup_test.go
+++ b/e2e/install/kustomize/setup_test.go
@@ -26,73 +26,219 @@ import (
"context"
"fmt"
"os"
+ "os/exec"
"testing"
+ corev1 "k8s.io/api/core/v1"
+
. "github.com/apache/camel-k/v2/e2e/support"
testutil "github.com/apache/camel-k/v2/e2e/support/util"
- "github.com/apache/camel-k/v2/pkg/util/defaults"
+ v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
+ "github.com/apache/camel-k/v2/pkg/util/kubernetes"
+
. "github.com/onsi/gomega"
)
-func TestSetupKustomizeBasic(t *testing.T) {
+func TestKustomizeNamespaced(t *testing.T) {
+ // TODO, likely we need to adjust this test with a Kustomize overlay for Openshift
+ // which would not require the registry setting
+ registry := os.Getenv("KIND_REGISTRY")
+ kustomizeDir := testutil.MakeTempCopyDir(t, "../../../install")
ctx := TestContext()
g := NewWithT(t)
- makeDir := testutil.MakeTempCopyDir(t, "../../../install")
- os.Setenv("CAMEL_K_TEST_MAKE_DIR", makeDir)
-
- // Ensure no CRDs are already installed
- g.Expect(UninstallAll(t, ctx)).To(Succeed())
- g.Eventually(CRDs(t)).Should(HaveLen(0))
-
- // Return the cluster to previous state
- defer Cleanup(t, ctx)
+ g.Expect(registry).NotTo(Equal(""))
+ // Ensure no CRDs are already installed: we can skip to check as it may fail
+ // if no CRDs was previously installed.
+ UninstallAll(t, ctx)
WithNewTestNamespace(t, func(ctx context.Context, g *WithT, ns string) {
- namespaceArg := fmt.Sprintf("NAMESPACE=%s", ns)
- ExpectExecSucceed(t, g, Make(t, "setup-cluster", namespaceArg))
- g.Eventually(CRDs(t)).Should(HaveLen(GetExpectedCRDs(defaults.Version)))
-
- ExpectExecSucceed(t, g, Make(t, "setup", namespaceArg))
-
- kpRoles := ExpectedKubePromoteRoles
- opRoles := kpRoles + ExpectedOSPromoteRoles
- g.Eventually(Role(t, ctx, ns)).Should(Or(HaveLen(kpRoles), HaveLen(opRoles)))
-
- kcRoles := ExpectedKubeClusterRoles
- ocRoles := kcRoles + ExpectedOSClusterRoles
- g.Eventually(ClusterRole(t, ctx)).Should(Or(HaveLen(kcRoles), HaveLen(ocRoles)))
-
- // Tidy up to ensure next test works
- g.Expect(Kamel(t, ctx, "uninstall", "-n", ns).Execute()).To(Succeed())
+ // We must change a few values in the Kustomize config
+ ExpectExecSucceed(t, g,
+ exec.Command(
+ "sed",
+ "-i",
+ fmt.Sprintf("s/namespace: .*/namespace: %s/", ns),
+ fmt.Sprintf("%s/overlays/kubernetes/namespaced/kustomization.yaml", kustomizeDir),
+ ))
+ ExpectExecSucceed(t, g,
+ exec.Command(
+ "sed",
+ "-i",
+ fmt.Sprintf("s/address: .*/address: %s/", registry),
+ fmt.Sprintf("%s/overlays/kubernetes/namespaced/integration-platform.yaml", kustomizeDir),
+ ))
+
+ ExpectExecSucceed(t, g, Kubectl(
+ "apply",
+ "-k",
+ fmt.Sprintf("%s/overlays/kubernetes/namespaced", kustomizeDir),
+ "--server-side",
+ ))
+ // Refresh the test client to account for the newly installed CRDs
+ RefreshClient(t)
+ g.Eventually(OperatorPod(t, ctx, ns)).ShouldNot(BeNil())
+ g.Eventually(OperatorPodPhase(t, ctx, ns), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+ // Check if restricted security context has been applied
+ operatorPod := OperatorPod(t, ctx, ns)()
+ g.Expect(operatorPod.Spec.Containers[0].SecurityContext.RunAsNonRoot).To(
+ Equal(kubernetes.DefaultOperatorSecurityContext().RunAsNonRoot),
+ )
+ g.Expect(operatorPod.Spec.Containers[0].SecurityContext.Capabilities).To(
+ Equal(kubernetes.DefaultOperatorSecurityContext().Capabilities),
+ )
+ g.Expect(operatorPod.Spec.Containers[0].SecurityContext.SeccompProfile).To(
+ Equal(kubernetes.DefaultOperatorSecurityContext().SeccompProfile),
+ )
+ g.Expect(operatorPod.Spec.Containers[0].SecurityContext.AllowPrivilegeEscalation).To(
+ Equal(kubernetes.DefaultOperatorSecurityContext().AllowPrivilegeEscalation),
+ )
+ g.Eventually(Platform(t, ctx, ns)).ShouldNot(BeNil())
+ g.Eventually(PlatformHas(t, ctx, ns, func(pl *v1.IntegrationPlatform) bool {
+ return pl.Status.Build.Registry.Address == registry
+ }), TestTimeoutShort).Should(BeTrue())
+
+ // Test a simple integration is running
+ g.Expect(KamelRun(t, ctx, ns, "files/yaml.yaml").Execute()).To(Succeed())
+ g.Eventually(IntegrationPodPhase(t, ctx, ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+ g.Eventually(IntegrationConditionStatus(t, ctx, ns, "yaml", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+ g.Eventually(IntegrationLogs(t, ctx, ns, "yaml"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+
+ // Test operator only uninstall
+ ExpectExecSucceed(t, g, Kubectl(
+ "delete",
+ "deploy,configmap,secret,sa,rolebindings,clusterrolebindings,roles,clusterroles",
+ "-l",
+ "app=camel-k",
+ "-n",
+ ns,
+ ))
+ g.Eventually(OperatorPod(t, ctx, ns)).Should(BeNil())
+ g.Eventually(Integration(t, ctx, ns, "yaml"), TestTimeoutShort).ShouldNot(BeNil())
+ g.Eventually(IntegrationConditionStatus(t, ctx, ns, "yaml", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+
+ // Test CRD uninstall (will remove Integrations as well)
+ ExpectExecSucceed(t, g, Kubectl(
+ "delete",
+ "crd",
+ "-l",
+ "app=camel-k",
+ "-n",
+ ns,
+ ))
+ g.Eventually(OperatorPod(t, ctx, ns)).Should(BeNil())
+ g.Eventually(Integration(t, ctx, ns, "yaml"), TestTimeoutShort).Should(BeNil())
+ g.Eventually(CRDs(t)).Should(BeNil())
})
-
}
-func TestSetupKustomizeGlobal(t *testing.T) {
- makeDir := testutil.MakeTempCopyDir(t, "../../../install")
- os.Setenv("CAMEL_K_TEST_MAKE_DIR", makeDir)
-
+func TestKustomizeDescoped(t *testing.T) {
+ // TODO, likely we need to adjust this test with a Kustomize overlay for Openshift
+ // which would not require the registry setting
+ registry := os.Getenv("KIND_REGISTRY")
+ kustomizeDir := testutil.MakeTempCopyDir(t, "../../../install")
ctx := TestContext()
-
- // Ensure no CRDs are already installed
g := NewWithT(t)
- g.Expect(UninstallAll(t, ctx)).To(Succeed())
- g.Eventually(CRDs(t)).Should(HaveLen(0))
-
- // Return the cluster to previous state
- defer Cleanup(t, ctx)
+ g.Expect(registry).NotTo(Equal(""))
+ // Ensure no CRDs are already installed: we can skip to check as it may fail
+ // if no CRDs was previously installed.
+ UninstallAll(t, ctx)
WithNewTestNamespace(t, func(ctx context.Context, g *WithT, ns string) {
- namespaceArg := fmt.Sprintf("NAMESPACE=%s", ns)
- ExpectExecSucceed(t, g, Make(t, "setup-cluster", namespaceArg))
- g.Eventually(CRDs(t)).Should(HaveLen(GetExpectedCRDs(defaults.Version)))
-
- ExpectExecSucceed(t, g, Make(t, "setup", "GLOBAL=true", namespaceArg))
-
- g.Eventually(Role(t, ctx, ns)).Should(HaveLen(0))
-
- kcpRoles := ExpectedKubeClusterRoles + ExpectedKubePromoteRoles
- ocpRoles := kcpRoles + ExpectedOSClusterRoles + ExpectedOSPromoteRoles
- g.Eventually(ClusterRole(t, ctx)).Should(Or(HaveLen(kcpRoles), HaveLen(ocpRoles)))
+ // We must change a few values in the Kustomize config
+ ExpectExecSucceed(t, g,
+ exec.Command(
+ "sed",
+ "-i",
+ fmt.Sprintf("s/namespace: .*/namespace: %s/", ns),
+ fmt.Sprintf("%s/overlays/kubernetes/descoped/kustomization.yaml", kustomizeDir),
+ ))
+ ExpectExecSucceed(t, g,
+ exec.Command(
+ "sed",
+ "-i",
+ fmt.Sprintf("s/address: .*/address: %s/", registry),
+ fmt.Sprintf("%s/overlays/kubernetes/descoped/integration-platform.yaml", kustomizeDir),
+ ))
+
+ ExpectExecSucceed(t, g, Kubectl(
+ "apply",
+ "-k",
+ fmt.Sprintf("%s/overlays/kubernetes/descoped", kustomizeDir),
+ "--server-side",
+ ))
+
+ // Refresh the test client to account for the newly installed CRDs
+ RefreshClient(t)
+
+ podFunc := OperatorPod(t, ctx, ns)
+ g.Eventually(podFunc).ShouldNot(BeNil())
+ g.Eventually(OperatorPodPhase(t, ctx, ns), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+ pod := podFunc()
+
+ containers := pod.Spec.Containers
+ g.Expect(containers).NotTo(BeEmpty())
+
+ envvars := containers[0].Env
+ g.Expect(envvars).NotTo(BeEmpty())
+
+ found := false
+ for _, v := range envvars {
+ if v.Name == "WATCH_NAMESPACE" {
+ g.Expect(v.Value).To(Equal(""))
+ found = true
+ break
+ }
+ }
+ g.Expect(found).To(BeTrue())
+ // Check if restricted security context has been applied
+ operatorPod := OperatorPod(t, ctx, ns)()
+ g.Expect(operatorPod.Spec.Containers[0].SecurityContext.RunAsNonRoot).To(
+ Equal(kubernetes.DefaultOperatorSecurityContext().RunAsNonRoot),
+ )
+ g.Expect(operatorPod.Spec.Containers[0].SecurityContext.Capabilities).To(
+ Equal(kubernetes.DefaultOperatorSecurityContext().Capabilities),
+ )
+ g.Expect(operatorPod.Spec.Containers[0].SecurityContext.SeccompProfile).To(
+ Equal(kubernetes.DefaultOperatorSecurityContext().SeccompProfile),
+ )
+ g.Expect(operatorPod.Spec.Containers[0].SecurityContext.AllowPrivilegeEscalation).To(
+ Equal(kubernetes.DefaultOperatorSecurityContext().AllowPrivilegeEscalation),
+ )
+ g.Eventually(Platform(t, ctx, ns)).ShouldNot(BeNil())
+
+ // We need a different namespace from the global operator
+ WithNewTestNamespace(t, func(ctx context.Context, g *WithT, nsIntegration string) {
+ // Test a simple integration is running
+ g.Expect(KamelRun(t, ctx, nsIntegration, "files/yaml.yaml").Execute()).To(Succeed())
+ g.Eventually(IntegrationPodPhase(t, ctx, nsIntegration, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+ g.Eventually(IntegrationConditionStatus(t, ctx, nsIntegration, "yaml", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+ g.Eventually(IntegrationLogs(t, ctx, nsIntegration, "yaml"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+
+ // Test operator only uninstall
+ ExpectExecSucceed(t, g, Kubectl(
+ "delete",
+ "deploy,configmap,secret,sa,rolebindings,clusterrolebindings,roles,clusterroles",
+ "-l",
+ "app=camel-k",
+ "-n",
+ ns,
+ ))
+ g.Eventually(OperatorPod(t, ctx, ns)).Should(BeNil())
+ g.Eventually(Integration(t, ctx, nsIntegration, "yaml"), TestTimeoutShort).ShouldNot(BeNil())
+ g.Eventually(IntegrationConditionStatus(t, ctx, nsIntegration, "yaml", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+
+ // Test CRD uninstall (will remove Integrations as well)
+ ExpectExecSucceed(t, g, Kubectl(
+ "delete",
+ "crd",
+ "-l",
+ "app=camel-k",
+ "-n",
+ ns,
+ ))
+ g.Eventually(OperatorPod(t, ctx, ns)).Should(BeNil())
+ g.Eventually(Integration(t, ctx, nsIntegration, "yaml"), TestTimeoutShort).Should(BeNil())
+ g.Eventually(CRDs(t)).Should(BeNil())
+ })
})
}
diff --git a/e2e/install/kustomize/uninstall_test.go b/e2e/install/kustomize/uninstall_test.go
deleted file mode 100644
index 305fa7512..000000000
--- a/e2e/install/kustomize/uninstall_test.go
+++ /dev/null
@@ -1,126 +0,0 @@
-//go:build integration
-// +build integration
-
-// To enable compilation of this file in Goland, go to "Settings -> Go -> Vendoring & Build Tags -> Custom Tags" and add "integration"
-
-/*
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements. See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package kustomize
-
-import (
- "context"
- "fmt"
- "os"
- "testing"
-
- corev1 "k8s.io/api/core/v1"
-
- . "github.com/apache/camel-k/v2/e2e/support"
- testutil "github.com/apache/camel-k/v2/e2e/support/util"
- "github.com/apache/camel-k/v2/pkg/util/defaults"
- . "github.com/onsi/gomega"
-)
-
-func TestKustomizeUninstallBasic(t *testing.T) {
- ctx := TestContext()
- g := NewWithT(t)
- makeDir := testutil.MakeTempCopyDir(t, "../../../install")
- os.Setenv("CAMEL_K_TEST_MAKE_DIR", makeDir)
-
- // Ensure no CRDs are already installed
- g.Expect(UninstallAll(t, ctx)).To(Succeed())
- g.Eventually(CRDs(t)).Should(HaveLen(0))
-
- // Return the cluster to previous state
- defer Cleanup(t, ctx)
-
- WithNewTestNamespace(t, func(ctx context.Context, g *WithT, ns string) {
- namespaceArg := fmt.Sprintf("NAMESPACE=%s", ns)
- ExpectExecSucceed(t, g, Make(t, "setup-cluster", namespaceArg))
- ExpectExecSucceed(t, g, Make(t, "setup", namespaceArg))
- ExpectExecSucceed(t, g, Make(t, "platform", namespaceArg))
- // Skip default kamelets installation for faster test runs
- ExpectExecSucceed(t, g, Make(t, "operator", namespaceArg, "INSTALL_DEFAULT_KAMELETS=false"))
- g.Eventually(OperatorPod(t, ctx, ns)).ShouldNot(BeNil())
- g.Eventually(OperatorPodPhase(t, ctx, ns), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-
- // Do uninstall
- ExpectExecSucceed(t, g, Make(t, "uninstall", namespaceArg))
-
- // Refresh the test client to account for the newly installed CRDs
- RefreshClient(t)
-
- g.Eventually(OperatorPod(t, ctx, ns)).Should(BeNil())
- g.Eventually(Platform(t, ctx, ns)).Should(BeNil())
- // The operator can dynamically create a for its builders
- // so, in case there is a build strategy "pod", expect this to have 1 role
- g.Eventually(Role(t, ctx, ns)).Should(BeNil())
- g.Eventually(ClusterRole(t, ctx)).Should(BeNil())
- // CRDs should be still there
- g.Eventually(CRDs(t)).Should(HaveLen(GetExpectedCRDs(defaults.Version)))
-
- // Do uninstall all
- ExpectExecSucceed(t, g, Make(t, "uninstall", namespaceArg, "UNINSTALL_ALL=true"))
-
- g.Eventually(CRDs(t)).Should(BeNil())
- })
-
-}
-
-func TestUninstallGlobal(t *testing.T) {
- ctx := TestContext()
- g := NewWithT(t)
- makeDir := testutil.MakeTempCopyDir(t, "../../../install")
- os.Setenv("CAMEL_K_TEST_MAKE_DIR", makeDir)
-
- // Ensure no CRDs are already installed
- g.Expect(UninstallAll(t, ctx)).To(Succeed())
- g.Eventually(CRDs(t)).Should(HaveLen(0))
-
- // Return the cluster to previous state
- defer Cleanup(t, ctx)
-
- WithNewTestNamespace(t, func(ctx context.Context, g *WithT, ns string) {
- namespaceArg := fmt.Sprintf("NAMESPACE=%s", ns)
- ExpectExecSucceed(t, g, Make(t, "setup-cluster", namespaceArg))
- ExpectExecSucceed(t, g, Make(t, "setup", namespaceArg, "GLOBAL=true"))
- ExpectExecSucceed(t, g, Make(t, "platform", namespaceArg))
- // Skip default kamelets installation for faster test runs
- ExpectExecSucceed(t, g, Make(t, "operator", namespaceArg, "GLOBAL=true", "INSTALL_DEFAULT_KAMELETS=false"))
- g.Eventually(OperatorPod(t, ctx, ns)).ShouldNot(BeNil())
- g.Eventually(OperatorPodPhase(t, ctx, ns), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-
- // Do uninstall
- ExpectExecSucceed(t, g, Make(t, "uninstall", namespaceArg))
-
- // Refresh the test client to account for the newly installed CRDs
- RefreshClient(t)
-
- g.Eventually(OperatorPod(t, ctx, ns)).Should(BeNil())
- g.Eventually(Platform(t, ctx, ns)).Should(BeNil())
- g.Eventually(Role(t, ctx, ns)).Should(BeNil())
- g.Eventually(ClusterRole(t, ctx)).Should(BeNil())
- // CRDs should be still there
- g.Eventually(CRDs(t)).Should(HaveLen(GetExpectedCRDs(defaults.Version)))
-
- // Do uninstall all
- ExpectExecSucceed(t, g, Make(t, "uninstall", namespaceArg, "UNINSTALL_ALL=true"))
-
- g.Eventually(CRDs(t)).Should(BeNil())
- })
-}
diff --git a/e2e/install/upgrade/cli_upgrade_test.go b/e2e/install/upgrade/cli_upgrade_test.go
index 8f607fa92..b90d96446 100644
--- a/e2e/install/upgrade/cli_upgrade_test.go
+++ b/e2e/install/upgrade/cli_upgrade_test.go
@@ -43,13 +43,10 @@ func TestCLIOperatorUpgrade(t *testing.T) {
WithNewTestNamespace(t, func(ctx context.Context, g *WithT, ns string) {
version, ok := os.LookupEnv("KAMEL_K_TEST_RELEASE_VERSION")
g.Expect(ok).To(BeTrue())
-
image, ok := os.LookupEnv("KAMEL_K_TEST_OPERATOR_CURRENT_IMAGE")
g.Expect(ok).To(BeTrue())
-
kamel, ok := os.LookupEnv("RELEASED_KAMEL_BIN")
g.Expect(ok).To(BeTrue())
-
// Set KAMEL_BIN only for this test - don't override the ENV variable for all tests
g.Expect(os.Setenv("KAMEL_BIN", kamel)).To(Succeed())
diff --git a/e2e/install/upgrade/kustomize_upgrade_test.go b/e2e/install/upgrade/kustomize_upgrade_test.go
new file mode 100644
index 000000000..e3bbdbdfb
--- /dev/null
+++ b/e2e/install/upgrade/kustomize_upgrade_test.go
@@ -0,0 +1,164 @@
+//go:build integration
+// +build integration
+
+// To enable compilation of this file in Goland, go to "Settings -> Go -> Vendoring & Build Tags -> Custom Tags" and add "integration"
+
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package upgrade
+
+import (
+ "context"
+ "fmt"
+ "os"
+ "os/exec"
+ "testing"
+ "time"
+
+ . "github.com/onsi/gomega"
+
+ corev1 "k8s.io/api/core/v1"
+ kerrors "k8s.io/apimachinery/pkg/api/errors"
+
+ . "github.com/apache/camel-k/v2/e2e/support"
+ testutil "github.com/apache/camel-k/v2/e2e/support/util"
+ v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
+ "github.com/apache/camel-k/v2/pkg/util/defaults"
+)
+
+// WARNING: this test is not OLM specific but needs certain setting we provide in OLM installation scenario
+func TestKustomizeUpgrade(t *testing.T) {
+ WithNewTestNamespace(t, func(ctx context.Context, g *WithT, ns string) {
+ // ********* START
+ // TODO: we need to replace this CLI based installation with Kustomize installation after 2.4 release
+ // this is a workaround as Kustomize was not working properly pre 2.4
+ version, ok := os.LookupEnv("KAMEL_K_TEST_RELEASE_VERSION")
+ g.Expect(ok).To(BeTrue())
+ image, ok := os.LookupEnv("KAMEL_K_TEST_OPERATOR_CURRENT_IMAGE")
+ g.Expect(ok).To(BeTrue())
+ kamel, ok := os.LookupEnv("RELEASED_KAMEL_BIN")
+ g.Expect(ok).To(BeTrue())
+ // Set KAMEL_BIN only for this test - don't override the ENV variable for all tests
+ g.Expect(os.Setenv("KAMEL_BIN", kamel)).To(Succeed())
+
+ if len(CRDs(t)()) > 0 {
+ // Clean up old installation - maybe leftover from another test
+ if err := UninstallAll(t, ctx); err != nil && !kerrors.IsNotFound(err) {
+ t.Error(err)
+ t.FailNow()
+ }
+ }
+ g.Eventually(CRDs(t)).Should(HaveLen(0))
+
+ // Should both install the CRDs and kamel in the given namespace
+ g.Expect(Kamel(t, ctx, "install", "-n", ns, "--global").Execute()).To(Succeed())
+ // Check the operator pod is running
+ g.Eventually(OperatorPodPhase(t, ctx, ns), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+ // Refresh the test client to account for the newly installed CRDs
+ RefreshClient(t)
+ // Check the IntegrationPlatform has been reconciled
+ g.Eventually(PlatformVersion(t, ctx, ns), TestTimeoutMedium).Should(Equal(version))
+ // TODO: replace the code above
+ // ************* END
+
+ // We need a different namespace from the global operator
+ WithNewTestNamespace(t, func(ctx context.Context, g *WithT, nsIntegration string) {
+ // Run the Integration
+ name := RandomizedSuffixName("yaml")
+ g.Expect(Kamel(t, ctx, "run", "-n", nsIntegration, "--name", name, "files/yaml.yaml").Execute()).To(Succeed())
+ g.Eventually(IntegrationPodPhase(t, ctx, nsIntegration, name)).Should(Equal(corev1.PodRunning))
+ g.Eventually(IntegrationConditionStatus(t, ctx, nsIntegration, name, v1.IntegrationConditionReady)).Should(Equal(corev1.ConditionTrue))
+ // Check the Integration version
+ g.Eventually(IntegrationVersion(t, ctx, nsIntegration, name)).Should(Equal(version))
+
+ // Clear the KAMEL_BIN environment variable so that the current version is used from now on
+ g.Expect(os.Setenv("KAMEL_BIN", "")).To(Succeed())
+
+ // Upgrade the operator by installing the current version
+ registry := os.Getenv("KIND_REGISTRY")
+ kustomizeDir := testutil.MakeTempCopyDir(t, "../../../install")
+ g.Expect(registry).NotTo(Equal(""))
+ // We must change a few values in the Kustomize config
+ ExpectExecSucceed(t, g,
+ exec.Command(
+ "sed",
+ "-i",
+ fmt.Sprintf("s/namespace: .*/namespace: %s/", ns),
+ fmt.Sprintf("%s/overlays/kubernetes/descoped/kustomization.yaml", kustomizeDir),
+ ))
+ ExpectExecSucceed(t, g,
+ exec.Command(
+ "sed",
+ "-i",
+ fmt.Sprintf("s/address: .*/address: %s/", registry),
+ fmt.Sprintf("%s/overlays/kubernetes/descoped/integration-platform.yaml", kustomizeDir),
+ ))
+
+ ExpectExecSucceed(t, g, Kubectl(
+ "apply",
+ "-k",
+ fmt.Sprintf("%s/overlays/kubernetes/descoped", kustomizeDir),
+ "--server-side",
+ "--force-conflicts",
+ ))
+
+ // Check the operator image is the current built one
+ g.Eventually(OperatorImage(t, ctx, ns)).Should(Equal(image))
+ // Check the operator pod is running
+ g.Eventually(OperatorPodPhase(t, ctx, ns), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+ // Check the IntegrationPlatform has been reconciled
+ g.Eventually(PlatformPhase(t, ctx, ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+ g.Eventually(PlatformVersion(t, ctx, ns), TestTimeoutMedium).Should(Equal(defaults.Version))
+
+ // Check the Integration hasn't been upgraded
+ g.Consistently(IntegrationVersion(t, ctx, nsIntegration, name), 15*time.Second, 3*time.Second).Should(Equal(version))
+ // Make sure that any Pod rollout is completing successfully
+ // otherwise we are probably in front of a non breaking compatibility change
+ g.Consistently(IntegrationConditionStatus(t, ctx, nsIntegration, name, v1.IntegrationConditionReady),
+ 2*time.Minute, 15*time.Second).Should(Equal(corev1.ConditionTrue))
+
+ // Force the Integration upgrade
+ g.Expect(Kamel(t, ctx, "rebuild", name, "-n", nsIntegration).Execute()).To(Succeed())
+
+ // A catalog should be created with the new configuration
+ g.Eventually(DefaultCamelCatalogPhase(t, ctx, ns), TestTimeoutMedium).Should(Equal(v1.CamelCatalogPhaseReady))
+ // Check the Integration version has been upgraded
+ g.Eventually(IntegrationVersion(t, ctx, nsIntegration, name), TestTimeoutMedium).Should(Equal(defaults.Version))
+
+ // Check the previous kit is not garbage collected
+ g.Eventually(Kits(t, ctx, ns, KitWithVersion(version))).Should(HaveLen(1))
+ // Check a new kit is created with the current version
+ g.Eventually(Kits(t, ctx, ns, KitWithVersion(defaults.Version))).Should(HaveLen(1))
+ // Check the new kit is ready
+ g.Eventually(Kits(t, ctx, ns, KitWithVersion(defaults.Version), KitWithPhase(v1.IntegrationKitPhaseReady)),
+ TestTimeoutMedium).Should(HaveLen(1))
+
+ kit := Kits(t, ctx, ns, KitWithVersion(defaults.Version))()[0]
+
+ // Check the Integration uses the new image
+ g.Eventually(IntegrationKit(t, ctx, nsIntegration, name), TestTimeoutMedium).Should(Equal(kit.Name))
+ // Check the Integration Pod uses the new kit
+ g.Eventually(IntegrationPodImage(t, ctx, nsIntegration, name)).Should(Equal(kit.Status.Image))
+
+ // Check the Integration runs correctly
+ g.Eventually(IntegrationPodPhase(t, ctx, nsIntegration, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+ g.Eventually(IntegrationConditionStatus(t, ctx, nsIntegration, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+ })
+ // TODO: we should verify new CRDs installed are the same as the one defined in the source core here
+ })
+}
diff --git a/install/Makefile b/install/Makefile
deleted file mode 100644
index 692d32f9a..000000000
--- a/install/Makefile
+++ /dev/null
@@ -1,465 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-#
-# Use bash explicitly in this Makefile to avoid unexpected platform
-# incompatibilities among Linux distros.
-#
-SHELL := /bin/bash
-
-MAKE := make --no-print-directory
-
-#
-# Allows for resources to be loaded from outside the root location of
-# the kustomize config file. Ensures that resource don't need to be
-# copied around the file system.
-#
-# See https://kubectl.docs.kubernetes.io/faq/kustomize
-#
-KOPTIONS := --load-restrictor LoadRestrictionsNone
-
-#
-# Include the main camel-k Makefile containing
-# basic common recipes like kustomize and vars
-# like VERSION
-#
-include script/Makefile
-
-#
-# Vars that can be overridden by external env vars
-#
-DRY_RUN ?= false
-NAMESPACE ?= camel-k
-
-# Global: [true|false]
-# - On setup: will promote roles and bindings to cluster-level
-# - On operator: set namespace to all using WATCH_NAMESPACE env var
-GLOBAL ?= false
-# Always Pull Images: [true|false]
-ALWAYS_PULL_IMAGES ?= false
-# Monitoring: [true|false]
-# - On operator: will add the prometheus resources to install
-MONITORING ?= false
-# Monitoring Port: integer
-MONITORING_PORT ?= 8080
-# Health Port: integer
-HEALTH_PORT ?= 8081
-# Operator Logging Level: string [info, debug, 0, 1]
-LOGGING_LEVEL ?= info
-# Install default kamelets: [true|false]
-INSTALL_DEFAULT_KAMELETS ?= true
-# Install default pvc: [true|false]
-INSTALL_DEFAULT_PVC ?= true
-# Uninstall all Camel K resources: [true|false]
-UNINSTALL_ALL ?=false
-
-CONFIG := config
-MANAGER := $(CONFIG)/manager
-SAMPLES := $(CONFIG)/samples
-RBAC := $(CONFIG)/rbac
-RBAC_OS := $(RBAC)/openshift
-RBAC_GLOBAL := global
-OPERATOR := operator
-PLACEHOLDER := placeholder
-YAML := yaml
-
-# Fetch the latest image name - may override the original constant
-IMAGE_NAME := $(shell grep image: $(MANAGER)/operator-deployment.yaml | sed 's/.*image: \(.*\):.*/\1/')
-
-# Setup patches
-ROLE_TO_CROLE_PATCH := $(RBAC)/patch-role-to-clusterrole
-ROLEBIN_TO_CROLEBIN_PATCH := $(RBAC)/patch-rolebinding-to-clusterrolebinding
-# Operator patches
-PORTS_PATCH := patch-ports
-LOG_LEVEL_PATCH := patch-log-level
-INSTALL_DEFAULT_KAMELETS_PATCH := patch-install-default-kamelets
-IMAGE_PULL_POLICY_PATCH := patch-image-pull-policy-always
-WATCH_NAMESPACE_PATCH := patch-watch-namespace-global
-# Platform patches
-INT_PLATFORM_PATCH := patch-integration-platform
-
-#
-# Macro for editing kustomization to define
-# the image reference
-#
-# Parameter: directory of the kustomization.yaml
-#
-define set-kustomize-image
- $(if $(filter $(IMAGE_NAME),$(CUSTOM_IMAGE):$(CUSTOM_VERSION)),,\
- @cd $(1) || exit 1 && \
- $(KUSTOMIZE) edit set image $(IMAGE_NAME)=$(CUSTOM_IMAGE):$(CUSTOM_VERSION))
-endef
-
-#
-# Macro for editing kustomization to define
-# the namespace
-#
-# Parameter: directory of the kustomization.yaml
-#
-define set-kustomize-namespace
- @cd $(1) || exit 1 && \
- $(KUSTOMIZE) edit set namespace $(NAMESPACE)
-endef
-
-#
-# Add or remove a patch on a kustomization.yaml
-# targetting a kind of resource
-#
-# Parameters:
-# * directory of the kustomization.yaml
-# * [add, remove]
-# * path of patch
-# * kind of resources, eg. Deployment, Role
-#
-define add-remove-kind-patch
- @cd $(1) || exit 1 && \
- $(KUSTOMIZE) edit $(2) patch --path $(3) --kind $(4) &> /dev/null
-endef
-
-#
-# Macro for adding / removing the prometheus resources for monitoring
-#
-define add-remove-operator-monitoring
- @cd $(1) || exit 1 && \
- $(KUSTOMIZE) edit $(2) resource ../$(CONFIG)/prometheus &> /dev/null
-endef
-
-.PHONY: have-platform check_admin setup-cluster .setup-kubernetes .setup-openshift setup
-
-#
-# Determine the platform of the cluster based on
-# either the use of querying through a go-client
-# or using an installed client, ie. oc or kubectl
-#
-find-platform:
-ifndef PLATFORM
-PLATFORM=$(shell script/check_platform.sh)
-endif
-
-#
-# Checks if the cluster platform has been defined correctly either by the user
-# or by the platform_check script.
-#
-have-platform: find-platform
-ifeq ($(PLATFORM),openshift)
- @echo Platform identified as 'openshift'
-else ifeq ($(PLATFORM),kubernetes)
- @echo Platform identified as 'kubernetes'
-else
- @echo "****"
- @echo "**** ERROR: Cannot continue as cluster platform cannot be identified ****"
- @echo "****"
- @exit 1
-endif
-
-#
-# Checks if the cluster user has the necessary privileges to be a cluster-admin
-# In this case if the user can list the CRDs then probably a cluster-admin
-#
-check-admin: kubectl
- @output=$$(kubectl get crd 2>&1) || (echo "****" && echo "**** ERROR: Cannot continue as user is not a Cluster-Admin ****" && echo "****"; exit 1)
-
-crd-api-support: kubectl
-ifndef CRD_SUPPORT
-CRD_SUPPORT=$(shell script/check_crd_api_support.sh)
-endif
-
-check-crd-api-support: crd-api-support
-ifneq ($(CRD_SUPPORT),OK)
- $(error *** CRD API FAILURE: $(CRD_SUPPORT) ****)
-endif
-
-#---
-#
-#@ setup-cluster
-#
-#== Setup the cluster installation by installing crds and cluster roles.
-#
-# Will either call setup-cluster-openshift (then setup-cluster-kubernetes) or
-# setup-cluster-kubernetes depending on the identity of the cluster
-#
-#=== Cluster-admin privileges are required.
-#
-#* PARAMETERS:
-#** NAMESPACE: Set the namespace for the resources
-#** PLATFORM: Override the discovered platform, if required
-#** DRY_RUN: Print the resources to be applied instead of applying them [true|false]
-#
-#---
-setup-cluster: check-admin check-crd-api-support have-platform kustomize kubectl
-# Set the namespace in the setup-cluster kustomization yaml
- @$(call set-kustomize-namespace,$@)
-ifeq ($(PLATFORM), openshift)
- @cd $@ || exit 1 && $(KUSTOMIZE) edit add resource ../$(RBAC_OS) && cd - &> /dev/null;
-endif
-#
-# Build the resources
-# Post-process ClusterRoleBindings to fix the namespace in the refs (not yet handled by kustomize)
-# Either apply to the cluster or output to CLI
-#
-ifeq ($(DRY_RUN), false)
- @$(KUSTOMIZE) build $(KOPTIONS) $@ | \
- sed 's/$(PLACEHOLDER)/$(NAMESPACE)/' | \
- kubectl apply --server-side -f -
-else
- @$(KUSTOMIZE) build $(KOPTIONS) $@ | \
- sed 's/$(PLACEHOLDER)/$(NAMESPACE)/'
-endif
-
-#---
-#
-#@ setup
-#
-#== Setup the installation by installing roles and granting privileges for the installing operator.
-#
-#=== Calls setup-cluster
-#=== Cluster-admin privileges are required.
-#
-#* PARAMETERS:
-#** NAMESPACE: Set the namespace for the resources
-#** GLOBAL: Convert all roles & bindings to cluster-level [true|false]
-#** PLATFORM: Override the discovered platform, if required
-#** DRY_RUN: Print the resources to be applied instead of applying them [true|false]
-#
-#---
-setup: setup-cluster
-# Set the namespace in the setup kustomization yaml
- @$(call set-kustomize-namespace,$@)
-# If GLOBAL then add the versions with clusterroles and clusterrolebindings
-ifeq ($(GLOBAL), true)
- @cd $@ || exit 1 && $(KUSTOMIZE) edit add resource ../$(RBAC)/descoped && cd - &> /dev/null;
-else
- @cd $@ || exit 1 && $(KUSTOMIZE) edit add resource ../$(RBAC)/namespaced && cd - &> /dev/null;
-endif
-ifeq ($(PLATFORM), openshift)
-ifeq ($(GLOBAL), true)
- @cd $@ || exit 1 && $(KUSTOMIZE) edit add resource ../$(RBAC_OS)/descoped && cd - &> /dev/null;
-else
- @cd $@ || exit 1 && $(KUSTOMIZE) edit add resource ../$(RBAC_OS)/namespaced && cd - &> /dev/null;
-endif
-endif
-#
-# Build the resources
-# Post-process RoleBindings to fix the namespace in the refs (not yet handled by kustomize)
-# Either apply to the cluster or output to CLI
-#
-ifeq ($(DRY_RUN), false)
- @$(KUSTOMIZE) build $(KOPTIONS) $@ | \
- sed 's/$(PLACEHOLDER)/$(NAMESPACE)/' | \
- kubectl apply --server-side -f -
-else
- @$(KUSTOMIZE) build $(KOPTIONS) $@ | \
- sed 's/$(PLACEHOLDER)/$(NAMESPACE)/'
-endif
-
-.PHONY: operator .operator-port-patch .operator-can-monitor .operator-log-level-patch
-
-#
-# Customizes the port patch
-#
-.operator-port-patch:
- @sed -i 's/--monitoring-port=.*/--monitoring-port=$(MONITORING_PORT)/' $(MANAGER)/$(PORTS_PATCH).$(YAML)
- @sed -i '/path:.*\/containerPort/,/- op/{s/value: .*/value: $(MONITORING_PORT)/}' $(MANAGER)/$(PORTS_PATCH).$(YAML)
- @sed -i 's/--health-port=.*/--health-port=$(HEALTH_PORT)/' $(MANAGER)/$(PORTS_PATCH).$(YAML)
- @sed -i '/path:.*\/httpGet\/port/,/- op/{s/value: .*/value: $(HEALTH_PORT)/}' $(MANAGER)/$(PORTS_PATCH).$(YAML)
-
-#
-# Customizes the log level patch
-#
-.operator-log-level-patch:
- @sed -i 's/ value:.*/ value: "$(LOGGING_LEVEL)"/' $(MANAGER)/$(LOG_LEVEL_PATCH).$(YAML)
-
-.operator-can-monitor: kubectl
- @output=$$(kubectl get crd prometheusrules.monitoring.coreos.com 2>&1) || (echo "****" && echo "**** ERROR: Montoring not available as Prometheus CRDs not installed in cluster ****" && echo "****"; exit 1)
-
-#---
-#
-#@ operator
-#
-#== Install the operator deployment and related resources.
-#
-#=== Cluster-admin privileges are required.
-#
-#* PARAMETERS:
-#** NAMESPACE: Set the namespace to install the operator into
-#** PLATFORM: Override the discovered platform, if required
-#** GLOBAL: Set the operator to watch all namespaces for custom resources [true|false]
-#** CUSTOM_IMAGE: Set a custom operator image name
-#** CUSTOM_VERSION: Set a custom operator image version/tag
-#** ALWAYS_PULL_IMAGES: Set whether to always pull the operator image [true|false]
-#** MONITORING: Add the prometheus monitoring resources
-#** MONITORING_PORT: Set a custom monitoring port
-#** HEALTH_PORT: Set a custom health port
-#** LOGGING_LEVEL: Set the level of logging [info|debug]
-#** INSTALL_DEFAULT_KAMELETS: Install the default Kamelets from catalog [true|false]
-#** DRY_RUN: Print the resources to be applied instead of applying them [true|false]
-#
-#---
-operator: check-admin have-platform check-crd-api-support kustomize kubectl .operator-port-patch .operator-log-level-patch
-ifeq ($(MONITORING), true)
- @$(MAKE) -s .operator-can-monitor
- @$(call add-remove-operator-monitoring,$@,add)
-else
- @$(call add-remove-operator-monitoring,$@,remove)
-endif
-# Set the namespace in the operator kustomization yaml
- @$(call set-kustomize-namespace,$@)
-# Set the image reference of the kustomization
- @$(call set-kustomize-image,$@)
-# Set the WATCH NAMESPACE env var depending on GLOBAL var
-ifeq ($(GLOBAL), true)
- @$(call add-remove-kind-patch,$(MANAGER),add,$(WATCH_NAMESPACE_PATCH).$(YAML),Deployment)
-else
- @$(call add-remove-kind-patch,$(MANAGER),remove,$(WATCH_NAMESPACE_PATCH).$(YAML),Deployment)
-endif
-# Set the ALWAYS_PULL_IMAGES config depending on var
-ifeq ($(ALWAYS_PULL_IMAGES),true)
- @$(call add-remove-kind-patch,$(MANAGER),add,$(IMAGE_PULL_POLICY_PATCH).$(YAML),Deployment)
-else
- @$(call add-remove-kind-patch,$(MANAGER),remove,$(IMAGE_PULL_POLICY_PATCH).$(YAML),Deployment)
-endif
-# Set the PORTS depending on vars
-ifneq ($(MONITORING_PORT), 8080)
- @$(call add-remove-kind-patch,$(MANAGER),add,$(PORTS_PATCH).$(YAML),Deployment)
-else ifneq ($(HEALTH_PORT), 8081)
- @$(call add-remove-kind-patch,$(MANAGER),add,$(PORTS_PATCH).$(YAML),Deployment)
-endif
-# Set the Log level of the operator
-ifneq ($(LOGGING_LEVEL), info)
- @$(call add-remove-kind-patch,$(MANAGER),add,$(LOG_LEVEL_PATCH).$(YAML),Deployment)
-else ifneq ($(LOGGING_LEVEL), 0)
- @$(call add-remove-kind-patch,$(MANAGER),add,$(LOG_LEVEL_PATCH).$(YAML),Deployment)
-else
- @$(call add-remove-kind-patch,$(MANAGER),remove,$(LOG_LEVEL_PATCH).$(YAML),Deployment)
-endif
-# Set the INSTALL_DEFAULT_KAMELETS config depending on var
-ifeq ($(INSTALL_DEFAULT_KAMELETS),false)
- @$(call add-remove-kind-patch,$(MANAGER),add,$(INSTALL_DEFAULT_KAMELETS_PATCH).$(YAML),Deployment)
-else
- @$(call add-remove-kind-patch,$(MANAGER),remove,$(INSTALL_DEFAULT_KAMELETS_PATCH).$(YAML),Deployment)
-endif
-ifeq ($(DRY_RUN), false)
- @$(KUSTOMIZE) build $(KOPTIONS) $@ | kubectl apply -f -
-else
- @$(KUSTOMIZE) build $(KOPTIONS) $@
-endif
-
-.PHONY: platform .platform-openshift-patch .platform-kubernetes-patch
-
-#
-# Customizes the samples patches for kubernetes
-#
-.platform-kubernetes-patch:
- @sed -i 's/.*profile:.*/ profile: Kubernetes/' $(SAMPLES)/$(INT_PLATFORM_PATCH).$(YAML)
-
-#
-# Customizes the samples patches for openshift
-#
-.platform-openshift-patch:
- @sed -i 's/.*profile:.*/ profile: OpenShift/' $(SAMPLES)/$(INT_PLATFORM_PATCH).$(YAML)
-
-#---
-#
-#@ platform
-#
-#== Install the integration platform.
-#
-#=== Cluster-admin privileges are required.
-#
-#* PARAMETERS:
-#** NAMESPACE: Set the namespace to install the operator into
-#** PLATFORM: Override the discovered platform, if required
-#** DRY_RUN: Print the resources to be applied instead of applying them [true|false]
-#
-#---
-platform: have-platform kustomize kubectl
-# Cannot be a dependency as PLATFORM could contain 'ERROR: '
- @$(MAKE) .platform-$(PLATFORM)-patch
-# Set the namespace in the platform kustomization yaml
- @$(call set-kustomize-namespace,$@)
-ifeq ($(DRY_RUN), false)
- @$(KUSTOMIZE) build $(KOPTIONS) $@ | kubectl apply -f -
-else
- @$(KUSTOMIZE) build $(KOPTIONS) $@
-endif
-
-.PHONY: example
-
-#---
-#
-#@ example
-#
-#== Install the example integration.
-#
-#* PARAMETERS:
-#** NAMESPACE: Set the namespace to install the example into
-#** PLATFORM: Override the discovered platform, if required
-#** DRY_RUN: Print the resources to be applied instead of applying them [true|false]
-#
-#---
-example: kubectl
-# Set the namespace in the example kustomization yaml
- @$(call set-kustomize-namespace,$@)
-ifeq ($(DRY_RUN), false)
- @$(KUSTOMIZE) build $(KOPTIONS) $@ | kubectl apply -f -
-else
- @$(KUSTOMIZE) build $(KOPTIONS) $@
-endif
-
-.PHONY: uninstall
-
-#---
-#
-#@ uninstall
-#
-#== Uninstall the resources previously installed by the platform, operator, setup, and setup-cluster targets.
-#
-#=== Cluster-admin privileges are required.
-#
-#* PARAMETERS:
-#** NAMESPACE: Set the namespace to uninstall the resources from
-#** UNINSTALL_ALL: Uninstall all Camel K resources including crds and cluster roles installed by setup-cluster [true|false]
-#** DRY_RUN: Print the resources to be applied instead of applying them [true|false]
-#
-#---
-uninstall: kubectl
-# Set the namespace in the all target kustomization yaml
- @$(call set-kustomize-namespace, platform)
- @$(call set-kustomize-namespace, operator)
- @$(call set-kustomize-namespace, setup)
-ifeq ($(UNINSTALL_ALL), true)
- @$(call set-kustomize-namespace, setup-cluster)
-endif
-ifeq ($(DRY_RUN), false)
- @$(KUSTOMIZE) build $(KOPTIONS) platform | kubectl delete --ignore-not-found=true -f -
- @$(KUSTOMIZE) build $(KOPTIONS) operator | kubectl delete --ignore-not-found=true -f -
- @$(KUSTOMIZE) build $(KOPTIONS) setup | kubectl delete --ignore-not-found=true -f -
-ifeq ($(UNINSTALL_ALL), true)
- @$(KUSTOMIZE) build $(KOPTIONS) setup-cluster | kubectl delete --ignore-not-found=true -f -
-endif
-else
- @$(KUSTOMIZE) build $(KOPTIONS) platform | kubectl delete --dry-run=client -f -
- @$(KUSTOMIZE) build $(KOPTIONS) operator | kubectl delete --dry-run=client -f -
- @$(KUSTOMIZE) build $(KOPTIONS) setup | kubectl delete --dry-run=client -f -
-ifeq ($(UNINSTALL_ALL), true)
- @$(KUSTOMIZE) build $(KOPTIONS) setup-cluster | kubectl delete --dry-run=client -f -
-endif
-endif
-
-.DEFAULT_GOAL := help
-.PHONY: help
-help: ## Show this help screen.
- @#./script/help.sh $(MAKEFILE_LIST)
- @awk 'BEGIN { printf "\nUsage: make \033[31m<PARAM1=val1 PARAM2=val2>\033[0m \033[36m<target>\033[0m\n"; printf "\nAvailable targets are:\n" } /^#@/ { printf "\033[36m%-15s\033[0m", $$2; subdesc=0; next } /^#===/ { printf "%-14s \033[32m%s\033[0m\n", " ", substr($$0, 5); subdesc=1; next } /^#==/ { printf "\033[0m%s\033[0m\n\n", substr($$0, 4); next } /^#\*\*/ { printf "%-14s \033[31m%s\033[0m\n", " ", substr($$0, 4); next } /^#\*/ && (subdesc == 1) { printf "\n"; next } /^#\-\-\-/ { pri [...]
diff --git a/install/base/config b/install/base/config
new file mode 120000
index 000000000..82818de8a
--- /dev/null
+++ b/install/base/config
@@ -0,0 +1 @@
+../../pkg/resources/config/
\ No newline at end of file
diff --git a/install/setup/kustomization.yaml b/install/base/kustomization.yaml
similarity index 96%
rename from install/setup/kustomization.yaml
rename to install/base/kustomization.yaml
index 9598726ca..fd44ce4a6 100644
--- a/install/setup/kustomization.yaml
+++ b/install/base/kustomization.yaml
@@ -18,7 +18,9 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
-- ../config/rbac
+- ./config/crd
+- ./config/rbac
+- ./config/manager
transformers:
- |-
diff --git a/install/config b/install/config
deleted file mode 120000
index 90c8cdbdc..000000000
--- a/install/config
+++ /dev/null
@@ -1 +0,0 @@
-../pkg/resources/config/
\ No newline at end of file
diff --git a/install/operator/kustomization.yaml b/install/operator/kustomization.yaml
deleted file mode 100644
index dc1a8db59..000000000
--- a/install/operator/kustomization.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-# ---------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ---------------------------------------------------------------------------
-
-#
-# Add patches for modifying the deployment
-#
-# * patch-image-pull-policy-always.yaml
-# modifies the image pull policy property to "Always"
-#
-# * patch-monitoring-port.yaml
-# modifies the monitoring port
-#
-# * patch-health-port.yaml
-# modifies the health port
-#
-# * patch-watch-namespace-global.yaml
-# modifies the WATCH_NAMESPACE env var to wildcard for all namespaces
-#
-# * patch-toleration.yaml
-# modifies the tolerations configuration of the deployment
-# Edit the patch manually to add the required keys
-#
-# * patch-nodes-selector.yaml
-# modifies the nodeSelector configuration of the deployment
-# to bind the deployment to a particular labelled group of nodes
-# Edit the patch manually to add the required configuration
-#
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-
-resources:
-- ../config/manager
-images:
-- name: docker.io/apache/camel-k
- newName: docker.io/apache/camel-k
- newTag: 2.0.0-SNAPSHOT
diff --git a/pkg/resources/config/manager/patch-image-pull-policy-always.yaml b/install/overlays/kubernetes/descoped/integration-platform.yaml
similarity index 57%
copy from pkg/resources/config/manager/patch-image-pull-policy-always.yaml
copy to install/overlays/kubernetes/descoped/integration-platform.yaml
index e03b90dc7..05136f15b 100644
--- a/pkg/resources/config/manager/patch-image-pull-policy-always.yaml
+++ b/install/overlays/kubernetes/descoped/integration-platform.yaml
@@ -15,13 +15,22 @@
# limitations under the License.
# ---------------------------------------------------------------------------
-apiVersion: apps/v1
-kind: Deployment
+apiVersion: camel.apache.org/v1
+kind: IntegrationPlatform
metadata:
- name: camel-k-operator
+ name: camel-k
spec:
- template:
- spec:
- containers:
- - name: camel-k-operator
- imagePullPolicy: Always
+ build:
+ # Registry is required unless your cluster has KEP-1755 enabled and you want to use the local registry.
+ # This is a feature recommended for development purpose only.
+ # more info at https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/generic/1755-communicating-a-local-registry
+ registry:
+ # For minikube local cluster you can enable one with
+ #
+ # $ minikube addons enable registry
+ #
+ # and get the value from
+ # $ kubectl -n kube-system get service registry -o jsonpath='{.spec.clusterIP}'
+ #
+ address: registry-host.io
+ insecure: true
diff --git a/install/example/kustomization.yaml b/install/overlays/kubernetes/descoped/kustomization.yaml
similarity index 84%
rename from install/example/kustomization.yaml
rename to install/overlays/kubernetes/descoped/kustomization.yaml
index 6b9541ac7..1f0e96900 100644
--- a/install/example/kustomization.yaml
+++ b/install/overlays/kubernetes/descoped/kustomization.yaml
@@ -18,4 +18,13 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
-- ../config/samples/bases/camel_v1_integration.yaml
+- ../../../base
+- ../../../base/config/rbac/descoped
+- integration-platform.yaml
+
+namespace: camel-k
+
+patches:
+- path: patch-watch-namespace-global.yaml
+ target:
+ kind: Deployment
diff --git a/pkg/resources/config/manager/patch-watch-namespace-global.yaml b/install/overlays/kubernetes/descoped/patch-watch-namespace-global.yaml
similarity index 98%
rename from pkg/resources/config/manager/patch-watch-namespace-global.yaml
rename to install/overlays/kubernetes/descoped/patch-watch-namespace-global.yaml
index 626fa2b7a..69c6ae502 100644
--- a/pkg/resources/config/manager/patch-watch-namespace-global.yaml
+++ b/install/overlays/kubernetes/descoped/patch-watch-namespace-global.yaml
@@ -19,4 +19,4 @@
path: /spec/template/spec/containers/0/env/0/valueFrom
- op: add
path: /spec/template/spec/containers/0/env/0/value
- value: '""'
+ value: ""
diff --git a/pkg/resources/config/manager/patch-image-pull-policy-always.yaml b/install/overlays/kubernetes/namespaced/integration-platform.yaml
similarity index 57%
copy from pkg/resources/config/manager/patch-image-pull-policy-always.yaml
copy to install/overlays/kubernetes/namespaced/integration-platform.yaml
index e03b90dc7..05136f15b 100644
--- a/pkg/resources/config/manager/patch-image-pull-policy-always.yaml
+++ b/install/overlays/kubernetes/namespaced/integration-platform.yaml
@@ -15,13 +15,22 @@
# limitations under the License.
# ---------------------------------------------------------------------------
-apiVersion: apps/v1
-kind: Deployment
+apiVersion: camel.apache.org/v1
+kind: IntegrationPlatform
metadata:
- name: camel-k-operator
+ name: camel-k
spec:
- template:
- spec:
- containers:
- - name: camel-k-operator
- imagePullPolicy: Always
+ build:
+ # Registry is required unless your cluster has KEP-1755 enabled and you want to use the local registry.
+ # This is a feature recommended for development purpose only.
+ # more info at https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/generic/1755-communicating-a-local-registry
+ registry:
+ # For minikube local cluster you can enable one with
+ #
+ # $ minikube addons enable registry
+ #
+ # and get the value from
+ # $ kubectl -n kube-system get service registry -o jsonpath='{.spec.clusterIP}'
+ #
+ address: registry-host.io
+ insecure: true
diff --git a/install/platform/kustomization.yaml b/install/overlays/kubernetes/namespaced/kustomization.yaml
similarity index 72%
rename from install/platform/kustomization.yaml
rename to install/overlays/kubernetes/namespaced/kustomization.yaml
index b425aeb51..54d318512 100644
--- a/install/platform/kustomization.yaml
+++ b/install/overlays/kubernetes/namespaced/kustomization.yaml
@@ -14,17 +14,22 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# ---------------------------------------------------------------------------
-
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
-#
-# * patch-integration-platform.yaml
-# customizes the integration platform custom resource
-# Edit the patch manually to add required configuration
-#
resources:
-- ../config/samples/bases/camel_v1_integrationplatform.yaml
+- ../../../base
+- ../../../base/config/rbac/namespaced
+- integration-platform.yaml
+
+namespace: default
-patchesStrategicMerge:
-- ../config/samples/patch-integration-platform.yaml
+# You can provide any required adjustement here. Take the following as references:
+# patchesStrategicMerge:
+# - patch-toleration.yaml
+# - patch-node-selector.yaml
+# - patch-resource-requirements.yaml
+# patches:
+# - path: patch-log-level.yaml
+# target:
+# kind: Deployment
\ No newline at end of file
diff --git a/pkg/resources/config/manager/patch-image-pull-policy-always.yaml b/install/overlays/kubernetes/namespaced/patch-image-pull-policy-always.yaml
similarity index 100%
rename from pkg/resources/config/manager/patch-image-pull-policy-always.yaml
rename to install/overlays/kubernetes/namespaced/patch-image-pull-policy-always.yaml
diff --git a/pkg/resources/config/manager/patch-install-default-kamelets.yaml b/install/overlays/kubernetes/namespaced/patch-install-default-kamelets.yaml
similarity index 100%
rename from pkg/resources/config/manager/patch-install-default-kamelets.yaml
rename to install/overlays/kubernetes/namespaced/patch-install-default-kamelets.yaml
diff --git a/pkg/resources/config/manager/patch-log-level.yaml b/install/overlays/kubernetes/namespaced/patch-log-level.yaml
similarity index 100%
rename from pkg/resources/config/manager/patch-log-level.yaml
rename to install/overlays/kubernetes/namespaced/patch-log-level.yaml
diff --git a/pkg/resources/config/manager/patch-node-selector.yaml b/install/overlays/kubernetes/namespaced/patch-node-selector.yaml
similarity index 100%
rename from pkg/resources/config/manager/patch-node-selector.yaml
rename to install/overlays/kubernetes/namespaced/patch-node-selector.yaml
diff --git a/pkg/resources/config/manager/patch-ports.yaml b/install/overlays/kubernetes/namespaced/patch-ports.yaml
similarity index 100%
rename from pkg/resources/config/manager/patch-ports.yaml
rename to install/overlays/kubernetes/namespaced/patch-ports.yaml
diff --git a/pkg/resources/config/manager/patch-resource-requirements.yaml b/install/overlays/kubernetes/namespaced/patch-resource-requirements.yaml
similarity index 100%
rename from pkg/resources/config/manager/patch-resource-requirements.yaml
rename to install/overlays/kubernetes/namespaced/patch-resource-requirements.yaml
diff --git a/pkg/resources/config/manager/patch-toleration.yaml b/install/overlays/kubernetes/namespaced/patch-toleration.yaml
similarity index 100%
rename from pkg/resources/config/manager/patch-toleration.yaml
rename to install/overlays/kubernetes/namespaced/patch-toleration.yaml
diff --git a/install/script/Makefile b/install/script/Makefile
deleted file mode 120000
index d89e34fe5..000000000
--- a/install/script/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../../script/Makefile
\ No newline at end of file
diff --git a/install/script/check_crd_api_support.sh b/install/script/check_crd_api_support.sh
deleted file mode 120000
index 3d144aabd..000000000
--- a/install/script/check_crd_api_support.sh
+++ /dev/null
@@ -1 +0,0 @@
-../../script/check_crd_api_support.sh
\ No newline at end of file
diff --git a/install/script/check_platform.sh b/install/script/check_platform.sh
deleted file mode 120000
index 329d24665..000000000
--- a/install/script/check_platform.sh
+++ /dev/null
@@ -1 +0,0 @@
-../../script/check_platform.sh
\ No newline at end of file
diff --git a/install/script/help.sh b/install/script/help.sh
deleted file mode 100755
index c79347664..000000000
--- a/install/script/help.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-
-# ---------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ---------------------------------------------------------------------------
-
-
-awk 'BEGIN {
- printf "\nUsage: make \033[31m<PARAM1=val1 PARAM2=val2>\033[0m \033[36m<target>\033[0m\n"
- printf "\nAvailable targets are:\n"
- }
- /^#@/ { printf "\033[36m%-15s\033[0m", $2; subdesc=0; next }
- /^#===/ { printf "%-14s \033[32m%s\033[0m\n", " ", substr($0, 5); subdesc=1; next }
- /^#==/ { printf "\033[0m%s\033[0m\n\n", substr($0, 4); next }
- /^#\*\*/ { printf "%-14s \033[31m%s\033[0m\n", " ", substr($0, 4); next }
- /^#\*/ && (subdesc == 1) { printf "\n"; next }
- /^#\-\-\-/ { printf "\n"; next }' ${1}
diff --git a/install/setup-cluster/kustomization.yaml b/install/setup-cluster/kustomization.yaml
deleted file mode 100644
index cfce7838b..000000000
--- a/install/setup-cluster/kustomization.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
-# ---------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ---------------------------------------------------------------------------
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-
-resources:
-- ../config/crd
-- ../config/rbac/user-cluster-role.yaml
diff --git a/pkg/resources/config/manager/kustomization.yaml b/pkg/resources/config/manager/kustomization.yaml
index 38c67427f..895978ab4 100644
--- a/pkg/resources/config/manager/kustomization.yaml
+++ b/pkg/resources/config/manager/kustomization.yaml
@@ -21,12 +21,3 @@ kind: Kustomization
resources:
- operator-deployment.yaml
- operator-service-account.yaml
-
-patchesStrategicMerge:
-- patch-toleration.yaml
-- patch-node-selector.yaml
-- patch-resource-requirements.yaml
-patches:
-- path: patch-log-level.yaml
- target:
- kind: Deployment
diff --git a/pkg/resources/config/manifests/kustomization.yaml b/pkg/resources/config/manifests/kustomization.yaml
index 7c6754326..bd94db03f 100644
--- a/pkg/resources/config/manifests/kustomization.yaml
+++ b/pkg/resources/config/manifests/kustomization.yaml
@@ -33,7 +33,6 @@ resources:
patchesStrategicMerge:
- patch-delete-user-cluster-role.yaml
-- patch-delete-pvc.yaml
images:
- name: docker.io/apache/camel-k
newName: docker.io/apache/camel-k
diff --git a/pkg/resources/config/manifests/patch-delete-pvc.yaml b/pkg/resources/config/manifests/patch-delete-pvc.yaml
deleted file mode 100644
index ef4d9825a..000000000
--- a/pkg/resources/config/manifests/patch-delete-pvc.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
-# ---------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ---------------------------------------------------------------------------
-
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: camel-k-operator
-spec:
- template:
- spec:
- containers:
- - name: camel-k-operator
- volumeMounts: null
- volumes: null
diff --git a/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-events.yaml b/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-events.yaml
index 9dd5228d2..abc12cf9b 100644
--- a/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-events.yaml
+++ b/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-events.yaml
@@ -24,7 +24,6 @@ metadata:
subjects:
- kind: ServiceAccount
name: camel-k-operator
- namespace: placeholder
roleRef:
kind: ClusterRole
name: camel-k-operator-events
diff --git a/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-keda.yaml b/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-keda.yaml
index 92e154e87..5ee70de10 100644
--- a/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-keda.yaml
+++ b/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-keda.yaml
@@ -24,7 +24,6 @@ metadata:
subjects:
- kind: ServiceAccount
name: camel-k-operator
- namespace: placeholder
roleRef:
kind: ClusterRole
name: camel-k-operator-keda
diff --git a/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-knative.yaml b/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-knative.yaml
index 739b0dd06..717ea682d 100644
--- a/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-knative.yaml
+++ b/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-knative.yaml
@@ -24,7 +24,6 @@ metadata:
subjects:
- kind: ServiceAccount
name: camel-k-operator
- namespace: placeholder
roleRef:
kind: ClusterRole
name: camel-k-operator-knative
diff --git a/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-leases.yaml b/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-leases.yaml
index 35d667fd1..84099b3d1 100644
--- a/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-leases.yaml
+++ b/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-leases.yaml
@@ -24,7 +24,6 @@ metadata:
subjects:
- kind: ServiceAccount
name: camel-k-operator
- namespace: placeholder
roleRef:
kind: ClusterRole
name: camel-k-operator-leases
diff --git a/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-podmonitors.yaml b/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-podmonitors.yaml
index bef231b07..a8cee53ea 100644
--- a/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-podmonitors.yaml
+++ b/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-podmonitors.yaml
@@ -24,7 +24,6 @@ metadata:
subjects:
- kind: ServiceAccount
name: camel-k-operator
- namespace: placeholder
roleRef:
kind: ClusterRole
name: camel-k-operator-podmonitors
diff --git a/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-strimzi.yaml b/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-strimzi.yaml
index fefd14352..876c161ec 100644
--- a/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-strimzi.yaml
+++ b/pkg/resources/config/rbac/descoped/operator-cluster-role-binding-strimzi.yaml
@@ -24,7 +24,6 @@ metadata:
subjects:
- kind: ServiceAccount
name: camel-k-operator
- namespace: placeholder
roleRef:
kind: ClusterRole
name: camel-k-operator-strimzi
diff --git a/pkg/resources/config/rbac/descoped/operator-cluster-role-binding.yaml b/pkg/resources/config/rbac/descoped/operator-cluster-role-binding.yaml
index 83f227d62..0d6f587a1 100644
--- a/pkg/resources/config/rbac/descoped/operator-cluster-role-binding.yaml
+++ b/pkg/resources/config/rbac/descoped/operator-cluster-role-binding.yaml
@@ -24,7 +24,6 @@ metadata:
subjects:
- kind: ServiceAccount
name: camel-k-operator
- namespace: placeholder
roleRef:
kind: ClusterRole
name: camel-k-operator