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
The following commit(s) were added to refs/heads/main by this push:
new 10f03f21e chore(helm): deprecate installation with platform
10f03f21e is described below
commit 10f03f21e46872acfb49a9715dd6c7cc4646576b
Author: Pasquale Congiusti <[email protected]>
AuthorDate: Wed Sep 4 15:11:47 2024 +0200
chore(helm): deprecate installation with platform
Required in order to provide a uniform user experience and make it explicit
the role of the IntegrationPlatform
---
helm/camel-k/README.md | 132 ++++++++++++++++++++++++-----------
helm/camel-k/templates/NOTES.txt | 37 ++++++++--
helm/camel-k/templates/platform.yaml | 4 +-
helm/camel-k/values.yaml | 6 --
4 files changed, 127 insertions(+), 52 deletions(-)
diff --git a/helm/camel-k/README.md b/helm/camel-k/README.md
index cfca2d345..da5789f32 100644
--- a/helm/camel-k/README.md
+++ b/helm/camel-k/README.md
@@ -1,15 +1,13 @@
# 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 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.
## Prerequisites
- Kubernetes 1.11+
-- Container Image Registry installed and configured for pull (optional in
Openshift or Minikube)
+- Container Image Registry installed and configured for pull
-## Installing the Chart
+## Installation procedure
To install the chart, first add the Camel K repository:
@@ -17,55 +15,118 @@ To install the chart, first add the Camel K repository:
$ helm repo add camel-k https://apache.github.io/camel-k/charts
```
-Depending on the cloud platform of choice, you will need to specify a
container registry at installation time.
+## Install the operator
+
+```bash
+$ helm install camel-k camel-k/camel-k
+```
+
+## Set the container registry configuration
+
+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.
+
+Create an `itp.yaml` file like:
+
+```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>
+```
+
+and save the resource to the cluster with `kubectl apply -f itp.yaml`.
-### Plain Kubernetes
+### Minikube
-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).
+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:
```bash
-$ helm install camel-k \
- --set platform.build.registry.address=<my-registry> \
- camel-k/camel-k
+$ minikube addons enable registry
+$ kubectl -n kube-system get service registry -o jsonpath='{.spec.clusterIP}'
+```
+
+Then you can provide the IntegrationPlatform as `itp.yaml`:
+
+```yaml
+apiVersion: camel.apache.org/v1
+kind: IntegrationPlatform
+metadata:
+ labels:
+ app: camel-k
+ name: camel-k
+spec:
+ build:
+ registry:
+ address: <REGISTRY_ADDRESS>
+ insecure: true
```
-You may install Camel K and specify a container registry later. You may need
to provide the `--force` option if the installation complains about an existing
`IntegrationPlatform`.
+and save the resource to the cluster with `kubectl apply -f itp.yaml`.
-### Openshift
+## Test your installation
-If you are installing on OpenShift, Camel K can use the OpenShift internal
registry to store and pull images:
+Verify the IntegrationPlatform is in Ready status:
```bash
-$ helm install camel-k \
- --set platform.cluster=OpenShift \
- camel-k/camel-k
+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
```
-### Minikube
+Create a simple testing "Hello World" Integration as `test.yaml`:
+
+```yaml
+apiVersion: camel.apache.org/v1
+kind: Integration
+metadata:
+ name: test
+spec:
+ flows:
+ - from:
+ parameters:
+ period: "1000"
+ steps:
+ - setBody:
+ simple: Hello Camel from ${routeId}
+ - log: ${body}
+ uri: timer:yaml
+```
-Minikube offers a container registry addon, which it makes very well suited
for local Camel K development and testing purposes. You can export the cluster
IP registry addon using the following script:
+Run it on cloud:
```bash
-$ minikube addons enable registry
-$ export REGISTRY_ADDRESS=$(kubectl -n kube-system get service registry -o
jsonpath='{.spec.clusterIP}')
+kubectl apply -f test.yaml
```
-Then you can install Camel K with:
+Monitor how it is running:
```bash
-$ helm install camel-k \
- --set platform.build.registry.address=${REGISTRY_ADDRESS} \
- --set platform.build.registry.insecure=true \
- camel-k/camel-k
+$ kubectl get it -w
+NAME PHASE READY RUNTIME PROVIDER RUNTIME VERSION CATALOG
VERSION KIT REPLICAS
+test Building Kit quarkus 3.8.1 3.8.1
kit-crc382j18sec73deq24g
+test Deploying quarkus 3.8.1 3.8.1
kit-crc382j18sec73deq24g
+test Running False quarkus 3.8.1 3.8.1
kit-crc382j18sec73deq24g 0
+test Running False quarkus 3.8.1 3.8.1
kit-crc382j18sec73deq24g 1
+test Running True quarkus 3.8.1 3.8.1
kit-crc382j18sec73deq24g 1
```
-### Knative configuration
+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
+## Additional installation time configuration
The [configuration](#configuration) section lists additional parameters that
can be set during installation.
@@ -106,16 +167,10 @@ $ kubectl delete -f camel-k/crds
## Configuration
-The following table lists the most commonly configured parameters of the Camel
K chart and their default values. The chart allows configuration of an
`IntegrationPlatform` resource, which among others includes build properties
and traits configuration. A full list of parameters can be found [in the
operator specification][1].
+The following table lists the most commonly configured parameters of the Camel
K chart and their default values.
| Parameter | Description
| Default |
|----------------------------------------|---------------------------------------------------------------------------|--------------------------------|
-| `platform.build.registry.address` | The address of a container image
registry to push images | |
-| `platform.build.registry.secret` | A secret used to push/pull images
to the Docker registry | |
-| `platform.build.registry.organization` | An organization on the Docker
registry that can be used to publish images | |
-| `platform.build.registry.insecure` | Indicates if the registry is not
secured | true |
-| `platform.cluster` | The kind of Kubernetes cluster
(Kubernetes or OpenShift) | `Kubernetes` |
-| `platform.profile` | The trait profile to use (Knative,
Kubernetes or OpenShift) | auto |
| `operator.global` | Indicates if the operator should
watch all namespaces | `false` |
| `operator.nodeSelector` | The nodeSelector to use for the
operator | |
| `operator.resources` | The resource requests and limits to
use for the operator | |
@@ -126,8 +181,7 @@ The following table lists the most commonly configured
parameters of the Camel K
We'd like to hear your feedback and we love any kind of contribution!
-The main contact points for the Camel K project are the [GitHub repository][2]
and the [Camel K chat room][3].
+The main contact points for the Camel K project are the [GitHub repository][1]
and the [Camel K chat room][2].
-[1]:
https://camel.apache.org/camel-k/next/architecture/cr/integration-platform.html
-[2]: https://github.com/apache/camel-k
-[3]: https://camel.zulipchat.com
+[1]: https://github.com/apache/camel-k
+[2]: https://camel.zulipchat.com
diff --git a/helm/camel-k/templates/NOTES.txt b/helm/camel-k/templates/NOTES.txt
index 32c70c08a..1708d369c 100644
--- a/helm/camel-k/templates/NOTES.txt
+++ b/helm/camel-k/templates/NOTES.txt
@@ -1,8 +1,33 @@
-{{/*
-Constraints
-*/}}
-{{- if or (not .Values.platform.cluster) (ne .Values.platform.cluster
"OpenShift") }}
-{{ required "Field \"platform.build.registry.address\" is required when not
running on OpenShift (set \"platform.cluster=OpenShift\" if you're using
OpenShift instead)!" .Values.platform.build.registry.address | substr 0 0 }}
+Thanks for installing Camel K version {{ .Chart.Version }}!
+
+{{- if .Values.platform }}
+WARNING: you're setting some IntegrationPlatform values. This is deprecated
and may remove in future releases. Make sure to install an IntegrationPlatform
as a separate process.
{{- end }}
-Connect the world with Camel K on {{ include "camel-k.cluster" . }}!
+{{- 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
diff --git a/helm/camel-k/templates/platform.yaml
b/helm/camel-k/templates/platform.yaml
index 2786fd3bf..3106af4bb 100644
--- a/helm/camel-k/templates/platform.yaml
+++ b/helm/camel-k/templates/platform.yaml
@@ -15,6 +15,7 @@
# limitations under the License.
# ---------------------------------------------------------------------------
+{{- if .Values.platform }}
apiVersion: camel.apache.org/v1
kind: IntegrationPlatform
metadata:
@@ -23,4 +24,5 @@ metadata:
{{- include "camel-k.labels" . | nindent 4 }}
name: {{ .Values.operator.operatorId }}
spec:
- {{- toYaml .Values.platform | nindent 2}}
\ No newline at end of file
+ {{- toYaml .Values.platform | nindent 2}}
+{{- end }}
diff --git a/helm/camel-k/values.yaml b/helm/camel-k/values.yaml
index ae4fce885..849477427 100644
--- a/helm/camel-k/values.yaml
+++ b/helm/camel-k/values.yaml
@@ -45,9 +45,3 @@ operator:
# Default operator name
operatorId: camel-k
-
-
-platform:
- build:
- registry: {}
- cluster: ""