Skip to content

Commit 82ad8b1

Browse files
committed
doc: move IntegrationProfile documentation
Closes #6526
1 parent a1d8579 commit 82ad8b1

File tree

25 files changed

+89
-68
lines changed

25 files changed

+89
-68
lines changed

docs/modules/ROOT/nav.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
** xref:configuration/runtime-config.adoc[Runtime configuration]
4646
** xref:configuration/runtime-resources.adoc[Runtime resources]
4747
** xref:configuration/runtime-version.adoc[Camel version]
48+
** xref:configuration/integrationprofiles.adoc[Profiles]
4849
* xref:traits:traits.adoc[Traits]
4950
// Start of autogenerated code - DO NOT EDIT! (trait-nav)
5051
** xref:traits:affinity.adoc[Affinity]
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
= Integration Profiles
2+
3+
Any running Camel K Integration is associated to a shared IntegrationPlatform resource that contains general configuration options.
4+
The integration platform is located in the operator namespace and typically uses the same name as the operator id that this platform belongs to.
5+
6+
Users may add an IntegrationProfile resource to any namespace. The profile holds custom settings which can be applied to all Integrations.
7+
8+
The profile must be explicitly selected by an annotation referencing the integration profile name (any resource belonging to the "camel.apache.org" group can select a particular profile configuration).
9+
10+
To specify which profile should be used for an Integration, the resource can be annotated like in the following example:
11+
12+
[source,yaml]
13+
----
14+
kind: Integration
15+
apiVersion: camel.apache.org/v1
16+
metadata:
17+
annotations:
18+
camel.apache.org/integration-profile.id: my-profile
19+
# ...
20+
----
21+
22+
The value of the `camel.apache.org/integration-profile.id` annotation must match the name of an IntegrationProfile custom resource which is available in the same namespace of the Integration. Here an example of a profile:
23+
24+
[source,yaml]
25+
----
26+
kind: IntegrationProfile
27+
apiVersion: camel.apache.org/v1
28+
metadata:
29+
name: my-profile
30+
spec:
31+
traits:
32+
camel:
33+
runtimeProvider: plain-quarkus
34+
runtimeVersion: 3.30.8
35+
owner:
36+
targetLabels:
37+
- camel.apache.org/app
38+
...
39+
# ...
40+
----
41+
42+
The selection of a IntegrationProfile enables new configuration scenarios, for example, sharing global configuration options for groups of Integrations. The main configuration expected here is related to traits.

docs/modules/ROOT/pages/installation/advanced/multi.adoc

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -54,38 +54,3 @@ In order to install more than one operator globally, you may need to change the
5454
```
5555
cd /install/base/config/rbac/descoped && kustomize edit set namesuffix -- -$OPERATOR_ID
5656
```
57-
58-
[[advanced-installation-integration-profile]]
59-
== Apply custom IntegrationProfile settings
60-
61-
Any running Camel K integration is associated to a shared IntegrationPlatform resource that contains general configuration options.
62-
The integration platform is located in the operator namespace and typically uses the same name as the operator id that this platform belongs to.
63-
Each Camel K operator uses exactly one single integration platform in a "Ready" state.
64-
IntegrationPlatform resources are somewhat "singleton" in a namespace and belong to a single operator instance.
65-
66-
There's a way to allow customizations regarding the integration configuration.
67-
Users may add IntegrationProfile resources to an individual namespace.
68-
The profile holds custom integration platform settings for them to be used by integrations.
69-
The IntegrationProfile resource allows only a subset of the IntegrationPlatform settings for customization.
70-
71-
The custom IntegrationProfile resource uses the operator id as an annotation to bind its reconciliation to an operator instance.
72-
Also, the profile must be explicitly selected by an annotation referencing the integration profile name (any resource belonging to the "camel.apache.org" group can select a particular profile configuration).
73-
74-
To specify which profile should be used for an integration, the resource can be annotated like in the following example:
75-
76-
[source,yaml]
77-
----
78-
kind: Integration
79-
apiVersion: camel.apache.org/v1
80-
metadata:
81-
annotations:
82-
camel.apache.org/integration-profile.id: my-profile-name
83-
# ...
84-
----
85-
86-
The value of the `camel.apache.org/integration-profile.id` annotation must match the name of an IntegrationProfile custom resource.
87-
The profile gets automatically resolved from the annotated resource namespace or from the operator namespace.
88-
In case you need to explicitly set the integration profile namespace you can do so with the `camel.apache.org/integration-profile.namespace` annotation.
89-
90-
The selection of a IntegrationProfile enables new configuration scenarios, for example, sharing global configuration options for groups of integrations, or also
91-
providing per-operator specific configuration options e.g. when you install multiple global operators in the cluster.

