This is an automated email from the ASF dual-hosted git repository.

squakez 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 5a177ec84 chore(helm): platformless installation
5a177ec84 is described below

commit 5a177ec84eb783adeca71a17d662e8d0bfd4cc6c
Author: Pasquale Congiusti <[email protected]>
AuthorDate: Fri May 1 08:59:29 2026 +0200

    chore(helm): platformless installation
---
 e2e/install/helm/setup_test.go                  | 21 ++----
 helm/camel-k/README.md                          | 99 +++++++++----------------
 helm/camel-k/templates/NOTES.txt                | 34 +--------
 helm/camel-k/templates/default-itp.yaml         | 28 -------
 helm/camel-k/templates/operator-deployment.yaml |  3 +
 helm/camel-k/values.yaml                        |  6 +-
 6 files changed, 52 insertions(+), 139 deletions(-)

diff --git a/e2e/install/helm/setup_test.go b/e2e/install/helm/setup_test.go
index 319fd9542..de913954f 100644
--- a/e2e/install/helm/setup_test.go
+++ b/e2e/install/helm/setup_test.go
@@ -32,15 +32,12 @@ import (
        corev1 "k8s.io/api/core/v1"
 
        . "github.com/apache/camel-k/v2/e2e/support"
-       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
        "github.com/apache/camel-k/v2/pkg/util/defaults"
        . "github.com/onsi/gomega"
 )
 
 func TestHelmInstallation(t *testing.T) {
        WithNewTestNamespace(t, func(ctx context.Context, g *WithT, ns string) {
-               containerRegistry, ok := os.LookupEnv("KAMEL_INSTALL_REGISTRY")
-               g.Expect(ok).To(BeTrue(), "You must provide a registry address 
in KAMEL_INSTALL_REGISTRY env variable")
                // Let's make sure no CRD is yet available in the cluster
                // as we must make the procedure to install them accordingly
                g.Eventually(CRDs(t)).Should(BeNil(), "No Camel K CRDs should 
be previously installed for this test")
@@ -52,14 +49,14 @@ func TestHelmInstallation(t *testing.T) {
                                "install",
                                "camel-k",
                                
fmt.Sprintf("../../../docs/charts/camel-k-%s.tgz", defaults.Version),
-                               "--set",
-                               
fmt.Sprintf("platform.build.registry.address=%s", containerRegistry),
-                               "--set",
-                               "platform.build.registry.insecure=true",
-                               "--set",
-                               fmt.Sprintf("operator.operatorId=%s", 
operatorID),
-                               "-n",
-                               ns,
+                               "--set", 
"operator.env[0].name=REGISTRY_SVC_NAMESPACE",
+                               "--set", "operator.env[0].value=kube-system",
+                               "--set", 
"operator.env[1].name=REGISTRY_SVC_NAME",
+                               "--set", "operator.env[1].value=registry",
+                               "--set", 
"operator.env[2].name=REGISTRY_INSECURE",
+                               "--set-string", "operator.env[2].value=true",
+                               "--set", fmt.Sprintf("operator.operatorId=%s", 
operatorID),
+                               "-n", ns,
                                "--force",
                        ),
                )
@@ -74,8 +71,6 @@ func TestHelmInstallation(t *testing.T) {
                
g.Expect(operatorPod.Spec.Containers[0].SecurityContext.SeccompProfile).To(Equal(DefaultOperatorSecurityContext().SeccompProfile))
                
g.Expect(operatorPod.Spec.Containers[0].SecurityContext.AllowPrivilegeEscalation).To(Equal(DefaultOperatorSecurityContext().AllowPrivilegeEscalation))
 
-               g.Eventually(PlatformPhase(t, ctx, 
ns)).Should(Equal(v1.IntegrationPlatformPhaseReady))
-
                // Test a simple route
                t.Run("simple route", func(t *testing.T) {
                        g.Expect(KamelRunWithID(t, ctx, operatorID, ns, 
"files/yaml.yaml").Execute()).To(Succeed())
diff --git a/helm/camel-k/README.md b/helm/camel-k/README.md
index da5789f32..88ad176b1 100644
--- a/helm/camel-k/README.md
+++ b/helm/camel-k/README.md
@@ -1,86 +1,58 @@
 # Camel K
 
-Apache Camel K is a lightweight integration platform, born on Kubernetes, with 
serverless superpowers: the easiest way to build and manage your Camel 
applications on Kubernetes. This chart deploys the Camel K operator and all 
resources needed to natively run Apache Camel Integrations on any Kubernetes 
cluster.
+Apache Camel K is the lightweight integration platform for Kubernetes: the 
easiest way to build and manage your Camel applications on Kubernetes. This 
chart deploys the Camel K operator and all resources needed to natively run 
Apache Camel Integrations on any Kubernetes cluster.
 
 ## Prerequisites
 
-- Kubernetes 1.11+
-- Container Image Registry installed and configured for pull
+- A container image registry installed and configured for pull
+- For production environments, a registry secret containing the access to 
container registry
 
-## Installation procedure
-
-To install the chart, first add the Camel K repository:
-
-```bash
-$ helm repo add camel-k https://apache.github.io/camel-k/charts
-```
+### Minikube
 
-## Install the operator
+Minikube offers a container registry addon, which it makes very well suited 
for local Camel K development and testing purposes:
 
 ```bash
-$ helm install camel-k camel-k/camel-k
+$ minikube addons enable registry
 ```
 
-## Set the container registry configuration
+You can use the container registry Service `registry` in namespace 
`kube-system` to configure in Camel K.
 
-A regular installation requires you to provide a registry used by Camel K to 
build application containers. See official [Camel K registry 
documentation](https://camel.apache.org/camel-k/next/installation/registry/registry.html)
 or move to next section to run on a local Minikube cluster.
+## Installation procedure
 
-Create an `itp.yaml` file like:
+To install the chart, first add the Camel K repository:
 
-```yaml
-apiVersion: camel.apache.org/v1
-kind: IntegrationPlatform
-metadata:
-  labels:
-    app: camel-k
-  name: camel-k
-spec:
-  build:
-    registry:
-      address: <my-registry-address>
-      organization: <my-organization>
-      secret: <my-secret-credentials>
+```bash
+$ helm repo add camel-k https://apache.github.io/camel-k/charts
 ```
 
-and save the resource to the cluster with `kubectl apply -f itp.yaml`.
-
-### Minikube
+## Install the operator
 
-Minikube offers a container registry addon, which it makes very well suited 
for local Camel K development and testing purposes. You can see the cluster IP 
registry addon using the following script:
+When installing the operator you must at least include the container registry 
to use (either the address or the service to use):
 
 ```bash
-$ minikube addons enable registry
-$ kubectl -n kube-system get service registry -o jsonpath='{.spec.clusterIP}'
+$ helm install camel-k camel-k/camel-k --set global=true \
+  --set operator.env[0].name=REGISTRY_ADDRESS \
+  --set operator.env[0].value=<my-registry-address> \
+  --set operator.env[1].name=REGISTRY_SECRET \
+  --set operator.env[1].value=<my-registry-secret>
 ```
 
-Then you can provide the IntegrationPlatform as `itp.yaml`:
+In the case of a local registry available (for example, in Minikube):
 
-```yaml
-apiVersion: camel.apache.org/v1
-kind: IntegrationPlatform
-metadata:
-  labels:
-    app: camel-k
-  name: camel-k
-spec:
-  build:
-    registry:
-      address: <REGISTRY_ADDRESS>
-      insecure: true
+```bash
+$ helm install camel-k camel-k/camel-k --set global=true \
+  --set operator.env[0].name=REGISTRY_SVC_NAMESPACE \
+  --set operator.env[0].value=kube-system \
+  --set operator.env[1].name=REGISTRY_SVC_NAME \
+  --set operator.env[1].value=registry \
+  --set operator.env[2].name=REGISTRY_INSECURE \
+  --set-string operator.env[2].value=true
 ```
 
-and save the resource to the cluster with `kubectl apply -f itp.yaml`.
+> **Note**: the installation RBAC provide the setting to access the Service in 
the namespace, you need to provide the specific RBAC if using another Service.
 
 ## Test your installation
 
-Verify the IntegrationPlatform is in Ready status:
-
-```bash
-kubectl get itp
-NAME      PHASE   BUILD STRATEGY   PUBLISH STRATEGY   REGISTRY ADDRESS   
DEFAULT RUNTIME
-camel-k   Ready   routine          Jib                10.100.107.57      3.8.1
-```
-
 Create a simple testing "Hello World" Integration as `test.yaml`:
 
 ```yaml
@@ -120,15 +92,9 @@ test   Running        True    quarkus            3.8.1      
       3.8.1
 
 For any problem, check it out the official [troubleshooting 
guide](https://camel.apache.org/camel-k/next/troubleshooting/troubleshooting.html)
 or the [documentation](https://camel.apache.org/camel-k/next/index.html).
 
-## Knative configuration
-
-Camel K offers the possibility to run serverless Integrations in conjunction 
with [Knative operator](https://knative.dev). Once Knative and Camel K are 
installed on the same platform, you can configure Knative resources to be 
played by Camel K.
-
-See instructions [how to enable Knative on Camel 
K](https://camel.apache.org/camel-k/next/installation/knative.html).
-
 ## Additional installation time configuration
 
-The [configuration](#configuration) section lists additional parameters that 
can be set during installation.
+The [configuration](#configuration) section lists additional parameters that 
can be set during installation. From version 2.11.0 onward, the majority of 
parameters are expected to be configured via environment variables. See 
official documentation on Apache website for a full list.
 
 > **Tip**: List all releases using `helm list`
 
@@ -171,11 +137,18 @@ The following table lists the most commonly configured 
parameters of the Camel K
 
 |           Parameter                    |             Description             
                                      |            Default             |
 
|----------------------------------------|---------------------------------------------------------------------------|--------------------------------|
+| `operator.operatorId`                  | The id of the Camel K operator      
                                      | `camel-k`                      |
 | `operator.global`                      | Indicates if the operator should 
watch all namespaces                     | `false`                        |
+| `operator.image`                       | The container image to use to run 
the operator                            | <the official image>           |
 | `operator.nodeSelector`                | The nodeSelector to use for the 
operator                                  |                                |
 | `operator.resources`                   | The resource requests and limits to 
use for the operator                  |                                |
 | `operator.securityContext`             | The (container-related) 
securityContext to use for the operator           |                             
   |
 | `operator.tolerations`                 | The list of tolerations to use for 
the operator                           |                                |
+| `operator.imagePullSecret`             | The id of the Camel K operator      
                                      |                                |
+| `operator.annotations`                 | The list of annotations to include 
to the operator Deployment             |                                |
+| `operator.serviceAccount.annotations`  | The list of annotations to include 
to the operator Service Account        |                                |
+| `extraEnv`                             | Extra env var on the operator 
Deployment (deprecated, use `env`)          |                                |
+| `env`                                  | The operator configuration via 
environment variables                      |                                |
 
 ## Contributing
 
diff --git a/helm/camel-k/templates/NOTES.txt b/helm/camel-k/templates/NOTES.txt
index 74970d39c..8c787e608 100644
--- a/helm/camel-k/templates/NOTES.txt
+++ b/helm/camel-k/templates/NOTES.txt
@@ -1,33 +1 @@
-Thanks for installing Camel K version {{ .Chart.Version }}!
-
-{{- if .Values.platform }}
-WARNING: you're setting some IntegrationPlatform values. This is deprecated 
and may be removed in future releases. Make sure to install an 
IntegrationPlatform as a separate process.
-{{- end }}
-
-{{- if not (.Values.platform) }}
-- How to configure the container registry
-
-  Please, install an IntegrationPlatform containing your container registry 
configuration before running any Integration.
-  You can run the following script:
-
-  printf "\
-  apiVersion: camel.apache.org/v1
-  kind: IntegrationPlatform
-  metadata:
-    labels:
-      app: camel-k
-    name: camel-k
-  spec:
-    build:
-      registry:
-        address: <my-registry-address>
-        organization: <my-organization>
-        secret: <my-k8s-secret>
-  " | kubectl apply -f -
-
-  More info on 
https://camel.apache.org/camel-k/next/installation/integrationplatform.html
-{{- end }}
-
-- How to run a Camel application
-
-  Learn more about running an Integration: 
https://camel.apache.org/camel-k/next/running/running.html
+Thanks for installing Camel K version {{ .Chart.Version }}! Learn more about 
running an Integration: 
https://camel.apache.org/camel-k/next/running/running.html
diff --git a/helm/camel-k/templates/default-itp.yaml 
b/helm/camel-k/templates/default-itp.yaml
deleted file mode 100644
index 3106af4bb..000000000
--- a/helm/camel-k/templates/default-itp.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.
-# ---------------------------------------------------------------------------
-
-{{- if .Values.platform }}
-apiVersion: camel.apache.org/v1
-kind: IntegrationPlatform
-metadata:
-  labels:
-    app: "camel-k"
-    {{- include "camel-k.labels" . | nindent 4 }}
-  name: {{ .Values.operator.operatorId }}
-spec:
-  {{- toYaml .Values.platform | nindent 2}}
-{{- end }}
diff --git a/helm/camel-k/templates/operator-deployment.yaml 
b/helm/camel-k/templates/operator-deployment.yaml
index 27132f111..cf74f6fee 100644
--- a/helm/camel-k/templates/operator-deployment.yaml
+++ b/helm/camel-k/templates/operator-deployment.yaml
@@ -82,6 +82,9 @@ spec:
             {{- with .Values.operator.extraEnv }}
             {{- . | toYaml | nindent 12 }}
             {{- end }}
+            {{- with .Values.operator.env }}
+            {{- . | toYaml | nindent 12 }}
+            {{- end }}
           image: {{ .Values.operator.image }}
           imagePullPolicy: IfNotPresent
           livenessProbe:
diff --git a/helm/camel-k/values.yaml b/helm/camel-k/values.yaml
index 2398868f9..5dd7dfed5 100644
--- a/helm/camel-k/values.yaml
+++ b/helm/camel-k/values.yaml
@@ -50,7 +50,9 @@ operator:
     annotations:
 
   ## Extra environment variables.
+  ## Deprecated: use env instead
   ## ref: 
https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/
   extraEnv: []
-    # - name: MY_VAR
-      # value: my_value
+
+  ## Operator environment variables: used to add any platform related 
configuration.
+  env: []

Reply via email to