This is an automated email from the ASF dual-hosted git repository.
nferraro pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git
The following commit(s) were added to refs/heads/main by this push:
new a84667a Fix #2237: add flag to disable installation of default
kamelets
a84667a is described below
commit a84667ae86051ebfa757038ea8293ed6d0283962
Author: nicolaferraro <[email protected]>
AuthorDate: Tue May 18 11:22:24 2021 +0200
Fix #2237: add flag to disable installation of default kamelets
---
pkg/controller/integrationplatform/create.go | 9 ++++++---
pkg/install/optional.go | 11 ++++++++---
pkg/util/defaults/defaults.go | 3 +++
pkg/util/defaults/defaults_support.go | 22 +++++++++++++++++++---
pkg/util/defaults/defaults_test.go | 13 +++++++++++++
script/Makefile | 4 ++++
6 files changed, 53 insertions(+), 9 deletions(-)
diff --git a/pkg/controller/integrationplatform/create.go
b/pkg/controller/integrationplatform/create.go
index 059d88a..6835ee5 100644
--- a/pkg/controller/integrationplatform/create.go
+++ b/pkg/controller/integrationplatform/create.go
@@ -21,6 +21,7 @@ import (
"context"
"github.com/apache/camel-k/pkg/resources"
+ "github.com/apache/camel-k/pkg/util/defaults"
v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
"github.com/apache/camel-k/pkg/install"
@@ -52,9 +53,11 @@ func (action *createAction) Handle(ctx context.Context,
platform *v1.Integration
}
}
- // Kamelet Catalog installed on platform reconciliation for cases where
users install a global operator
- if err := install.KameletCatalog(ctx, action.client,
platform.Namespace); err != nil {
- return nil, err
+ if defaults.InstallDefaultKamelets() {
+ // Kamelet Catalog installed on platform reconciliation for
cases where users install a global operator
+ if err := install.KameletCatalog(ctx, action.client,
platform.Namespace); err != nil {
+ return nil, err
+ }
}
platform.Status.Phase = v1.IntegrationPlatformPhaseReady
diff --git a/pkg/install/optional.go b/pkg/install/optional.go
index 473a66f..e7f4b0a 100644
--- a/pkg/install/optional.go
+++ b/pkg/install/optional.go
@@ -21,6 +21,7 @@ import (
"context"
"strings"
+ "github.com/apache/camel-k/pkg/util/defaults"
"github.com/go-logr/logr"
"github.com/apache/camel-k/pkg/client"
@@ -46,9 +47,13 @@ func OperatorStartupOptionalTools(ctx context.Context, c
client.Client, namespac
}
if kameletNamespace != "" {
- if err := KameletCatalog(ctx, c, kameletNamespace); err != nil {
- log.Info("Cannot install bundled Kamelet Catalog:
skipping.")
- log.V(8).Info("Error while installing bundled Kamelet
Catalog", "error", err)
+ if defaults.InstallDefaultKamelets() {
+ if err := KameletCatalog(ctx, c, kameletNamespace); err
!= nil {
+ log.Info("Cannot install bundled Kamelet
Catalog: skipping.")
+ log.V(8).Info("Error while installing bundled
Kamelet Catalog", "error", err)
+ }
+ } else {
+ log.Info("Kamelet Catalog installation is disabled")
}
if globalOperator {
diff --git a/pkg/util/defaults/defaults.go b/pkg/util/defaults/defaults.go
index 096da9d..a7fbb3b 100644
--- a/pkg/util/defaults/defaults.go
+++ b/pkg/util/defaults/defaults.go
@@ -42,4 +42,7 @@ const (
// ImageName --
ImageName = "docker.io/apache/camel-k"
+
+ // installDefaultKamelets --
+ installDefaultKamelets = true
)
diff --git a/pkg/util/defaults/defaults_support.go
b/pkg/util/defaults/defaults_support.go
index ec2a397..6849c15 100644
--- a/pkg/util/defaults/defaults_support.go
+++ b/pkg/util/defaults/defaults_support.go
@@ -17,12 +17,28 @@ limitations under the License.
package defaults
-import "os"
+import (
+ "os"
+ "strconv"
-var baseImageOverrideEnvs = []string{"BASE_IMAGE", "RELATED_IMAGE_BASE"}
+ "github.com/apache/camel-k/pkg/util/log"
+)
func BaseImage() string {
- return envOrDefault(baseImage, baseImageOverrideEnvs...)
+ return envOrDefault(baseImage, "KAMEL_BASE_IMAGE", "RELATED_IMAGE_BASE")
+}
+
+func InstallDefaultKamelets() bool {
+ return boolEnvOrDefault(installDefaultKamelets,
"KAMEL_INSTALL_DEFAULT_KAMELETS")
+}
+
+func boolEnvOrDefault(def bool, envs ...string) bool {
+ strVal := envOrDefault(strconv.FormatBool(def), envs...)
+ res, err := strconv.ParseBool(strVal)
+ if err != nil {
+ log.Error(err, "cannot parse boolean property", "property",
def, "value", strVal)
+ }
+ return res
}
func envOrDefault(def string, envs ...string) string {
diff --git a/pkg/util/defaults/defaults_test.go
b/pkg/util/defaults/defaults_test.go
index 90dba55..e49611e 100644
--- a/pkg/util/defaults/defaults_test.go
+++ b/pkg/util/defaults/defaults_test.go
@@ -19,6 +19,7 @@ package defaults
import (
"os"
+ "strconv"
"testing"
"github.com/stretchr/testify/assert"
@@ -36,3 +37,15 @@ func TestOverriddenBaseImage(t *testing.T) {
assert.Equal(t, overriddenImage, BaseImage())
assert.NoError(t, os.Setenv(env, oldEnvVal))
}
+
+func TestOverriddenInstallDefaultKamelets(t *testing.T) {
+ env := "KAMEL_INSTALL_DEFAULT_KAMELETS"
+ oldEnvVal := os.Getenv(env)
+ assert.NoError(t, os.Setenv(env, strconv.FormatBool(false)))
+ assert.False(t, InstallDefaultKamelets())
+ assert.NoError(t, os.Setenv(env, strconv.FormatBool(true)))
+ assert.True(t, InstallDefaultKamelets())
+ assert.NoError(t, os.Setenv(env, "wrongval"))
+ assert.False(t, InstallDefaultKamelets())
+ assert.NoError(t, os.Setenv(env, oldEnvVal))
+}
diff --git a/script/Makefile b/script/Makefile
index a776066..01a400b 100644
--- a/script/Makefile
+++ b/script/Makefile
@@ -20,6 +20,7 @@ LAST_RELEASED_VERSION := 1.4.0
RUNTIME_VERSION := 1.7.0
BUILDAH_VERSION := 1.14.0
KANIKO_VERSION := 0.17.1
+INSTALL_DEFAULT_KAMELETS := true
BASE_IMAGE := adoptopenjdk/openjdk11:slim
LOCAL_REPOSITORY := /tmp/artifacts/m2
IMAGE_NAME := docker.io/apache/camel-k
@@ -116,6 +117,9 @@ codegen:
@echo "" >> $(VERSIONFILE)
@echo " // ImageName -- " >> $(VERSIONFILE)
@echo " ImageName = \"$(IMAGE_NAME)\"" >> $(VERSIONFILE)
+ @echo "" >> $(VERSIONFILE)
+ @echo " // installDefaultKamelets -- " >> $(VERSIONFILE)
+ @echo " installDefaultKamelets = $(INSTALL_DEFAULT_KAMELETS)" >>
$(VERSIONFILE)
@echo ")" >> $(VERSIONFILE)
@echo "" >> $(VERSIONFILE)
gofmt -w pkg/util/defaults/defaults.go