docs/modules/ROOT/partials/apis/camel-k-crds.adoc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3053,7 +3053,6 @@ IntegrationPlatformConditionType defines the type of condition.
30533053
* <<#_camel_apache_org_v1_IntegrationPlatformSpec, IntegrationPlatformSpec>>
30543054
30553055
IntegrationPlatformKameletSpec define the behavior for all the Kamelets controller by the IntegrationPlatform.
3056-
30573056
Deprecated: to be removed in future versions.
30583057
30593058
[cols="2,2a",options="header"]
@@ -3345,6 +3344,7 @@ IntegrationProfileConditionType defines the type of condition.
33453344
* <<#_camel_apache_org_v1_IntegrationProfileSpec, IntegrationProfileSpec>>
33463345
33473346
IntegrationProfileKameletSpec define the behavior for all the Kamelets controller by the IntegrationProfile.
3347+
Deprecated: to be removed in future versions.
33483348
33493349
[cols="2,2a",options="header"]
33503350
|===
@@ -3406,6 +3406,7 @@ list of traits to be executed for all the Integration/IntegrationKits built from
34063406
34073407
34083408
configuration to be executed to all Kamelets controlled by this IntegrationProfile
3409+
Deprecated: to be removed in future versions.
34093410
34103411
34113412
|===
@@ -5122,6 +5123,7 @@ string
51225123
* <<#_camel_apache_org_v1_PodSpecTemplate, PodSpecTemplate>>
51235124
51245125
PodSpec defines a group of Kubernetes resources.
5126+
Deprecated: to be removed in future versions.
51255127
51265128
[cols="2,2a",options="header"]
51275129
|===
@@ -5223,6 +5225,7 @@ PodSecurityContext
52235225
* <<#_camel_apache_org_v1_IntegrationSpec, IntegrationSpec>>
52245226
52255227
PodSpecTemplate represent a template used to deploy an Integration `Pod`.
5228+
Deprecated: to be removed in future versions.
52265229
52275230
[cols="2,2a",options="header"]
52285231
|===

helm/camel-k/crds/camel-k-crds.yaml

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8356,16 +8356,7 @@ spec:
83568356
singular: integrationprofile
83578357
scope: Namespaced
83588358
versions:
8359-
- additionalPrinterColumns:
8360-
- description: The integration profile phase
8361-
jsonPath: .status.phase
8362-
name: Phase
8363-
type: string
8364-
- description: The default runtime version
8365-
jsonPath: .status.build.runtimeVersion
8366-
name: Default runtime
8367-
type: string
8368-
name: v1
8359+
- name: v1
83698360
schema:
83708361
openAPIV3Schema:
83718362
description: |-
@@ -8680,8 +8671,9 @@ spec:
86808671
type: string
86818672
type: object
86828673
kamelet:
8683-
description: configuration to be executed to all Kamelets controlled
8684-
by this IntegrationProfile
8674+
description: |-
8675+
configuration to be executed to all Kamelets controlled by this IntegrationProfile
8676+
Deprecated: to be removed in future versions.
86858677
properties:
86868678
repositories:
86878679
description: remote repository used to retrieve Kamelet catalog
@@ -11050,8 +11042,9 @@ spec:
1105011042
type: object
1105111043
type: array
1105211044
kamelet:
11053-
description: configuration to be executed to all Kamelets controlled
11054-
by this IntegrationProfile
11045+
description: |-
11046+
configuration to be executed to all Kamelets controlled by this IntegrationProfile
11047+
Deprecated: to be removed in future versions.
1105511048
properties:
1105611049
repositories:
1105711050
description: remote repository used to retrieve Kamelet catalog

