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 66f1469f8 feat: default resources for Operator and Integration Pods
66f1469f8 is described below

commit 66f1469f896c7d6f9d465c1a6d31d323a4c393ea
Author: Pasquale Congiusti <pasquale.congiu...@gmail.com>
AuthorDate: Thu Jun 27 16:12:05 2024 +0200

    feat: default resources for Operator and Integration Pods
    
    Closes #5601
---
 .../pages/installation/advanced/resources.adoc     | 34 ++++++++++++++++------
 docs/modules/ROOT/partials/apis/camel-k-crds.adoc  |  8 ++---
 docs/modules/traits/pages/container.adoc           |  8 ++---
 e2e/advanced/integration_profile_test.go           | 16 ++--------
 e2e/advanced/local_platform_test.go                |  2 +-
 helm/camel-k/crds/crd-integration-platform.yaml    | 24 ++++++++++-----
 helm/camel-k/crds/crd-integration-profile.yaml     | 24 ++++++++++-----
 helm/camel-k/crds/crd-integration.yaml             | 12 +++++---
 helm/camel-k/crds/crd-kamelet-binding.yaml         | 12 +++++---
 helm/camel-k/crds/crd-pipe.yaml                    | 12 +++++---
 pkg/apis/camel/v1/trait/container.go               |  8 ++---
 .../camel.apache.org_integrationplatforms.yaml     | 24 ++++++++++-----
 .../camel.apache.org_integrationprofiles.yaml      | 24 ++++++++++-----
 .../crd/bases/camel.apache.org_integrations.yaml   | 12 +++++---
 .../bases/camel.apache.org_kameletbindings.yaml    | 12 +++++---
 .../config/crd/bases/camel.apache.org_pipes.yaml   | 12 +++++---
 .../config/manager/operator-deployment.yaml        |  8 ++++-
 pkg/trait/container.go                             |  9 ++++++
 pkg/trait/container_test.go                        | 22 ++++++++++++++
 19 files changed, 190 insertions(+), 93 deletions(-)

diff --git a/docs/modules/ROOT/pages/installation/advanced/resources.adoc 
b/docs/modules/ROOT/pages/installation/advanced/resources.adoc
index 088fcc18b..796c852fa 100644
--- a/docs/modules/ROOT/pages/installation/advanced/resources.adoc
+++ b/docs/modules/ROOT/pages/installation/advanced/resources.adoc
@@ -34,25 +34,41 @@ The option accept a value in the following format 
`Key[=Value]:Effect[:Seconds]`
 While installing the Camel K operator, you can also specify the resources 
requests and limits to assign to the operator `Pod` with `--operator-resources` 
option. The option will expect the configuration as required by 
https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/[Kubernetes
 Resource Management].
 
 ```
-kamel install --operator-resources requests.cpu=256m --operator-resources 
limits.cpu=500m --operator-resources limits.memory=512Mi ...
+kamel install --operator-resources limits.cpu=8 --operator-resources 
limits.memory=32Gi ...
 ```
 
 The value expected by the option are in the form 
`requestType.requestResource=value` where `requestType` must be either 
`requests` or `limits`, `requestResource` must be either `cpu` or `memory` and 
`value` expressed in the numeric value as expected by the resource. You can 
specify more than one `operator-resources`.
 
 NOTE: if you specify a limit, but does not specify a request, Kubernetes 
automatically assigns a request that matches the limit.
 
-=== Suggested configuration
+=== Default Operator Pod configuration
 
-The main contributor to compute resources consumption is likely to be the 
Maven builds that are performed in the operator `Pod` (assuming you use the 
default build strategy). So the resource requirements should be defined 
accordingly. The following requirements are sensible defaults that should work 
in most cases:
+The main Camel K Operator Pod contributor resources consumption is likely to 
be the number of parallel builds that are performed in the operator `Pod`. So 
the resource requirements should be defined accordingly. The following 
requirements are sensible defaults that should work in most cases:
 
 ```
 resources:
-  limits:
-    cpu: "1"
-    memory: 1Gi
   requests:
-    cpu: 500m
-    memory: 512Mi
+    memory: "4Gi"
+    cpu: "1"
+  limits:
+    memory: "16Gi"
+    cpu: "4"
 ```
 