pkg/apis/camel/v1/common_types.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ const (
3535
// IntegrationProfileAnnotation integration profile id annotation label.
3636
IntegrationProfileAnnotation = "camel.apache.org/integration-profile.id"
3737
// IntegrationProfileNamespaceAnnotation integration profile id annotation label.
38+
//
39+
// Deprecated: won't be supported in future releases.
3840
IntegrationProfileNamespaceAnnotation = "camel.apache.org/integration-profile.namespace"
3941
// IntegrationDontRunAfterBuildAnnotation -- .
4042
IntegrationDontRunAfterBuildAnnotation = "camel.apache.org/dont-run-after-build"

pkg/apis/camel/v1/common_types_support.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,8 @@ func GetIntegrationProfileAnnotation(obj metav1.Object) string {
188188
}
189189

190190
// GetIntegrationProfileNamespaceAnnotation to safely get the integration profile namespace annotation value.
191+
//
192+
// Deprecated: won't be supported in future releases.
191193
func GetIntegrationProfileNamespaceAnnotation(obj metav1.Object) string {
192194
return GetAnnotation(IntegrationProfileNamespaceAnnotation, obj)
193195
}

pkg/apis/camel/v1/integration_types.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,12 +306,16 @@ type IntegrationCondition struct {
306306
}
307307

308308
// PodSpecTemplate represent a template used to deploy an Integration `Pod`.
309+
//
310+
// Deprecated: to be removed in future versions.
309311
type PodSpecTemplate struct {
310312
// the specification
311313
Spec PodSpec `json:"spec,omitempty"`
312314
}
313315

314316
// PodSpec defines a group of Kubernetes resources.
317+
//
318+
// Deprecated: to be removed in future versions.
315319
type PodSpec struct {
316320
// AutomountServiceAccountToken
317321
AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty" protobuf:"varint,21,opt,name=automountServiceAccountToken"`

pkg/apis/camel/v1/integrationprofile_types.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ type IntegrationProfileSpec struct {
3232
// list of traits to be executed for all the Integration/IntegrationKits built from this IntegrationProfile
3333
Traits Traits `json:"traits,omitempty"`
3434
// configuration to be executed to all Kamelets controlled by this IntegrationProfile
35+
//
36+
// Deprecated: to be removed in future versions.
3537
Kamelet IntegrationProfileKameletSpec `json:"kamelet,omitempty"`
3638
}
3739

@@ -52,8 +54,6 @@ type IntegrationProfileStatus struct {
5254
// +kubebuilder:resource:path=integrationprofiles,scope=Namespaced,shortName=ipr,categories=kamel;camel
5355
// +kubebuilder:subresource:status
5456
// +kubebuilder:storageversion
55-
// +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase`,description="The integration profile phase"
56-
// +kubebuilder:printcolumn:name="Default runtime",type=string,JSONPath=`.status.build.runtimeVersion`,description="The default runtime version"
5757

5858
// IntegrationProfile is the resource used to apply user defined settings to the Camel K operator behavior.
5959
// It defines the behavior of all Custom Resources (`IntegrationKit`, `Integration`, `Kamelet`) in the given namespace.
@@ -95,6 +95,8 @@ type IntegrationProfileBuildSpec struct {
9595
}
9696

9797
// IntegrationProfileKameletSpec define the behavior for all the Kamelets controller by the IntegrationProfile.
98+
//
99+
// Deprecated: to be removed in future versions.
98100
type IntegrationProfileKameletSpec struct {
99101
// remote repository used to retrieve Kamelet catalog
100102
Repositories []KameletRepositorySpec `json:"repositories,omitempty"`

pkg/client/camel/applyconfiguration/camel/v1/integrationplatformkameletspec.go

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)