-Note that if you plan to perform **native builds**, then the memory 
requirements must be increased significantly. Also, the CPU requirements are 
rather "soft", in the sense that it won't break the operator, but it'll perform 
slower in general.
+Note that if you plan to perform **native builds**, then the memory 
requirements may be increased significantly. Also, the CPU requirements are 
rather "soft", in the sense that it won't break the operator, but it'll perform 
slower in general.
+
+=== Default Integration Pod configuration
+
+The resource set on the container here is highly dependant on what your 
application is doing. You can control this behavior by setting opportunely the 
resources on the Integration via container trait.
+
+Be aware that the default are actually the following:
+
+```
+resources:
+  requests:
+    memory: "256Mi"
+    cpu: "125m"
+  limits:
+    memory: "1Gi"
+    cpu: "500m"
+```
\ No newline at end of file
diff --git a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc 
b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
index 7c9786d81..48d2ba048 100644
--- a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
+++ b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
@@ -6473,28 +6473,28 @@ string
 |
 
 
-The minimum amount of CPU required.
+The minimum amount of CPU required (default 125 millicores).
 
 |`requestMemory` +
 string
 |
 
 
-The minimum amount of memory required.
+The minimum amount of memory required (default 128 Mi).
 
 |`limitCPU` +
 string
 |
 
 
-The maximum amount of CPU required.
+The maximum amount of CPU to be provided (default 500 millicores).
 
 |`limitMemory` +
 string
 |
 
 
-The maximum amount of memory required.
+The maximum amount of memory to be provided (default 512 Mi).
 
 |`expose` +
 bool
diff --git a/docs/modules/traits/pages/container.adoc 
b/docs/modules/traits/pages/container.adoc
index 39551b17f..6e96d4523 100755
--- a/docs/modules/traits/pages/container.adoc
+++ b/docs/modules/traits/pages/container.adoc
@@ -37,19 +37,19 @@ The following configuration options are available:
 
 | container.request-cpu
 | string
-| The minimum amount of CPU required.
+| The minimum amount of CPU required (default 125 millicores).
 
 | container.request-memory
 | string
-| The minimum amount of memory required.
+| The minimum amount of memory required (default 128 Mi).
 
 | container.limit-cpu
 | string
-| The maximum amount of CPU required.
+| The maximum amount of CPU to be provided (default 500 millicores).
 
 | container.limit-memory
 | string
-| The maximum amount of memory required.
+| The maximum amount of memory to be provided (default 512 Mi).
 
 | container.expose
 | bool
diff --git a/e2e/advanced/integration_profile_test.go 
b/e2e/advanced/integration_profile_test.go
index 0a14026e2..3844a060d 100644
--- a/e2e/advanced/integration_profile_test.go
+++ b/e2e/advanced/integration_profile_test.go
@@ -48,7 +48,7 @@ func TestIntegrationProfile(t *testing.T) {
                integrationProfile.SetOperatorID(operatorID)
                integrationProfile.Spec.Traits.Container = 
&traitv1.ContainerTrait{
                        Name:     "ck-integration-global",
-                       LimitCPU: "0.2",
+                       LimitCPU: "0.3",
                }
 
                g.Expect(CreateIntegrationProfile(t, ctx, 
&integrationProfile)).To(Succeed())
@@ -58,7 +58,7 @@ func TestIntegrationProfile(t *testing.T) {
                        integrationProfile := v1.NewIntegrationProfile(ns1, 
"ipr-local")
                        integrationProfile.SetOperatorID(operatorID)
                        integrationProfile.Spec.Traits.Container = 
&traitv1.ContainerTrait{
-                               LimitCPU: "0.1",
+                               LimitCPU: "0.2",
                        }
                        g.Expect(CreateIntegrationProfile(t, ctx, 
&integrationProfile)).To(Succeed())
                        g.Eventually(SelectedIntegrationProfilePhase(t, ctx, 
ns1, "ipr-local"), 
TestTimeoutMedium).Should(Equal(v1.IntegrationProfilePhaseReady))
@@ -106,18 +106,6 @@ func TestIntegrationProfile(t *testing.T) {
                                g.Expect(Kamel(t, ctx, "delete", "limited", 
"-n", ns1).Execute()).To(Succeed())
                        })
 
-                       t.Run("Run integration without integration profile", 
func(t *testing.T) {
-                               g.Expect(KamelRunWithID(t, ctx, operatorID, 
ns1, "--name", "normal", "files/yaml.yaml").Execute()).To(Succeed())
-                               g.Eventually(IntegrationPod(t, ctx, ns1, 
"normal"), TestTimeoutShort).Should(Not(BeNil()))
-                               g.Eventually(IntegrationPodHas(t, ctx, ns1, 
"normal", func(pod *corev1.Pod) bool {
-                                       if len(pod.Spec.Containers) != 1 {
-                                               return false
-                                       }
-                                       cpuLimits := 
pod.Spec.Containers[0].Resources.Limits.Cpu()
-                                       return cpuLimits == nil || 
cpuLimits.IsZero()
-                               }), TestTimeoutShort).Should(BeTrue())
-                       })
-
                        // Clean up
                        g.Expect(Kamel(t, ctx, "delete", "--all", "-n", 
ns1).Execute()).To(Succeed())
                })
diff --git a/e2e/advanced/local_platform_test.go 
b/e2e/advanced/local_platform_test.go
index ec03d1317..3056ef4e2 100644
--- a/e2e/advanced/local_platform_test.go
+++ b/e2e/advanced/local_platform_test.go
@@ -65,7 +65,7 @@ func TestLocalPlatform(t *testing.T) {
                                pl.SetOperatorID(operatorID)
 
                                pl.Spec.Traits.Container = 
&traitv1.ContainerTrait{
-                                       LimitCPU: "0.1",
+                                       LimitCPU: "0.2",
                                }
                        })).To(Succeed())
 
diff --git a/helm/camel-k/crds/crd-integration-platform.yaml 
b/helm/camel-k/crds/crd-integration-platform.yaml
index 5d9ee1e1a..12a6a9bbe 100644
--- a/helm/camel-k/crds/crd-integration-platform.yaml
+++ b/helm/camel-k/crds/crd-integration-platform.yaml
@@ -734,10 +734,12 @@ spec:
                         - IfNotPresent
                         type: string
                       limitCPU:
-                        description: The maximum amount of CPU required.
+                        description: The maximum amount of CPU to be provided 
(default
+                          500 millicores).
                         type: string
                       limitMemory:
-                        description: The maximum amount of memory required.
+                        description: The maximum amount of memory to be 
provided (default
+                          512 Mi).
                         type: string
                       name:
                         description: The main container name. It's named 
`integration`
@@ -753,10 +755,12 @@ spec:
                           the `expose` parameter is true.
                         type: string
                       requestCPU:
-                        description: The minimum amount of CPU required.
+                        description: The minimum amount of CPU required 
(default 125
+                          millicores).
                         type: string
                       requestMemory:
-                        description: The minimum amount of memory required.
+                        description: The minimum amount of memory required 
(default
+                          128 Mi).
                         type: string
                       runAsNonRoot:
                         description: Security Context RunAsNonRoot 
configuration (default
@@ -2766,10 +2770,12 @@ spec:
                         - IfNotPresent
                         type: string
                       limitCPU:
-                        description: The maximum amount of CPU required.
+                        description: The maximum amount of CPU to be provided 
(default
+                          500 millicores).
                         type: string
                       limitMemory:
-                        description: The maximum amount of memory required.
+                        description: The maximum amount of memory to be 
provided (default
+                          512 Mi).
                         type: string
                       name:
                         description: The main container name. It's named 
`integration`
@@ -2785,10 +2791,12 @@ spec:
                           the `expose` parameter is true.
                         type: string
                       requestCPU:
-                        description: The minimum amount of CPU required.
+                        description: The minimum amount of CPU required 
(default 125
+                          millicores).
                         type: string
                       requestMemory:
-                        description: The minimum amount of memory required.
+                        description: The minimum amount of memory required 
(default
+                          128 Mi).
                         type: string
                       runAsNonRoot:
                         description: Security Context RunAsNonRoot 
configuration (default
diff --git a/helm/camel-k/crds/crd-integration-profile.yaml 
b/helm/camel-k/crds/crd-integration-profile.yaml
index 9baf9d77b..500b87dfa 100644
--- a/helm/camel-k/crds/crd-integration-profile.yaml
+++ b/helm/camel-k/crds/crd-integration-profile.yaml
@@ -611,10 +611,12 @@ spec:
                         - IfNotPresent
                         type: string
                       limitCPU:
-                        description: The maximum amount of CPU required.
+                        description: The maximum amount of CPU to be provided 
(default
+                          500 millicores).
                         type: string
                       limitMemory:
-                        description: The maximum amount of memory required.
+                        description: The maximum amount of memory to be 
provided (default
+                          512 Mi).
                         type: string
                       name:
                         description: The main container name. It's named 
`integration`
@@ -630,10 +632,12 @@ spec:
                           the `expose` parameter is true.
                         type: string
                       requestCPU:
-                        description: The minimum amount of CPU required.
+                        description: The minimum amount of CPU required 
(default 125
+                          millicores).
                         type: string
                       requestMemory:
-                        description: The minimum amount of memory required.
+                        description: The minimum amount of memory required 
(default
+                          128 Mi).
                         type: string
                       runAsNonRoot:
                         description: Security Context RunAsNonRoot 
configuration (default
@@ -2526,10 +2530,12 @@ spec:
                         - IfNotPresent
                         type: string
                       limitCPU:
-                        description: The maximum amount of CPU required.
+                        description: The maximum amount of CPU to be provided 
(default
+                          500 millicores).
                         type: string
                       limitMemory:
-                        description: The maximum amount of memory required.
+                        description: The maximum amount of memory to be 
provided (default
+                          512 Mi).
                         type: string
                       name:
                         description: The main container name. It's named 
`integration`
@@ -2545,10 +2551,12 @@ spec:
                           the `expose` parameter is true.
                         type: string
                       requestCPU:
-                        description: The minimum amount of CPU required.
+                        description: The minimum amount of CPU required 
(default 125
+                          millicores).
                         type: string
                       requestMemory:
-                        description: The minimum amount of memory required.
+                        description: The minimum amount of memory required 
(default
+                          128 Mi).
                         type: string
                       runAsNonRoot:
                         description: Security Context RunAsNonRoot 
configuration (default
diff --git a/helm/camel-k/crds/crd-integration.yaml 
b/helm/camel-k/crds/crd-integration.yaml
index 76e5ad2e4..9d40098b6 100644
--- a/helm/camel-k/crds/crd-integration.yaml
+++ b/helm/camel-k/crds/crd-integration.yaml
@@ -6675,10 +6675,12 @@ spec:
                         - IfNotPresent
                         type: string
                       limitCPU:
-                        description: The maximum amount of CPU required.
+                        description: The maximum amount of CPU to be provided 
(default
+                          500 millicores).
                         type: string
                       limitMemory:
-                        description: The maximum amount of memory required.
+                        description: The maximum amount of memory to be 
provided (default
+                          512 Mi).
                         type: string
                       name:
                         description: The main container name. It's named 
`integration`
@@ -6694,10 +6696,12 @@ spec:
                           the `expose` parameter is true.
                         type: string
                       requestCPU:
-                        description: The minimum amount of CPU required.
+                        description: The minimum amount of CPU required 
(default 125
+                          millicores).
                         type: string
                       requestMemory:
-                        description: The minimum amount of memory required.
+                        description: The minimum amount of memory required 
(default
+                          128 Mi).
                         type: string
                       runAsNonRoot:
                         description: Security Context RunAsNonRoot 
configuration (default
diff --git a/helm/camel-k/crds/crd-kamelet-binding.yaml 
b/helm/camel-k/crds/crd-kamelet-binding.yaml
index 6d14445f1..580f1d019 100644
--- a/helm/camel-k/crds/crd-kamelet-binding.yaml
+++ b/helm/camel-k/crds/crd-kamelet-binding.yaml
@@ -6957,10 +6957,12 @@ spec:
                             - IfNotPresent
                             type: string
                           limitCPU:
-                            description: The maximum amount of CPU required.
+                            description: The maximum amount of CPU to be 
provided
+                              (default 500 millicores).
                             type: string
                           limitMemory:
-                            description: The maximum amount of memory required.
+                            description: The maximum amount of memory to be 
provided
+                              (default 512 Mi).
                             type: string
                           name:
                             description: The main container name. It's named 
`integration`
@@ -6976,10 +6978,12 @@ spec:
                               only when the `expose` parameter is true.
                             type: string
                           requestCPU:
-                            description: The minimum amount of CPU required.
+                            description: The minimum amount of CPU required 
(default
+                              125 millicores).
                             type: string
                           requestMemory:
-                            description: The minimum amount of memory required.
+                            description: The minimum amount of memory required 
(default
+                              128 Mi).
                             type: string
                           runAsNonRoot:
                             description: Security Context RunAsNonRoot 
configuration
diff --git a/helm/camel-k/crds/crd-pipe.yaml b/helm/camel-k/crds/crd-pipe.yaml
index 7324a1bf6..02845cf0f 100644
--- a/helm/camel-k/crds/crd-pipe.yaml
+++ b/helm/camel-k/crds/crd-pipe.yaml
@@ -6955,10 +6955,12 @@ spec:
                             - IfNotPresent
                             type: string
                           limitCPU:
-                            description: The maximum amount of CPU required.
+                            description: The maximum amount of CPU to be 
provided
+                              (default 500 millicores).
                             type: string
                           limitMemory:
-                            description: The maximum amount of memory required.
+                            description: The maximum amount of memory to be 
provided
+                              (default 512 Mi).
                             type: string
                           name:
                             description: The main container name. It's named 
`integration`
@@ -6974,10 +6976,12 @@ spec:
                               only when the `expose` parameter is true.
                             type: string
                           requestCPU:
-                            description: The minimum amount of CPU required.
+                            description: The minimum amount of CPU required 
(default
+                              125 millicores).
                             type: string
                           requestMemory:
-                            description: The minimum amount of memory required.
+                            description: The minimum amount of memory required 
(default
+                              128 Mi).
                             type: string
                           runAsNonRoot:
                             description: Security Context RunAsNonRoot 
configuration
diff --git a/pkg/apis/camel/v1/trait/container.go 
b/pkg/apis/camel/v1/trait/container.go
index 89362df21..2e6ad9121 100644
--- a/pkg/apis/camel/v1/trait/container.go
+++ b/pkg/apis/camel/v1/trait/container.go
@@ -28,13 +28,13 @@ type ContainerTrait struct {
        PlatformBaseTrait `property:",squash" json:",inline"`
        // To automatically enable the trait
        Auto *bool `property:"auto" json:"auto,omitempty"`
-       // The minimum amount of CPU required.
+       // The minimum amount of CPU required (default 125 millicores).
        RequestCPU string `property:"request-cpu" json:"requestCPU,omitempty"`
-       // The minimum amount of memory required.
+       // The minimum amount of memory required (default 128 Mi).
        RequestMemory string `property:"request-memory" 
json:"requestMemory,omitempty"`
-       // The maximum amount of CPU required.
+       // The maximum amount of CPU to be provided (default 500 millicores).
        LimitCPU string `property:"limit-cpu" json:"limitCPU,omitempty"`
-       // The maximum amount of memory required.
+       // The maximum amount of memory to be provided (default 512 Mi).
        LimitMemory string `property:"limit-memory" 
json:"limitMemory,omitempty"`
        // Can be used to enable/disable exposure via kubernetes Service.
        Expose *bool `property:"expose" json:"expose,omitempty"`
diff --git 
a/pkg/resources/config/crd/bases/camel.apache.org_integrationplatforms.yaml 
b/pkg/resources/config/crd/bases/camel.apache.org_integrationplatforms.yaml
index 5d9ee1e1a..12a6a9bbe 100644
--- a/pkg/resources/config/crd/bases/camel.apache.org_integrationplatforms.yaml
+++ b/pkg/resources/config/crd/bases/camel.apache.org_integrationplatforms.yaml
@@ -734,10 +734,12 @@ spec:
                         - IfNotPresent
                         type: string
                       limitCPU:
-                        description: The maximum amount of CPU required.
+                        description: The maximum amount of CPU to be provided 
(default
+                          500 millicores).
                         type: string
                       limitMemory:
-                        description: The maximum amount of memory required.
+                        description: The maximum amount of memory to be 
provided (default
+                          512 Mi).
                         type: string
                       name:
                         description: The main container name. It's named 
`integration`
@@ -753,10 +755,12 @@ spec:
                           the `expose` parameter is true.
                         type: string
                       requestCPU:
-                        description: The minimum amount of CPU required.
+                        description: The minimum amount of CPU required 
(default 125
+                          millicores).
                         type: string
                       requestMemory:
-                        description: The minimum amount of memory required.
+                        description: The minimum amount of memory required 
(default
+                          128 Mi).
                         type: string
                       runAsNonRoot:
                         description: Security Context RunAsNonRoot 
configuration (default
@@ -2766,10 +2770,12 @@ spec:
                         - IfNotPresent
                         type: string
                       limitCPU:
-                        description: The maximum amount of CPU required.
+                        description: The maximum amount of CPU to be provided 
(default
+                          500 millicores).
                         type: string
                       limitMemory:
-                        description: The maximum amount of memory required.
+                        description: The maximum amount of memory to be 
provided (default
+                          512 Mi).
                         type: string
                       name:
                         description: The main container name. It's named 
`integration`
@@ -2785,10 +2791,12 @@ spec:
                           the `expose` parameter is true.
                         type: string
                       requestCPU:
-                        description: The minimum amount of CPU required.
+                        description: The minimum amount of CPU required 
(default 125
+                          millicores).
                         type: string
                       requestMemory:
-                        description: The minimum amount of memory required.
+                        description: The minimum amount of memory required 
(default
+                          128 Mi).
                         type: string
                       runAsNonRoot:
                         description: Security Context RunAsNonRoot 
configuration (default
diff --git 
a/pkg/resources/config/crd/bases/camel.apache.org_integrationprofiles.yaml 
b/pkg/resources/config/crd/bases/camel.apache.org_integrationprofiles.yaml
index 9baf9d77b..500b87dfa 100644
--- a/pkg/resources/config/crd/bases/camel.apache.org_integrationprofiles.yaml
+++ b/pkg/resources/config/crd/bases/camel.apache.org_integrationprofiles.yaml
@@ -611,10 +611,12 @@ spec:
                         - IfNotPresent
                         type: string
                       limitCPU:
-                        description: The maximum amount of CPU required.
+                        description: The maximum amount of CPU to be provided 
(default
+                          500 millicores).
                         type: string
                       limitMemory:
-                        description: The maximum amount of memory required.
+                        description: The maximum amount of memory to be 
provided (default
+                          512 Mi).
                         type: string
                       name:
                         description: The main container name. It's named 
`integration`
@@ -630,10 +632,12 @@ spec:
                           the `expose` parameter is true.
                         type: string
                       requestCPU:
-                        description: The minimum amount of CPU required.
+                        description: The minimum amount of CPU required 
(default 125
+                          millicores).
                         type: string
                       requestMemory:
-                        description: The minimum amount of memory required.
+                        description: The minimum amount of memory required 
(default
+                          128 Mi).
                         type: string
                       runAsNonRoot:
                         description: Security Context RunAsNonRoot 
configuration (default
@@ -2526,10 +2530,12 @@ spec:
                         - IfNotPresent
                         type: string
                       limitCPU:
-                        description: The maximum amount of CPU required.
+                        description: The maximum amount of CPU to be provided 
(default
+                          500 millicores).
                         type: string
                       limitMemory:
-                        description: The maximum amount of memory required.
+                        description: The maximum amount of memory to be 
provided (default
+                          512 Mi).
                         type: string
                       name:
                         description: The main container name. It's named 
`integration`
@@ -2545,10 +2551,12 @@ spec:
                           the `expose` parameter is true.
                         type: string
                       requestCPU:
-                        description: The minimum amount of CPU required.
+                        description: The minimum amount of CPU required 
(default 125
+                          millicores).
                         type: string
                       requestMemory:
-                        description: The minimum amount of memory required.
+                        description: The minimum amount of memory required 
(default
+                          128 Mi).
                         type: string
                       runAsNonRoot:
                         description: Security Context RunAsNonRoot 
configuration (default
diff --git a/pkg/resources/config/crd/bases/camel.apache.org_integrations.yaml 
b/pkg/resources/config/crd/bases/camel.apache.org_integrations.yaml
index 76e5ad2e4..9d40098b6 100644
--- a/pkg/resources/config/crd/bases/camel.apache.org_integrations.yaml
+++ b/pkg/resources/config/crd/bases/camel.apache.org_integrations.yaml
@@ -6675,10 +6675,12 @@ spec:
                         - IfNotPresent
                         type: string
                       limitCPU:
-                        description: The maximum amount of CPU required.
+                        description: The maximum amount of CPU to be provided 
(default
+                          500 millicores).
                         type: string
                       limitMemory:
-                        description: The maximum amount of memory required.
+                        description: The maximum amount of memory to be 
provided (default
+                          512 Mi).
                         type: string
                       name:
                         description: The main container name. It's named 
`integration`
@@ -6694,10 +6696,12 @@ spec:
                           the `expose` parameter is true.
                         type: string
                       requestCPU:
-                        description: The minimum amount of CPU required.
+                        description: The minimum amount of CPU required 
(default 125
+                          millicores).
                         type: string
                       requestMemory:
-                        description: The minimum amount of memory required.
+                        description: The minimum amount of memory required 
(default
+                          128 Mi).
                         type: string
                       runAsNonRoot:
                         description: Security Context RunAsNonRoot 
configuration (default
diff --git 
a/pkg/resources/config/crd/bases/camel.apache.org_kameletbindings.yaml 
b/pkg/resources/config/crd/bases/camel.apache.org_kameletbindings.yaml
index 6d14445f1..580f1d019 100644
--- a/pkg/resources/config/crd/bases/camel.apache.org_kameletbindings.yaml
+++ b/pkg/resources/config/crd/bases/camel.apache.org_kameletbindings.yaml
@@ -6957,10 +6957,12 @@ spec:
                             - IfNotPresent
                             type: string
                           limitCPU:
-                            description: The maximum amount of CPU required.
+                            description: The maximum amount of CPU to be 
provided
+                              (default 500 millicores).
                             type: string
                           limitMemory:
-                            description: The maximum amount of memory required.
+                            description: The maximum amount of memory to be 
provided
+                              (default 512 Mi).
                             type: string
                           name:
                             description: The main container name. It's named 
`integration`
@@ -6976,10 +6978,12 @@ spec:
                               only when the `expose` parameter is true.
                             type: string
                           requestCPU:
-                            description: The minimum amount of CPU required.
+                            description: The minimum amount of CPU required 
(default
+                              125 millicores).
                             type: string
                           requestMemory:
-                            description: The minimum amount of memory required.
+                            description: The minimum amount of memory required 
(default
+                              128 Mi).
                             type: string
                           runAsNonRoot:
                             description: Security Context RunAsNonRoot 
configuration
diff --git a/pkg/resources/config/crd/bases/camel.apache.org_pipes.yaml 
b/pkg/resources/config/crd/bases/camel.apache.org_pipes.yaml
index 7324a1bf6..02845cf0f 100644
--- a/pkg/resources/config/crd/bases/camel.apache.org_pipes.yaml
+++ b/pkg/resources/config/crd/bases/camel.apache.org_pipes.yaml
@@ -6955,10 +6955,12 @@ spec:
                             - IfNotPresent
                             type: string
                           limitCPU:
-                            description: The maximum amount of CPU required.
+                            description: The maximum amount of CPU to be 
provided
+                              (default 500 millicores).
                             type: string
                           limitMemory:
-                            description: The maximum amount of memory required.
+                            description: The maximum amount of memory to be 
provided
+                              (default 512 Mi).
                             type: string
                           name:
                             description: The main container name. It's named 
`integration`
@@ -6974,10 +6976,12 @@ spec:
                               only when the `expose` parameter is true.
                             type: string
                           requestCPU:
-                            description: The minimum amount of CPU required.
+                            description: The minimum amount of CPU required 
(default
+                              125 millicores).
                             type: string
                           requestMemory:
-                            description: The minimum amount of memory required.
+                            description: The minimum amount of memory required 
(default
+                              128 Mi).
                             type: string
                           runAsNonRoot:
                             description: Security Context RunAsNonRoot 
configuration
diff --git a/pkg/resources/config/manager/operator-deployment.yaml 
b/pkg/resources/config/manager/operator-deployment.yaml
index 7e3ac0777..a02bc5d04 100644
--- a/pkg/resources/config/manager/operator-deployment.yaml
+++ b/pkg/resources/config/manager/operator-deployment.yaml
@@ -81,6 +81,13 @@ spec:
               port: 8081
             initialDelaySeconds: 20
             periodSeconds: 10
+          resources:
+            requests:
+              memory: "4Gi"
+              cpu: "1"
+            limits:
+              memory: "16Gi"
+              cpu: "4"
           securityContext:
             runAsNonRoot: true
             seccompProfile:
@@ -89,4 +96,3 @@ spec:
             capabilities:
               drop:
               - ALL
-
diff --git a/pkg/trait/container.go b/pkg/trait/container.go
index 9a5d78f69..b50530481 100644
--- a/pkg/trait/container.go
+++ b/pkg/trait/container.go
@@ -54,6 +54,11 @@ const (
        defaultContainerSeccompProfileType       = 
corev1.SeccompProfileTypeRuntimeDefault
        defaultContainerAllowPrivilegeEscalation = false
        defaultContainerCapabilitiesDrop         = "ALL"
+
+       defaultContainerResourceCPU    = "125m"
+       defaultContainerResourceMemory = "128Mi"
+       defaultContainerLimitCPU       = "500m"
+       defaultContainerLimitMemory    = "512Mi"
 )
 
 type containerTrait struct {
@@ -73,6 +78,10 @@ func newContainerTrait() Trait {
                        SeccompProfileType:       
defaultContainerSeccompProfileType,
                        AllowPrivilegeEscalation: 
pointer.Bool(defaultContainerAllowPrivilegeEscalation),
                        CapabilitiesDrop:         
[]corev1.Capability{defaultContainerCapabilitiesDrop},
+                       RequestCPU:               defaultContainerResourceCPU,
+                       RequestMemory:            
defaultContainerResourceMemory,
+                       LimitCPU:                 defaultContainerLimitCPU,
+                       LimitMemory:              defaultContainerLimitMemory,
                },
        }
 }
diff --git a/pkg/trait/container_test.go b/pkg/trait/container_test.go
index 0f4414dc7..d3988163b 100644
--- a/pkg/trait/container_test.go
+++ b/pkg/trait/container_test.go
@@ -27,6 +27,7 @@ import (
        serving "knative.dev/serving/pkg/apis/serving/v1"
 
        corev1 "k8s.io/api/core/v1"
+       "k8s.io/apimachinery/pkg/api/resource"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        "k8s.io/apimachinery/pkg/types"
        "k8s.io/utils/pointer"
@@ -742,6 +743,27 @@ func TestUserSecurityContext(t *testing.T) {
        assert.Equal(t, []corev1.Capability{"ADD"}, 
d.Spec.Template.Spec.Containers[0].SecurityContext.Capabilities.Add)
 }
 
+func TestUserDefaultResources(t *testing.T) {
+       environment := createSettingContextEnvironment(t, 
v1.TraitProfileKubernetes)
+       traitCatalog := NewCatalog(nil)
+       conditions, err := traitCatalog.apply(environment)
+
+       require.NoError(t, err)
+       assert.NotEmpty(t, conditions)
+       assert.NotEmpty(t, environment.ExecutedTraits)
+       assert.NotNil(t, environment.GetTrait("deployment"))
+       assert.NotNil(t, environment.GetTrait("container"))
+
+       d := 
environment.Resources.GetDeploymentForIntegration(environment.Integration)
+
+       assert.NotNil(t, d)
+       assert.Len(t, d.Spec.Template.Spec.Containers, 1)
+       assert.Equal(t, resource.MustParse("500m"), 
*d.Spec.Template.Spec.Containers[0].Resources.Limits.Cpu())
+       assert.Equal(t, resource.MustParse("125m"), 
*d.Spec.Template.Spec.Containers[0].Resources.Requests.Cpu())
+       assert.Equal(t, resource.MustParse("512Mi"), 
*d.Spec.Template.Spec.Containers[0].Resources.Limits.Memory())
+       assert.Equal(t, resource.MustParse("128Mi"), 
*d.Spec.Template.Spec.Containers[0].Resources.Requests.Memory())
+}
+
 func createSettingContextEnvironment(t *testing.T, profile v1.TraitProfile) 
*Environment {
        catalog, err := camel.DefaultCatalog()
        require.NoError(t, err)


Reply via email to