You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pc...@apache.org on 2024/01/16 11:24:01 UTC
(camel-k) 01/03: chore: remove deprecated publishing strategies
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
commit d9a29ebfcce553d72dece4ae5d0fb5f26d9e8cc9
Author: Pasquale Congiusti <pa...@gmail.com>
AuthorDate: Fri Jan 12 11:57:45 2024 +0100
chore: remove deprecated publishing strategies
Removed Buildah and Kaniko which were deprecated already some time ago
---
.github/workflows/builder.yml | 2 +-
config/crd/bases/camel.apache.org_builds.yaml | 4 +-
.../bases/camel.apache.org_integrationkits.yaml | 3 +-
.../camel.apache.org_integrationplatforms.yaml | 6 +-
.../crd/bases/camel.apache.org_integrations.yaml | 3 +-
.../bases/camel.apache.org_kameletbindings.yaml | 3 +-
config/crd/bases/camel.apache.org_pipes.yaml | 3 +-
docs/antora.yml | 2 -
.../ROOT/pages/contributing/developers.adoc | 1 -
.../pages/installation/advanced/build-config.adoc | 2 -
.../ROOT/pages/installation/advanced/offline.adoc | 8 -
.../ROOT/pages/installation/registry/gcr.adoc | 15 -
docs/modules/ROOT/partials/apis/camel-k-crds.adoc | 5 +-
e2e/install/cli/install_test.go | 15 -
helm/camel-k/crds/crd-build.yaml | 4 +-
helm/camel-k/crds/crd-integration-kit.yaml | 3 +-
helm/camel-k/crds/crd-integration-platform.yaml | 6 +-
helm/camel-k/crds/crd-integration.yaml | 3 +-
helm/camel-k/crds/crd-kamelet-binding.yaml | 3 +-
helm/camel-k/crds/crd-pipe.yaml | 3 +-
pkg/apis/camel/v1/build_types.go | 4 +-
pkg/apis/camel/v1/build_types_support.go | 6 -
pkg/apis/camel/v1/integrationplatform_types.go | 11 +-
.../camel/v1/integrationplatform_types_support.go | 15 -
pkg/apis/camel/v1/trait/builder.go | 1 +
pkg/builder/buildah.go | 35 --
pkg/builder/builder_support.go | 69 ----
pkg/builder/kaniko.go | 49 ---
pkg/builder/tasks.go | 22 --
pkg/cmd/install.go | 130 +++----
pkg/cmd/install_test.go | 8 -
pkg/controller/build/build_pod.go | 419 +--------------------
pkg/controller/build/monitor_pod.go | 15 +-
pkg/controller/integrationplatform/initialize.go | 70 +---
.../integrationplatform_controller.go | 1 -
pkg/controller/integrationplatform/kaniko_cache.go | 120 ------
pkg/controller/integrationplatform/warm.go | 82 ----
pkg/controller/integrationplatform/warm_test.go | 138 -------
pkg/platform/defaults.go | 42 ---
pkg/platform/defaults_test.go | 20 +-
pkg/resources/resources.go | 4 +-
pkg/trait/builder.go | 67 ----
pkg/trait/builder_test.go | 23 +-
pkg/util/defaults/defaults.go | 6 -
script/Makefile | 8 -
script/update_docs.sh | 6 -
46 files changed, 100 insertions(+), 1365 deletions(-)
diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml
index 9938707fd..759873174 100644
--- a/.github/workflows/builder.yml
+++ b/.github/workflows/builder.yml
@@ -74,7 +74,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- publisher: ["Spectrum", "Jib"]
+ publisher: ["Jib", "Spectrum"]
steps:
- name: Checkout code
diff --git a/config/crd/bases/camel.apache.org_builds.yaml b/config/crd/bases/camel.apache.org_builds.yaml
index 3cb3ea1b6..6fd600e23 100644
--- a/config/crd/bases/camel.apache.org_builds.yaml
+++ b/config/crd/bases/camel.apache.org_builds.yaml
@@ -149,7 +149,7 @@ spec:
properties:
buildah:
description: 'a BuildahTask, for Buildah strategy Deprecated:
- use spectrum, jib or s2i instead'
+ use spectrum, jib, s2i or a custom publishing strategy instead'
properties:
baseImage:
description: base image layer
@@ -914,7 +914,7 @@ spec:
type: object
kaniko:
description: 'a KanikoTask, for Kaniko strategy Deprecated:
- use spectrum, jib or s2i instead'
+ use spectrum, jib, s2i or a custom publishing strategy instead'
properties:
baseImage:
description: base image layer
diff --git a/config/crd/bases/camel.apache.org_integrationkits.yaml b/config/crd/bases/camel.apache.org_integrationkits.yaml
index 72b9037b8..da6585701 100644
--- a/config/crd/bases/camel.apache.org_integrationkits.yaml
+++ b/config/crd/bases/camel.apache.org_integrationkits.yaml
@@ -317,7 +317,8 @@ spec:
type: array
verbose:
description: Enable verbose logging on build components that
- support it (e.g. Kaniko build pod).
+ support it (e.g. Kaniko build pod). Deprecated no longer
+ in use
type: boolean
type: object
camel:
diff --git a/config/crd/bases/camel.apache.org_integrationplatforms.yaml b/config/crd/bases/camel.apache.org_integrationplatforms.yaml
index 85ae39af3..55e738b24 100644
--- a/config/crd/bases/camel.apache.org_integrationplatforms.yaml
+++ b/config/crd/bases/camel.apache.org_integrationplatforms.yaml
@@ -622,7 +622,8 @@ spec:
type: array
verbose:
description: Enable verbose logging on build components that
- support it (e.g. Kaniko build pod).
+ support it (e.g. Kaniko build pod). Deprecated no longer
+ in use
type: boolean
type: object
camel:
@@ -2512,7 +2513,8 @@ spec:
type: array
verbose:
description: Enable verbose logging on build components that
- support it (e.g. Kaniko build pod).
+ support it (e.g. Kaniko build pod). Deprecated no longer
+ in use
type: boolean
type: object
camel:
diff --git a/config/crd/bases/camel.apache.org_integrations.yaml b/config/crd/bases/camel.apache.org_integrations.yaml
index 1a25cc2cb..c22c6db6b 100644
--- a/config/crd/bases/camel.apache.org_integrations.yaml
+++ b/config/crd/bases/camel.apache.org_integrations.yaml
@@ -6535,7 +6535,8 @@ spec:
type: array
verbose:
description: Enable verbose logging on build components that
- support it (e.g. Kaniko build pod).
+ support it (e.g. Kaniko build pod). Deprecated no longer
+ in use
type: boolean
type: object
camel:
diff --git a/config/crd/bases/camel.apache.org_kameletbindings.yaml b/config/crd/bases/camel.apache.org_kameletbindings.yaml
index 6b119dfa4..dd9edf480 100644
--- a/config/crd/bases/camel.apache.org_kameletbindings.yaml
+++ b/config/crd/bases/camel.apache.org_kameletbindings.yaml
@@ -6820,7 +6820,8 @@ spec:
type: array
verbose:
description: Enable verbose logging on build components
- that support it (e.g. Kaniko build pod).
+ that support it (e.g. Kaniko build pod). Deprecated
+ no longer in use
type: boolean
type: object
camel:
diff --git a/config/crd/bases/camel.apache.org_pipes.yaml b/config/crd/bases/camel.apache.org_pipes.yaml
index 223dbb9fc..eb1bfe2f6 100644
--- a/config/crd/bases/camel.apache.org_pipes.yaml
+++ b/config/crd/bases/camel.apache.org_pipes.yaml
@@ -6818,7 +6818,8 @@ spec:
type: array
verbose:
description: Enable verbose logging on build components
- that support it (e.g. Kaniko build pod).
+ that support it (e.g. Kaniko build pod). Deprecated
+ no longer in use
type: boolean
type: object
camel:
diff --git a/docs/antora.yml b/docs/antora.yml
index e19fc0874..d07a4a098 100644
--- a/docs/antora.yml
+++ b/docs/antora.yml
@@ -37,8 +37,6 @@ asciidoc:
camel-quarkus-version: 3.2.3
camel-quarkus-docs-version: 3.2.x
quarkus-version: 3.2.9.Final
- buildah-version: 1.30.0
- kaniko-version: 1.9.1
kustomize-version: 4.5.4
kubernetes-api-version: 0.27.7
operator-fwk-api-version: 0.20.0
diff --git a/docs/modules/ROOT/pages/contributing/developers.adoc b/docs/modules/ROOT/pages/contributing/developers.adoc
index 5629b98ce..8d662ba3b 100644
--- a/docs/modules/ROOT/pages/contributing/developers.adoc
+++ b/docs/modules/ROOT/pages/contributing/developers.adoc
@@ -222,7 +222,6 @@ When configuring the IDE task, make sure to add all required environment variabl
After you set up the IDE task, with Java 11+ to be used by default, you can run and debug the operator process.
NOTE: The operator can be fully debugged in CRC, because it uses OpenShift S2I binary builds under the hood.
-The build phase cannot be (currently) debugged in Minikube because the Kaniko builder requires that the operator and the publisher pod share a common persistent volume.
[[publishing]]
== Building Metadata for Publishing the Operator in Operator Hub
diff --git a/docs/modules/ROOT/pages/installation/advanced/build-config.adoc b/docs/modules/ROOT/pages/installation/advanced/build-config.adoc
index 6c6b6d4a6..0de388415 100644
--- a/docs/modules/ROOT/pages/installation/advanced/build-config.adoc
+++ b/docs/modules/ROOT/pages/installation/advanced/build-config.adoc
@@ -11,8 +11,6 @@ The `routine` strategy (default) is in general faster as it does not require Kub
The `pod` strategy is **always** used when running a Quarkus native build (as it requires certain tools not available in the operator container). You can also use this strategy when you want to have a higher level of concurrency. Although a bit slower (it requires Kubernetes to spin off a new Pod), this strategy will guarantee the execution of each parallel build in a timely manner.
-NOTE: the `pod` strategy was also required when using the now deprecated Buildah or Kaniko publishing strategy.
-
Beside the build strategy, there are other configuration you can fine tune for each single build (via builder trait) or in the `.spec.build.buildConfiguration` of the IntegrationPlatform if you want to apply such configuration to all your builds. See the Builder trait page for more information.
The most relevant are the `resource` and `limit` parameters which can be used to control how much resources to give to builder Pods. Then you can configure the `orderStrategy`, setting a `sequential` (single build), `fifo` (parallel build started in FIFO order) or `dependencies` (parallel build holding those applications which may depends on other because of xref:architecture/incremental-image.adoc[incremental image]). Finally you can include any `mavenProfile` to the build in order to i [...]
diff --git a/docs/modules/ROOT/pages/installation/advanced/offline.adoc b/docs/modules/ROOT/pages/installation/advanced/offline.adoc
index 6edf96e65..f221dc196 100644
--- a/docs/modules/ROOT/pages/installation/advanced/offline.adoc
+++ b/docs/modules/ROOT/pages/installation/advanced/offline.adoc
@@ -23,14 +23,6 @@ We cannot provide any specific guideline on how to preload images in the cluster
The last one is the image used in the Camel K Runtime 2.16.0 version (the default one at the time of writing). Make sure to identify in the catalog (`.spec.runtime.metadata.quarkus.native-builder-image`) the one required in your installation.
-If you also plan to use Buildah or Kaniko strategy, you need to provide those images as well:
-
-* `quay.io/buildah/stable`
-* `gcr.io/kaniko-project/executor`
-* `gcr.io/kaniko-project/warmer`
-
-Same thing if you are planning to use any xref:pipeline/pipeline.adoc[custom pipeline]. You need to upload the expected image ahead of time.
-
If all the above is set, then, you should be ready to pull and push from the container registry in Camel K as well.
[[maven]]
diff --git a/docs/modules/ROOT/pages/installation/registry/gcr.adoc b/docs/modules/ROOT/pages/installation/registry/gcr.adoc
index bc6cdfb0c..df470f70c 100644
--- a/docs/modules/ROOT/pages/installation/registry/gcr.adoc
+++ b/docs/modules/ROOT/pages/installation/registry/gcr.adoc
@@ -17,21 +17,6 @@ The best way to obtain a valid key is from the Google web console:
A `.json` file with the key will be downloaded to your machine. You need to store that key in a Kubernetes secret.
-It's **important** to rename the file you've just downloaded to `kaniko-secret.json` (make sure you write it correctly).
-After the renaming, execute the following command to create the secret:
-
-```
-kubectl create secret generic kaniko-secret --from-file=kaniko-secret.json
-```
-
-Ensure you have the https://github.com/apache/camel-k/releases[*kamel* CLI] on your system path.
-
-You should now execute the following command to install cluster resources and the operator (in the current namespace):
-
-```
-kamel install --build-publish-strategy=Kaniko --registry gcr.io --organization <<your-project-id>> --registry-secret kaniko-secret
-```
-
Use the project id of your project on GKE. Usually this can be obtained from the connection string.
NOTE: the project id is **NOT** the cluster id!
diff --git a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
index 7cafb6fc3..0a65eef48 100644
--- a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
+++ b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
@@ -5206,7 +5206,7 @@ a PackageTask, used to package the project
a BuildahTask, for Buildah strategy
-Deprecated: use spectrum, jib or s2i instead
+Deprecated: use spectrum, jib, s2i or a custom publishing strategy instead
|`kaniko` +
*xref:#_camel_apache_org_v1_KanikoTask[KanikoTask]*
@@ -5214,7 +5214,7 @@ Deprecated: use spectrum, jib or s2i instead
a KanikoTask, for Kaniko strategy
-Deprecated: use spectrum, jib or s2i instead
+Deprecated: use spectrum, jib, s2i or a custom publishing strategy instead
|`spectrum` +
*xref:#_camel_apache_org_v1_SpectrumTask[SpectrumTask]*
@@ -5817,6 +5817,7 @@ bool
Enable verbose logging on build components that support it (e.g. Kaniko build pod).
+Deprecated no longer in use
|`properties` +
[]string
diff --git a/e2e/install/cli/install_test.go b/e2e/install/cli/install_test.go
index 5d58a6575..f5d8780ca 100644
--- a/e2e/install/cli/install_test.go
+++ b/e2e/install/cli/install_test.go
@@ -220,18 +220,3 @@ func TestInstallDebugLogging(t *testing.T) {
Eventually(OperatorEnvVarValue(ns, "LOG_LEVEL"), TestTimeoutLong).Should(Equal("debug"))
})
}
-
-func TestInstallWithPublishStrategyOptions(t *testing.T) {
- WithNewTestNamespace(t, func(ns string) {
- operatorID := fmt.Sprintf("camel-k-%s", ns)
- Expect(KamelInstallWithID(operatorID, ns, "--build-publish-strategy", "Kaniko", "--build-publish-strategy-option", "KanikoExecutorImage=foo", "--build-publish-strategy-option", "KanikoWarmerImage=bar").Execute()).To(Succeed())
- Eventually(OperatorPod(ns)).ShouldNot(BeNil())
- Eventually(Platform(ns)).ShouldNot(BeNil())
- Eventually(func() map[string]string {
- return Platform(ns)().Spec.Build.PublishStrategyOptions
- }).Should(HaveKeyWithValue("KanikoExecutorImage", "foo"))
- Eventually(func() map[string]string {
- return Platform(ns)().Spec.Build.PublishStrategyOptions
- }).Should(HaveKeyWithValue("KanikoWarmerImage", "bar"))
- })
-}
diff --git a/helm/camel-k/crds/crd-build.yaml b/helm/camel-k/crds/crd-build.yaml
index 3cb3ea1b6..6fd600e23 100644
--- a/helm/camel-k/crds/crd-build.yaml
+++ b/helm/camel-k/crds/crd-build.yaml
@@ -149,7 +149,7 @@ spec:
properties:
buildah:
description: 'a BuildahTask, for Buildah strategy Deprecated:
- use spectrum, jib or s2i instead'
+ use spectrum, jib, s2i or a custom publishing strategy instead'
properties:
baseImage:
description: base image layer
@@ -914,7 +914,7 @@ spec:
type: object
kaniko:
description: 'a KanikoTask, for Kaniko strategy Deprecated:
- use spectrum, jib or s2i instead'
+ use spectrum, jib, s2i or a custom publishing strategy instead'
properties:
baseImage:
description: base image layer
diff --git a/helm/camel-k/crds/crd-integration-kit.yaml b/helm/camel-k/crds/crd-integration-kit.yaml
index 72b9037b8..da6585701 100644
--- a/helm/camel-k/crds/crd-integration-kit.yaml
+++ b/helm/camel-k/crds/crd-integration-kit.yaml
@@ -317,7 +317,8 @@ spec:
type: array
verbose:
description: Enable verbose logging on build components that
- support it (e.g. Kaniko build pod).
+ support it (e.g. Kaniko build pod). Deprecated no longer
+ in use
type: boolean
type: object
camel:
diff --git a/helm/camel-k/crds/crd-integration-platform.yaml b/helm/camel-k/crds/crd-integration-platform.yaml
index 85ae39af3..55e738b24 100644
--- a/helm/camel-k/crds/crd-integration-platform.yaml
+++ b/helm/camel-k/crds/crd-integration-platform.yaml
@@ -622,7 +622,8 @@ spec:
type: array
verbose:
description: Enable verbose logging on build components that
- support it (e.g. Kaniko build pod).
+ support it (e.g. Kaniko build pod). Deprecated no longer
+ in use
type: boolean
type: object
camel:
@@ -2512,7 +2513,8 @@ spec:
type: array
verbose:
description: Enable verbose logging on build components that
- support it (e.g. Kaniko build pod).
+ support it (e.g. Kaniko build pod). Deprecated no longer
+ in use
type: boolean
type: object
camel:
diff --git a/helm/camel-k/crds/crd-integration.yaml b/helm/camel-k/crds/crd-integration.yaml
index 1a25cc2cb..c22c6db6b 100644
--- a/helm/camel-k/crds/crd-integration.yaml
+++ b/helm/camel-k/crds/crd-integration.yaml
@@ -6535,7 +6535,8 @@ spec:
type: array
verbose:
description: Enable verbose logging on build components that
- support it (e.g. Kaniko build pod).
+ support it (e.g. Kaniko build pod). Deprecated no longer
+ in use
type: boolean
type: object
camel:
diff --git a/helm/camel-k/crds/crd-kamelet-binding.yaml b/helm/camel-k/crds/crd-kamelet-binding.yaml
index 6b119dfa4..dd9edf480 100644
--- a/helm/camel-k/crds/crd-kamelet-binding.yaml
+++ b/helm/camel-k/crds/crd-kamelet-binding.yaml
@@ -6820,7 +6820,8 @@ spec:
type: array
verbose:
description: Enable verbose logging on build components
- that support it (e.g. Kaniko build pod).
+ that support it (e.g. Kaniko build pod). Deprecated
+ no longer in use
type: boolean
type: object
camel:
diff --git a/helm/camel-k/crds/crd-pipe.yaml b/helm/camel-k/crds/crd-pipe.yaml
index 223dbb9fc..eb1bfe2f6 100644
--- a/helm/camel-k/crds/crd-pipe.yaml
+++ b/helm/camel-k/crds/crd-pipe.yaml
@@ -6818,7 +6818,8 @@ spec:
type: array
verbose:
description: Enable verbose logging on build components
- that support it (e.g. Kaniko build pod).
+ that support it (e.g. Kaniko build pod). Deprecated
+ no longer in use
type: boolean
type: object
camel:
diff --git a/pkg/apis/camel/v1/build_types.go b/pkg/apis/camel/v1/build_types.go
index a843eea5b..188aa0ad1 100644
--- a/pkg/apis/camel/v1/build_types.go
+++ b/pkg/apis/camel/v1/build_types.go
@@ -67,10 +67,10 @@ type Task struct {
// Application Publishing
// a BuildahTask, for Buildah strategy
- // Deprecated: use spectrum, jib or s2i instead
+ // Deprecated: use spectrum, jib, s2i or a custom publishing strategy instead
Buildah *BuildahTask `json:"buildah,omitempty"`
// a KanikoTask, for Kaniko strategy
- // Deprecated: use spectrum, jib or s2i instead
+ // Deprecated: use spectrum, jib, s2i or a custom publishing strategy instead
Kaniko *KanikoTask `json:"kaniko,omitempty"`
// a SpectrumTask, for Spectrum strategy
Spectrum *SpectrumTask `json:"spectrum,omitempty"`
diff --git a/pkg/apis/camel/v1/build_types_support.go b/pkg/apis/camel/v1/build_types_support.go
index a9777b65f..251e1cf8e 100644
--- a/pkg/apis/camel/v1/build_types_support.go
+++ b/pkg/apis/camel/v1/build_types_support.go
@@ -104,12 +104,6 @@ func ConfigurationTasksByName(tasks []Task, name string) *BuildConfiguration {
if t.Jib != nil && t.Jib.Name == name {
return &t.Jib.Configuration
}
- if t.Buildah != nil && t.Buildah.Name == name {
- return &t.Buildah.Configuration
- }
- if t.Kaniko != nil && t.Kaniko.Name == name {
- return &t.Kaniko.Configuration
- }
}
return &BuildConfiguration{}
}
diff --git a/pkg/apis/camel/v1/integrationplatform_types.go b/pkg/apis/camel/v1/integrationplatform_types.go
index 8f5dea268..62470188c 100644
--- a/pkg/apis/camel/v1/integrationplatform_types.go
+++ b/pkg/apis/camel/v1/integrationplatform_types.go
@@ -153,14 +153,6 @@ type IntegrationPlatformKameletRepositorySpec struct {
type IntegrationPlatformBuildPublishStrategy string
const (
- // IntegrationPlatformBuildPublishStrategyBuildah uses Buildah project (https://buildah.io/)
- // in order to push the incremental images to the image repository. It can be used with `pod` BuildStrategy.
- // Deprecated: use Spectrum, Jib or S2I instead.
- IntegrationPlatformBuildPublishStrategyBuildah IntegrationPlatformBuildPublishStrategy = "Buildah"
- // IntegrationPlatformBuildPublishStrategyKaniko uses Kaniko project (https://github.com/GoogleContainerTools/kaniko)
- // in order to push the incremental images to the image repository. It can be used with `pod` BuildStrategy.
- // Deprecated: use Spectrum, Jib or S2I instead.
- IntegrationPlatformBuildPublishStrategyKaniko IntegrationPlatformBuildPublishStrategy = "Kaniko"
// IntegrationPlatformBuildPublishStrategyS2I uses the Source to Images (S2I) feature
// (https://docs.openshift.com/container-platform/4.9/openshift_images/create-images.html#images-create-s2i_create-images)
// provided by an OpenShift cluster in order to create and push the images to the registry. It is the default choice on OpenShift cluster.
@@ -175,8 +167,6 @@ const (
// IntegrationPlatformBuildPublishStrategies the list of all available publish strategies.
var IntegrationPlatformBuildPublishStrategies = []IntegrationPlatformBuildPublishStrategy{
- IntegrationPlatformBuildPublishStrategyBuildah,
- IntegrationPlatformBuildPublishStrategyKaniko,
IntegrationPlatformBuildPublishStrategyS2I,
IntegrationPlatformBuildPublishStrategySpectrum,
IntegrationPlatformBuildPublishStrategyJib,
@@ -197,6 +187,7 @@ const (
// IntegrationPlatformPhaseCreating when the IntegrationPlatform is under creation process.
IntegrationPlatformPhaseCreating IntegrationPlatformPhase = "Creating"
// IntegrationPlatformPhaseWarming when the IntegrationPlatform is warming (ie, creating Kaniko cache).
+ // Deprecated no longer in use.
IntegrationPlatformPhaseWarming IntegrationPlatformPhase = "Warming"
// IntegrationPlatformPhaseReady when the IntegrationPlatform is ready.
IntegrationPlatformPhaseReady IntegrationPlatformPhase = "Ready"
diff --git a/pkg/apis/camel/v1/integrationplatform_types_support.go b/pkg/apis/camel/v1/integrationplatform_types_support.go
index fb216a8cd..e3f9e4fbd 100644
--- a/pkg/apis/camel/v1/integrationplatform_types_support.go
+++ b/pkg/apis/camel/v1/integrationplatform_types_support.go
@@ -18,8 +18,6 @@ limitations under the License.
package v1
import (
- "strconv"
-
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
@@ -173,19 +171,6 @@ func (in *IntegrationPlatformStatus) RemoveCondition(condType IntegrationPlatfor
in.Conditions = newConditions
}
-// IsOptionEnabled tells if provided option key is present in PublishStrategyOptions and enabled.
-func (b IntegrationPlatformBuildSpec) IsOptionEnabled(option string) bool {
- // Key defined in builder/kaniko.go
- if enabled, ok := b.PublishStrategyOptions[option]; ok {
- res, err := strconv.ParseBool(enabled)
- if err != nil {
- return false
- }
- return res
- }
- return false
-}
-
// AddOption add a publish strategy option.
func (b *IntegrationPlatformBuildSpec) AddOption(option string, value string) {
options := b.PublishStrategyOptions
diff --git a/pkg/apis/camel/v1/trait/builder.go b/pkg/apis/camel/v1/trait/builder.go
index c98feafa6..b628a190f 100644
--- a/pkg/apis/camel/v1/trait/builder.go
+++ b/pkg/apis/camel/v1/trait/builder.go
@@ -24,6 +24,7 @@ package trait
type BuilderTrait struct {
PlatformBaseTrait `property:",squash" json:",inline"`
// Enable verbose logging on build components that support it (e.g. Kaniko build pod).
+ // Deprecated no longer in use
Verbose *bool `property:"verbose" json:"verbose,omitempty"`
// A list of properties to be provided to the build task
Properties []string `property:"properties" json:"properties,omitempty"`
diff --git a/pkg/builder/buildah.go b/pkg/builder/buildah.go
deleted file mode 100644
index d1ca940cb..000000000
--- a/pkg/builder/buildah.go
+++ /dev/null
@@ -1,35 +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.
-*/
-
-package builder
-
-const BuildahPlatform = "BuildahPlatform"
-const BuildahImage = "BuildahImage"
-const BuildahDefaultImageName = "quay.io/buildah/stable"
-const BuildahDefaultBaseImageName = "docker.io/library/eclipse-temurin:17"
-
-var buildahSupportedOptions = map[string]PublishStrategyOption{
- BuildahPlatform: {
- Name: BuildahPlatform,
- description: "The attribute platform for buildah",
- },
- BuildahImage: {
- Name: BuildahImage,
- description: "The docker image to use for Buildah",
- defaultValue: BuildahDefaultImageName,
- },
-}
diff --git a/pkg/builder/builder_support.go b/pkg/builder/builder_support.go
deleted file mode 100644
index beef7ef63..000000000
--- a/pkg/builder/builder_support.go
+++ /dev/null
@@ -1,69 +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.
-*/
-
-package builder
-
-import (
- "fmt"
-
- v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
-)
-
-type PublishStrategyOption struct {
- Name string
- description string
- defaultValue string
-}
-
-func (o *PublishStrategyOption) ToString() string {
- if o.defaultValue == "" {
- return fmt.Sprintf("%s: %s", o.Name, o.description)
- }
- return fmt.Sprintf("%s: %s, default %s", o.Name, o.description, o.defaultValue)
-}
-
-// GetSupportedPublishStrategyOptions provides the supported options for the given strategy. Returns nil if no options are supported.
-func GetSupportedPublishStrategyOptions(strategy v1.IntegrationPlatformBuildPublishStrategy) []PublishStrategyOption {
- var supportedOptions map[string]PublishStrategyOption
- switch strategy {
- case v1.IntegrationPlatformBuildPublishStrategyKaniko:
- supportedOptions = kanikoSupportedOptions
- case v1.IntegrationPlatformBuildPublishStrategyBuildah:
- supportedOptions = buildahSupportedOptions
- default:
- return nil
- }
- result := make([]PublishStrategyOption, 0, len(supportedOptions))
- for _, value := range supportedOptions {
- result = append(result, value)
- }
- return result
-}
-
-// IsSupportedPublishStrategyOption indicates whether the given option name is supported for the given strategy.
-func IsSupportedPublishStrategyOption(strategy v1.IntegrationPlatformBuildPublishStrategy, name string) bool {
- var supportedOption bool
- switch strategy {
- case v1.IntegrationPlatformBuildPublishStrategyKaniko:
- _, supportedOption = kanikoSupportedOptions[name]
- case v1.IntegrationPlatformBuildPublishStrategyBuildah:
- _, supportedOption = buildahSupportedOptions[name]
- default:
- supportedOption = false
- }
- return supportedOption
-}
diff --git a/pkg/builder/kaniko.go b/pkg/builder/kaniko.go
deleted file mode 100644
index 5800cfb60..000000000
--- a/pkg/builder/kaniko.go
+++ /dev/null
@@ -1,49 +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.
-*/
-
-package builder
-
-// KanikoCacheDir is the cache directory for Kaniko builds (mounted into the Kaniko pod).
-const KanikoCacheDir = "/kaniko/cache"
-const KanikoPVCName = "KanikoPersistentVolumeClaim"
-const KanikoBuildCacheEnabled = "KanikoBuildCacheEnabled"
-const KanikoExecutorImage = "KanikoExecutorImage"
-const KanikoWarmerImage = "KanikoWarmerImage"
-const KanikoDefaultExecutorImageName = "gcr.io/kaniko-project/executor"
-const KanikoDefaultWarmerImageName = "gcr.io/kaniko-project/warmer"
-
-var kanikoSupportedOptions = map[string]PublishStrategyOption{
- KanikoPVCName: {
- Name: KanikoPVCName,
- description: "The name of the PersistentVolumeClaim",
- },
- KanikoBuildCacheEnabled: {
- Name: KanikoBuildCacheEnabled,
- description: "To enable or disable the Kaniko cache",
- defaultValue: "false",
- },
- KanikoExecutorImage: {
- Name: KanikoExecutorImage,
- description: "The docker image of the Kaniko executor",
- defaultValue: KanikoDefaultExecutorImageName,
- },
- KanikoWarmerImage: {
- Name: KanikoWarmerImage,
- description: "The docker image of the Kaniko warmer",
- defaultValue: KanikoDefaultWarmerImageName,
- },
-}
diff --git a/pkg/builder/tasks.go b/pkg/builder/tasks.go
index c61a8df2f..2e18403ce 100644
--- a/pkg/builder/tasks.go
+++ b/pkg/builder/tasks.go
@@ -55,18 +55,6 @@ func (b *Build) Task(task v1.Task) Task {
build: b.build,
task: task.Package,
}
- // Buildah tasks are not supported in routines
- case task.Buildah != nil:
- return &unsupportedTask{
- build: b.build,
- name: task.Buildah.Name,
- }
- // Kaniko tasks are not supported in routines
- case task.Kaniko != nil:
- return &unsupportedTask{
- build: b.build,
- name: task.Kaniko.Name,
- }
case task.Spectrum != nil:
return &spectrumTask{
c: b.builder.client,
@@ -152,16 +140,6 @@ func (b *Build) TaskByName(name string) Task {
build: b.build,
task: task.Package,
}
- case task.Buildah != nil && task.Buildah.Name == name:
- return &unsupportedTask{
- build: b.build,
- name: task.Buildah.Name,
- }
- case task.Kaniko != nil && task.Kaniko.Name == name:
- return &unsupportedTask{
- build: b.build,
- name: task.Kaniko.Name,
- }
case task.Spectrum != nil && task.Spectrum.Name == name:
return &spectrumTask{
c: b.builder.client,
diff --git a/pkg/cmd/install.go b/pkg/cmd/install.go
index 7c55ea409..80a0f66fe 100644
--- a/pkg/cmd/install.go
+++ b/pkg/cmd/install.go
@@ -43,7 +43,6 @@ import (
ctrl "sigs.k8s.io/controller-runtime/pkg/client"
v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
- "github.com/apache/camel-k/v2/pkg/builder"
"github.com/apache/camel-k/v2/pkg/client"
"github.com/apache/camel-k/v2/pkg/install"
"github.com/apache/camel-k/v2/pkg/util"
@@ -162,53 +161,52 @@ func newCmdInstall(rootCmdOptions *RootCmdOptions) (*cobra.Command, *installCmdO
type installCmdOptions struct {
*RootCmdOptions
- Wait bool `mapstructure:"wait"`
- ClusterSetupOnly bool `mapstructure:"cluster-setup"`
- SkipOperatorSetup bool `mapstructure:"skip-operator-setup"`
- SkipClusterSetup bool `mapstructure:"skip-cluster-setup"`
- SkipRegistrySetup bool `mapstructure:"skip-registry-setup"`
- SkipDefaultKameletsSetup bool `mapstructure:"skip-default-kamelets-setup"`
- ExampleSetup bool `mapstructure:"example"`
- Global bool `mapstructure:"global"`
- Save bool `mapstructure:"save" kamel:"omitsave"`
- Force bool `mapstructure:"force"`
- Olm bool `mapstructure:"olm"`
- olmOptions olm.Options
- ClusterType string `mapstructure:"cluster-type"`
- OutputFormat string `mapstructure:"output"`
- RuntimeVersion string `mapstructure:"runtime-version"`
- BaseImage string `mapstructure:"base-image"`
- OperatorID string `mapstructure:"operator-id"`
- OperatorImage string `mapstructure:"operator-image"`
- OperatorImagePullPolicy string `mapstructure:"operator-image-pull-policy"`
- BuildStrategy string `mapstructure:"build-strategy"`
- BuildOrderStrategy string `mapstructure:"build-order-strategy"`
- BuildPublishStrategy string `mapstructure:"build-publish-strategy"`
- BuildPublishStrategyOptions []string `mapstructure:"build-publish-strategy-options"`
- BuildTimeout string `mapstructure:"build-timeout"`
- MavenExtensions []string `mapstructure:"maven-extensions"`
- MavenLocalRepository string `mapstructure:"maven-local-repository"`
- MavenProperties []string `mapstructure:"maven-properties"`
- MavenRepositories []string `mapstructure:"maven-repositories"`
- MavenSettings string `mapstructure:"maven-settings"`
- MavenCASecret string `mapstructure:"maven-ca-secret"`
- MavenCLIOptions []string `mapstructure:"maven-cli-options"`
- HealthPort int32 `mapstructure:"health-port"`
- MaxRunningBuilds int32 `mapstructure:"max-running-pipelines"`
- Monitoring bool `mapstructure:"monitoring"`
- MonitoringPort int32 `mapstructure:"monitoring-port"`
- Debugging bool `mapstructure:"debugging"`
- DebuggingPort int32 `mapstructure:"debugging-port"`
- DebuggingPath string `mapstructure:"debugging-path"`
- TraitProfile string `mapstructure:"trait-profile"`
- Tolerations []string `mapstructure:"tolerations"`
- NodeSelectors []string `mapstructure:"node-selectors"`
- ResourcesRequirements []string `mapstructure:"operator-resources"`
- LogLevel string `mapstructure:"log-level"`
- EnvVars []string `mapstructure:"operator-env-vars"`
- registry v1.RegistrySpec
- registryAuth registry.Auth
- RegistryAuthFile string `mapstructure:"registry-auth-file"`
+ Wait bool `mapstructure:"wait"`
+ ClusterSetupOnly bool `mapstructure:"cluster-setup"`
+ SkipOperatorSetup bool `mapstructure:"skip-operator-setup"`
+ SkipClusterSetup bool `mapstructure:"skip-cluster-setup"`
+ SkipRegistrySetup bool `mapstructure:"skip-registry-setup"`
+ SkipDefaultKameletsSetup bool `mapstructure:"skip-default-kamelets-setup"`
+ ExampleSetup bool `mapstructure:"example"`
+ Global bool `mapstructure:"global"`
+ Save bool `mapstructure:"save" kamel:"omitsave"`
+ Force bool `mapstructure:"force"`
+ Olm bool `mapstructure:"olm"`
+ olmOptions olm.Options
+ ClusterType string `mapstructure:"cluster-type"`
+ OutputFormat string `mapstructure:"output"`
+ RuntimeVersion string `mapstructure:"runtime-version"`
+ BaseImage string `mapstructure:"base-image"`
+ OperatorID string `mapstructure:"operator-id"`
+ OperatorImage string `mapstructure:"operator-image"`
+ OperatorImagePullPolicy string `mapstructure:"operator-image-pull-policy"`
+ BuildStrategy string `mapstructure:"build-strategy"`
+ BuildOrderStrategy string `mapstructure:"build-order-strategy"`
+ BuildPublishStrategy string `mapstructure:"build-publish-strategy"`
+ BuildTimeout string `mapstructure:"build-timeout"`
+ MavenExtensions []string `mapstructure:"maven-extensions"`
+ MavenLocalRepository string `mapstructure:"maven-local-repository"`
+ MavenProperties []string `mapstructure:"maven-properties"`
+ MavenRepositories []string `mapstructure:"maven-repositories"`
+ MavenSettings string `mapstructure:"maven-settings"`
+ MavenCASecret string `mapstructure:"maven-ca-secret"`
+ MavenCLIOptions []string `mapstructure:"maven-cli-options"`
+ HealthPort int32 `mapstructure:"health-port"`
+ MaxRunningBuilds int32 `mapstructure:"max-running-pipelines"`
+ Monitoring bool `mapstructure:"monitoring"`
+ MonitoringPort int32 `mapstructure:"monitoring-port"`
+ Debugging bool `mapstructure:"debugging"`
+ DebuggingPort int32 `mapstructure:"debugging-port"`
+ DebuggingPath string `mapstructure:"debugging-path"`
+ TraitProfile string `mapstructure:"trait-profile"`
+ Tolerations []string `mapstructure:"tolerations"`
+ NodeSelectors []string `mapstructure:"node-selectors"`
+ ResourcesRequirements []string `mapstructure:"operator-resources"`
+ LogLevel string `mapstructure:"log-level"`
+ EnvVars []string `mapstructure:"operator-env-vars"`
+ registry v1.RegistrySpec
+ registryAuth registry.Auth
+ RegistryAuthFile string `mapstructure:"registry-auth-file"`
}
func (o *installCmdOptions) install(cmd *cobra.Command, _ []string) error {
@@ -591,11 +589,6 @@ func (o *installCmdOptions) setupIntegrationPlatform(c client.Client, namespace
}
}
}
- if len(o.BuildPublishStrategyOptions) > 0 {
- if err = o.addBuildPublishStrategyOptions(&platform.Spec.Build); err != nil {
- return nil, err
- }
- }
// Always create a platform in the namespace where the operator is located
err = install.ObjectOrCollect(o.Context, c, namespace, output, o.Force, platform)
if err != nil {
@@ -792,37 +785,6 @@ func (o *installCmdOptions) validate(_ *cobra.Command, _ []string) error {
return result
}
-// addBuildPublishStrategyOptions parses and adds all the build publish strategy options to the given IntegrationPlatformBuildSpec.
-func (o *installCmdOptions) addBuildPublishStrategyOptions(pipeline *v1.IntegrationPlatformBuildSpec) error {
- for _, option := range o.BuildPublishStrategyOptions {
- kv := strings.Split(option, "=")
- if len(kv) == 2 {
- key := kv[0]
- if builder.IsSupportedPublishStrategyOption(pipeline.PublishStrategy, key) {
- pipeline.AddOption(key, kv[1])
- } else {
- return fmt.Errorf("build publish strategy option '%s' not supported. %s", option, supportedOptionsAsString(pipeline.PublishStrategy))
- }
- } else {
- return fmt.Errorf("build publish strategy option '%s' not in the expected format (name=value)", option)
- }
- }
- return nil
-}
-
-// supportedOptionsAsString provides all the supported options for the given strategy as string.
-func supportedOptionsAsString(strategy v1.IntegrationPlatformBuildPublishStrategy) string {
- options := builder.GetSupportedPublishStrategyOptions(strategy)
- if len(options) == 0 {
- return fmt.Sprintf("no options are supported for the strategy '%s'.", strategy)
- }
- var sb strings.Builder
- for _, supportedOption := range builder.GetSupportedPublishStrategyOptions(strategy) {
- sb.WriteString(fmt.Sprintf("* %s\n", supportedOption.ToString()))
- }
- return fmt.Sprintf("\n\nSupported options for the strategy '%s':\n\n%s", strategy, sb.String())
-}
-
func decodeMavenSettings(mavenSettings string) (v1.ValueSource, error) {
return v1.DecodeValueSource(mavenSettings, "settings.xml", "illegal maven setting definition, syntax: configmap|secret:resource-name[/settings path]")
}
diff --git a/pkg/cmd/install_test.go b/pkg/cmd/install_test.go
index ad222ab26..09f778bee 100644
--- a/pkg/cmd/install_test.go
+++ b/pkg/cmd/install_test.go
@@ -163,14 +163,6 @@ func TestInstallHealthFlag(t *testing.T) {
assert.Equal(t, int32(7777), installCmdOptions.HealthPort)
}
-func TestInstallBuildPublishStrategyOptions(t *testing.T) {
- installCmdOptions, rootCmd, _ := initializeInstallCmdOptions(t)
- _, err := test.ExecuteCommand(rootCmd, cmdInstall, "--build-publish-strategy-option", "foo1=bar1", "--build-publish-strategy-option", "foo2=bar2")
- assert.Nil(t, err)
- assert.Equal(t, "foo1=bar1", installCmdOptions.BuildPublishStrategyOptions[0])
- assert.Equal(t, "foo2=bar2", installCmdOptions.BuildPublishStrategyOptions[1])
-}
-
func TestInstallLocalRepositoryFlag(t *testing.T) {
installCmdOptions, rootCmd, _ := initializeInstallCmdOptions(t)
_, err := test.ExecuteCommand(rootCmd, cmdInstall, "--maven-local-repository", "someString")
diff --git a/pkg/controller/build/build_pod.go b/pkg/controller/build/build_pod.go
index 46fd34d55..ab9c433d5 100644
--- a/pkg/controller/build/build_pod.go
+++ b/pkg/controller/build/build_pod.go
@@ -19,12 +19,8 @@ package build
import (
"context"
- "errors"
- "fmt"
"os"
"path/filepath"
- "strconv"
- "strings"
corev1 "k8s.io/api/core/v1"
k8serrors "k8s.io/apimachinery/pkg/api/errors"
@@ -32,10 +28,8 @@ import (
ctrl "sigs.k8s.io/controller-runtime/pkg/client"
v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
- "github.com/apache/camel-k/v2/pkg/builder"
"github.com/apache/camel-k/v2/pkg/client"
"github.com/apache/camel-k/v2/pkg/platform"
- "github.com/apache/camel-k/v2/pkg/util/defaults"
"github.com/apache/camel-k/v2/pkg/util/kubernetes"
"github.com/apache/camel-k/v2/pkg/util/openshift"
)
@@ -45,76 +39,7 @@ const (
builderVolume = "camel-k-builder"
)
-type registryConfigMap struct {
- fileName string
- mountPath string
- destination string
-}
-
-var (
- serviceCABuildahRegistryConfigMap = registryConfigMap{
- fileName: "service-ca.crt",
- mountPath: "/etc/containers/certs.d",
- destination: "service-ca.crt",
- }
-
- buildahRegistryConfigMaps = []registryConfigMap{
- serviceCABuildahRegistryConfigMap,
- }
-)
-
-type registrySecret struct {
- fileName string
- mountPath string
- destination string
- refEnv string
-}
-
-var (
- plainDockerBuildahRegistrySecret = registrySecret{
- fileName: corev1.DockerConfigKey,
- mountPath: "/buildah/.docker",
- destination: "config.json",
- }
- standardDockerBuildahRegistrySecret = registrySecret{
- fileName: corev1.DockerConfigJsonKey,
- mountPath: "/buildah/.docker",
- destination: "config.json",
- refEnv: "REGISTRY_AUTH_FILE",
- }
-
- buildahRegistrySecrets = []registrySecret{
- plainDockerBuildahRegistrySecret,
- standardDockerBuildahRegistrySecret,
- }
-)
-
-var (
- gcrKanikoRegistrySecret = registrySecret{
- fileName: "kaniko-secret.json",
- mountPath: "/secret",
- destination: "kaniko-secret.json",
- refEnv: "GOOGLE_APPLICATION_CREDENTIALS",
- }
- plainDockerKanikoRegistrySecret = registrySecret{
- fileName: "config.json",
- mountPath: "/kaniko/.docker",
- destination: "config.json",
- }
- standardDockerKanikoRegistrySecret = registrySecret{
- fileName: corev1.DockerConfigJsonKey,
- mountPath: "/kaniko/.docker",
- destination: "config.json",
- }
-
- kanikoRegistrySecrets = []registrySecret{
- gcrKanikoRegistrySecret,
- plainDockerKanikoRegistrySecret,
- standardDockerKanikoRegistrySecret,
- }
-)
-
-func newBuildPod(ctx context.Context, c ctrl.Reader, client client.Client, build *v1.Build) (*corev1.Pod, error) {
+func newBuildPod(ctx context.Context, client client.Client, build *v1.Build) *corev1.Pod {
var ugfid int64 = 1001
podSecurityContext := &corev1.PodSecurityContext{
RunAsUser: &ugfid,
@@ -165,17 +90,6 @@ func newBuildPod(ctx context.Context, c ctrl.Reader, client client.Client, build
// It's a type of builder task, we can reuse the same type
case task.Package != nil:
addBuildTaskToPod(ctx, client, build, task.Package.Name, pod)
- // Publish task
- case task.Buildah != nil:
- err := addBuildahTaskToPod(ctx, c, build, task.Buildah, pod)
- if err != nil {
- return nil, err
- }
- case task.Kaniko != nil:
- err := addKanikoTaskToPod(ctx, c, build, task.Kaniko, pod)
- if err != nil {
- return nil, err
- }
case task.S2i != nil:
addBuildTaskToPod(ctx, client, build, task.S2i.Name, pod)
case task.Spectrum != nil:
@@ -189,7 +103,7 @@ func newBuildPod(ctx context.Context, c ctrl.Reader, client client.Client, build
pod.Spec.Containers = pod.Spec.InitContainers[len(pod.Spec.InitContainers)-1 : len(pod.Spec.InitContainers)]
pod.Spec.InitContainers = pod.Spec.InitContainers[:len(pod.Spec.InitContainers)-1]
- return pod, nil
+ return pod
}
func configureResources(taskName string, build *v1.Build, container *corev1.Container) {
@@ -317,252 +231,6 @@ func addBuildTaskToPod(ctx context.Context, client client.Client, build *v1.Buil
addContainerToPod(build, container, pod)
}
-func addBuildahTaskToPod(ctx context.Context, c ctrl.Reader, build *v1.Build, task *v1.BuildahTask, pod *corev1.Pod) error {
- var bud []string
-
- bud = []string{
- "buildah",
- "bud",
- "--storage-driver=vfs",
- }
-
- if task.Platform != "" {
- bud = append(bud, []string{
- "--platform",
- task.Platform,
- }...)
- }
-
- bud = append(bud, []string{
- "--pull-always",
- "-f",
- "Dockerfile",
- "-t",
- task.Image,
- ".",
- }...)
-
- push := []string{
- "buildah",
- "push",
- "--storage-driver=vfs",
- "--digestfile=/dev/termination-log",
- task.Image,
- "docker://" + task.Image,
- }
-
- if task.Verbose != nil && *task.Verbose {
- bud = append(bud[:2], append([]string{"--log-level=debug"}, bud[2:]...)...)
- push = append(push[:2], append([]string{"--log-level=debug"}, push[2:]...)...)
- }
-
- env := make([]corev1.EnvVar, 0)
- volumes := make([]corev1.Volume, 0)
- volumeMounts := make([]corev1.VolumeMount, 0)
-
- if task.Registry.CA != "" {
- config, err := getRegistryConfigMap(ctx, c, build.Namespace, task.Registry.CA, buildahRegistryConfigMaps)
- if err != nil {
- return err
- }
- addRegistryConfigMap(task.Registry.CA, config, &volumes, &volumeMounts)
- // This is easier to use the --cert-dir option, otherwise Buildah defaults to looking up certificates
- // into a directory named after the registry address
- bud = append(bud[:2], append([]string{"--cert-dir=/etc/containers/certs.d"}, bud[2:]...)...)
- push = append(push[:2], append([]string{"--cert-dir=/etc/containers/certs.d"}, push[2:]...)...)
- }
-
- var auth string
- if task.Registry.Secret != "" {
- secret, err := getRegistrySecret(ctx, c, build.Namespace, task.Registry.Secret, buildahRegistrySecrets)
- if err != nil {
- return err
- }
- if secret == plainDockerBuildahRegistrySecret {
- // Handle old format and make it compatible with Buildah
- auth = "(echo '{ \"auths\": ' ; cat /buildah/.docker/config.json ; echo \"}\") > /tmp/.dockercfg"
- env = append(env, corev1.EnvVar{
- Name: "REGISTRY_AUTH_FILE",
- Value: "/tmp/.dockercfg",
- })
- }
- addRegistrySecret(task.Registry.Secret, secret, &volumes, &volumeMounts, &env)
- }
-
- if task.Registry.Insecure {
- bud = append(bud[:2], append([]string{"--tls-verify=false"}, bud[2:]...)...)
- push = append(push[:2], append([]string{"--tls-verify=false"}, push[2:]...)...)
- }
-
- env = append(env, proxyFromEnvironment()...)
-
- args := []string{
- strings.Join(bud, " "),
- strings.Join(push, " "),
- }
- if auth != "" {
- args = append([]string{auth}, args...)
- }
-
- image := task.ExecutorImage
- if image == "" {
- image = fmt.Sprintf("%s:v%s", builder.BuildahDefaultImageName, defaults.BuildahVersion)
- }
-
- var root int64 = 0
- container := corev1.Container{
- Name: task.Name,
- Image: image,
- ImagePullPolicy: corev1.PullIfNotPresent,
- Command: []string{"/bin/sh", "-c"},
- Args: []string{strings.Join(args, " && ")},
- Env: env,
- WorkingDir: filepath.Join(builderDir, build.Name, builder.ContextDir),
- VolumeMounts: volumeMounts,
- // Buildah requires root privileges
- SecurityContext: &corev1.SecurityContext{
- RunAsUser: &root,
- RunAsGroup: &root,
- },
- }
-
- pod.Spec.Volumes = append(pod.Spec.Volumes, volumes...)
-
- configureResources(task.Name, build, &container)
- addContainerToPod(build, container, pod)
-
- return nil
-}
-
-func addKanikoTaskToPod(ctx context.Context, c ctrl.Reader, build *v1.Build, task *v1.KanikoTask, pod *corev1.Pod) error {
- cache := false
- if task.Cache.Enabled != nil && *task.Cache.Enabled {
- cache = true
- }
-
- args := []string{
- "--dockerfile=Dockerfile",
- "--context=" + filepath.Join(builderDir, build.Name, builder.ContextDir),
- "--destination=" + task.Image,
- "--cache=" + strconv.FormatBool(cache),
- "--cache-dir=" + builder.KanikoCacheDir,
- }
-
- if task.Verbose != nil && *task.Verbose {
- args = append(args, "-v=debug")
- }
-
- affinity := &corev1.Affinity{}
- env := make([]corev1.EnvVar, 0)
- volumes := make([]corev1.Volume, 0)
- volumeMounts := make([]corev1.VolumeMount, 0)
-
- if task.Registry.Secret != "" {
- secret, err := getRegistrySecret(ctx, c, build.Namespace, task.Registry.Secret, kanikoRegistrySecrets)
- if err != nil {
- return err
- }
- addRegistrySecret(task.Registry.Secret, secret, &volumes, &volumeMounts, &env)
- }
-
- if task.Registry.Insecure {
- args = append(args, "--insecure")
- args = append(args, "--insecure-pull")
- }
-
- env = append(env, proxyFromEnvironment()...)
-
- if cache {
- // Co-locate with the Kaniko warmer pod for sharing the host path volume as the current
- // persistent volume claim uses the default storage class which is likely relying
- // on the host path provisioner.
- // This has to be done manually by retrieving the Kaniko warmer pod node name and using
- // node affinity as pod affinity only works for running pods and the Kaniko warmer pod
- // has already completed at that stage.
-
- // Locate the kaniko warmer pod
- pods := &corev1.PodList{}
- err := c.List(ctx, pods,
- ctrl.InNamespace(build.Namespace),
- ctrl.MatchingLabels{
- "camel.apache.org/component": "kaniko-warmer",
- })
- if err != nil {
- return err
- }
-
- if len(pods.Items) != 1 {
- return errors.New("failed to locate the Kaniko cache warmer pod")
- }
-
- // Use node affinity with the Kaniko warmer pod node name
- affinity = &corev1.Affinity{
- NodeAffinity: &corev1.NodeAffinity{
- RequiredDuringSchedulingIgnoredDuringExecution: &corev1.NodeSelector{
- NodeSelectorTerms: []corev1.NodeSelectorTerm{
- {
- MatchExpressions: []corev1.NodeSelectorRequirement{
- {
- Key: "kubernetes.io/hostname",
- Operator: "In",
- Values: []string{pods.Items[0].Spec.NodeName},
- },
- },
- },
- },
- },
- },
- }
- // Mount the PV used to warm the Kaniko cache into the Kaniko image build
- volumes = append(volumes, corev1.Volume{
- Name: "kaniko-cache",
- VolumeSource: corev1.VolumeSource{
- PersistentVolumeClaim: &corev1.PersistentVolumeClaimVolumeSource{
- ClaimName: task.Cache.PersistentVolumeClaim,
- },
- },
- })
- volumeMounts = append(volumeMounts, corev1.VolumeMount{
- Name: "kaniko-cache",
- MountPath: builder.KanikoCacheDir,
- })
- }
-
- image := task.ExecutorImage
- if image == "" {
- image = fmt.Sprintf("%s:v%s", builder.KanikoDefaultExecutorImageName, defaults.KanikoVersion)
- }
-
- container := corev1.Container{
- Name: task.Name,
- Image: image,
- ImagePullPolicy: corev1.PullIfNotPresent,
- Args: args,
- Env: env,
- WorkingDir: filepath.Join(builderDir, build.Name, builder.ContextDir),
- VolumeMounts: volumeMounts,
- }
-
- // We may want to handle possible conflicts
- pod.Spec.Affinity = affinity
- pod.Spec.Volumes = append(pod.Spec.Volumes, volumes...)
-
- // Warning: Kaniko requires root privileges to work correctly
- // As we're planning to deprecate this building strategy we're fixing in the first
- // releases of version 2
- var ugfid int64 = 0
- pod.Spec.SecurityContext = &corev1.PodSecurityContext{
- RunAsUser: &ugfid,
- RunAsGroup: &ugfid,
- FSGroup: &ugfid,
- }
-
- configureResources(task.Name, build, &container)
- addContainerToPod(build, container, pod)
-
- return nil
-}
-
func addCustomTaskToPod(build *v1.Build, task *v1.UserTask, pod *corev1.Pod) {
container := corev1.Container{
Name: task.Name,
@@ -604,89 +272,6 @@ func hasVolume(pod *corev1.Pod, name string) bool {
return false
}
-func getRegistryConfigMap(ctx context.Context, c ctrl.Reader, ns, name string, registryConfigMaps []registryConfigMap) (registryConfigMap, error) {
- config := corev1.ConfigMap{}
- err := c.Get(ctx, ctrl.ObjectKey{Namespace: ns, Name: name}, &config)
- if err != nil {
- return registryConfigMap{}, err
- }
- for _, k := range registryConfigMaps {
- if _, ok := config.Data[k.fileName]; ok {
- return k, nil
- }
- }
- return registryConfigMap{}, errors.New("unsupported registry config map")
-}
-
-func addRegistryConfigMap(name string, config registryConfigMap, volumes *[]corev1.Volume, volumeMounts *[]corev1.VolumeMount) {
- *volumes = append(*volumes, corev1.Volume{
- Name: "registry-config",
- VolumeSource: corev1.VolumeSource{
- ConfigMap: &corev1.ConfigMapVolumeSource{
- LocalObjectReference: corev1.LocalObjectReference{
- Name: name,
- },
- Items: []corev1.KeyToPath{
- {
- Key: config.fileName,
- Path: config.destination,
- },
- },
- },
- },
- })
-
- *volumeMounts = append(*volumeMounts, corev1.VolumeMount{
- Name: "registry-config",
- MountPath: config.mountPath,
- ReadOnly: true,
- })
-}
-
-func getRegistrySecret(ctx context.Context, c ctrl.Reader, ns, name string, registrySecrets []registrySecret) (registrySecret, error) {
- secret := corev1.Secret{}
- err := c.Get(ctx, ctrl.ObjectKey{Namespace: ns, Name: name}, &secret)
- if err != nil {
- return registrySecret{}, err
- }
- for _, k := range registrySecrets {
- if _, ok := secret.Data[k.fileName]; ok {
- return k, nil
- }
- }
- return registrySecret{}, errors.New("unsupported secret type for registry authentication")
-}
-
-func addRegistrySecret(name string, secret registrySecret, volumes *[]corev1.Volume, volumeMounts *[]corev1.VolumeMount, env *[]corev1.EnvVar) {
- *volumes = append(*volumes, corev1.Volume{
- Name: "registry-secret",
- VolumeSource: corev1.VolumeSource{
- Secret: &corev1.SecretVolumeSource{
- SecretName: name,
- Items: []corev1.KeyToPath{
- {
- Key: secret.fileName,
- Path: secret.destination,
- },
- },
- },
- },
- })
-
- *volumeMounts = append(*volumeMounts, corev1.VolumeMount{
- Name: "registry-secret",
- MountPath: secret.mountPath,
- ReadOnly: true,
- })
-
- if secret.refEnv != "" {
- *env = append(*env, corev1.EnvVar{
- Name: secret.refEnv,
- Value: filepath.Join(secret.mountPath, secret.destination),
- })
- }
-}
-
func proxyFromEnvironment() []corev1.EnvVar {
var envVars []corev1.EnvVar
diff --git a/pkg/controller/build/monitor_pod.go b/pkg/controller/build/monitor_pod.go
index 0af446104..506fe105b 100644
--- a/pkg/controller/build/monitor_pod.go
+++ b/pkg/controller/build/monitor_pod.go
@@ -72,16 +72,13 @@ func (action *monitorPodAction) Handle(ctx context.Context, build *v1.Build) (*v
switch build.Status.Phase {
case v1.BuildPhasePending:
- if pod, err = newBuildPod(ctx, action.reader, action.client, build); err != nil {
- return nil, err
- }
-
+ pod = newBuildPod(ctx, action.client, build)
// If the Builder Pod is in the Build namespace, we can set the ownership to it. If not (global operator mode)
// we set the ownership to the Operator Pod instead
var owner metav1.Object
owner = build
if build.Namespace != pod.Namespace {
- operatorPod := platform.GetOperatorPod(ctx, action.reader, pod.Namespace)
+ operatorPod := platform.GetOperatorPod(ctx, action.client, pod.Namespace)
if operatorPod != nil {
owner = operatorPod
}
@@ -364,10 +361,6 @@ func publishTaskImageName(tasks []v1.Task) string {
return t.Spectrum.Image
case t.Jib != nil:
return t.Jib.Image
- case t.Buildah != nil:
- return t.Buildah.Image
- case t.Kaniko != nil:
- return t.Kaniko.Image
}
return ""
@@ -385,10 +378,6 @@ func publishTaskName(tasks []v1.Task) string {
return t.Spectrum.Name
case t.Jib != nil:
return t.Jib.Name
- case t.Buildah != nil:
- return t.Buildah.Name
- case t.Kaniko != nil:
- return t.Kaniko.Name
}
return ""
diff --git a/pkg/controller/integrationplatform/initialize.go b/pkg/controller/integrationplatform/initialize.go
index a63b9f798..0d766a92a 100644
--- a/pkg/controller/integrationplatform/initialize.go
+++ b/pkg/controller/integrationplatform/initialize.go
@@ -20,14 +20,7 @@ package integrationplatform
import (
"context"
- corev1 "k8s.io/api/core/v1"
- k8serrors "k8s.io/apimachinery/pkg/api/errors"
- "k8s.io/apimachinery/pkg/api/resource"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-
v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
- "github.com/apache/camel-k/v2/pkg/builder"
- "github.com/apache/camel-k/v2/pkg/client"
platformutil "github.com/apache/camel-k/v2/pkg/platform"
"github.com/apache/camel-k/v2/pkg/util/defaults"
)
@@ -70,29 +63,7 @@ func (action *initializeAction) Handle(ctx context.Context, platform *v1.Integra
if err = platformutil.ConfigureDefaults(ctx, action.client, platform, true); err != nil {
return nil, err
}
- if platform.Status.Build.PublishStrategy == v1.IntegrationPlatformBuildPublishStrategyKaniko {
- cacheEnabled := platform.Status.Build.IsOptionEnabled(builder.KanikoBuildCacheEnabled)
- if cacheEnabled {
- // Create the persistent volume claim used by the Kaniko cache
- action.L.Info("Create persistent volume claim")
- err := createPersistentVolumeClaim(ctx, action.client, platform)
- if err != nil {
- return nil, err
- }
- // Create the Kaniko warmer pod that caches the base image into the Camel K builder volume
- action.L.Info("Create Kaniko cache warmer pod")
- err = createKanikoCacheWarmerPod(ctx, action.client, platform)
- if err != nil {
- return nil, err
- }
- platform.Status.Phase = v1.IntegrationPlatformPhaseWarming
- } else {
- // Skip the warmer pod creation
- platform.Status.Phase = v1.IntegrationPlatformPhaseCreating
- }
- } else {
- platform.Status.Phase = v1.IntegrationPlatformPhaseCreating
- }
+ platform.Status.Phase = v1.IntegrationPlatformPhaseCreating
platform.Status.Version = defaults.Version
return platform, nil
@@ -116,42 +87,3 @@ func (action *initializeAction) isPrimaryDuplicate(ctx context.Context, thisPlat
return false, nil
}
-
-func createPersistentVolumeClaim(ctx context.Context, client client.Client, platform *v1.IntegrationPlatform) error {
- volumeSize, err := resource.ParseQuantity("1Gi")
- if err != nil {
- return err
- }
- pvcName := platform.Status.Build.PublishStrategyOptions[builder.KanikoPVCName]
- pvc := &corev1.PersistentVolumeClaim{
- TypeMeta: metav1.TypeMeta{
- APIVersion: corev1.SchemeGroupVersion.String(),
- Kind: "PersistentVolumeClaim",
- },
- ObjectMeta: metav1.ObjectMeta{
- Namespace: platform.Namespace,
- Name: pvcName,
- Labels: map[string]string{
- "app": "camel-k",
- },
- },
- Spec: corev1.PersistentVolumeClaimSpec{
- AccessModes: []corev1.PersistentVolumeAccessMode{
- corev1.ReadWriteOnce,
- },
- Resources: corev1.ResourceRequirements{
- Requests: corev1.ResourceList{
- corev1.ResourceStorage: volumeSize,
- },
- },
- },
- }
-
- err = client.Create(ctx, pvc)
- // Skip the error in case the PVC already exists
- if err != nil && !k8serrors.IsAlreadyExists(err) {
- return err
- }
-
- return nil
-}
diff --git a/pkg/controller/integrationplatform/integrationplatform_controller.go b/pkg/controller/integrationplatform/integrationplatform_controller.go
index e95a3413e..2c714af8d 100644
--- a/pkg/controller/integrationplatform/integrationplatform_controller.go
+++ b/pkg/controller/integrationplatform/integrationplatform_controller.go
@@ -155,7 +155,6 @@ func (r *reconcileIntegrationPlatform) Reconcile(ctx context.Context, request re
actions := []Action{
NewInitializeAction(),
- NewWarmAction(r.reader),
NewCreateAction(),
NewMonitorAction(),
}
diff --git a/pkg/controller/integrationplatform/kaniko_cache.go b/pkg/controller/integrationplatform/kaniko_cache.go
deleted file mode 100644
index f82ef1d52..000000000
--- a/pkg/controller/integrationplatform/kaniko_cache.go
+++ /dev/null
@@ -1,120 +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.
-*/
-
-package integrationplatform
-
-import (
- "context"
- "fmt"
-
- corev1 "k8s.io/api/core/v1"
- apierrors "k8s.io/apimachinery/pkg/api/errors"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-
- v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
- "github.com/apache/camel-k/v2/pkg/builder"
- "github.com/apache/camel-k/v2/pkg/client"
- "github.com/apache/camel-k/v2/pkg/util/defaults"
-)
-
-func createKanikoCacheWarmerPod(ctx context.Context, client client.Client, platform *v1.IntegrationPlatform) error {
- // The pod will be scheduled to nodes that are selected by the persistent volume
- // node affinity spec, if any, as provisioned by the persistent volume claim storage
- // class provisioner.
- // See:
- // - https://kubernetes.io/docs/concepts/storage/persistent-volumes/#node-affinity
- // - https://kubernetes.io/docs/concepts/storage/volumes/#local
- pvcName := platform.Status.Build.PublishStrategyOptions[builder.KanikoPVCName]
-
- var warmerImage string
- if image, found := platform.Status.Build.PublishStrategyOptions[builder.KanikoWarmerImage]; found {
- warmerImage = image
- } else {
- warmerImage = fmt.Sprintf("%s:v%s", builder.KanikoDefaultWarmerImageName, defaults.KanikoVersion)
- }
-
- pod := corev1.Pod{
- TypeMeta: metav1.TypeMeta{
- APIVersion: corev1.SchemeGroupVersion.String(),
- Kind: "Pod",
- },
- ObjectMeta: metav1.ObjectMeta{
- Namespace: platform.Namespace,
- Name: platform.Name + "-cache",
- Labels: map[string]string{
- "camel.apache.org/component": "kaniko-warmer",
- },
- },
- Spec: corev1.PodSpec{
- Containers: []corev1.Container{
- {
- Name: "warm-kaniko-cache",
- Image: warmerImage,
- Args: []string{
- "--cache-dir=" + builder.KanikoCacheDir,
- "--image=" + platform.Status.Build.BaseImage,
- },
- VolumeMounts: []corev1.VolumeMount{
- {
- Name: "kaniko-cache",
- MountPath: builder.KanikoCacheDir,
- },
- },
- },
- },
- // Create the cache directory otherwise Kaniko warmer skips caching silently
- InitContainers: []corev1.Container{
- {
- Name: "create-kaniko-cache",
- Image: "busybox",
- ImagePullPolicy: corev1.PullIfNotPresent,
- Command: []string{"/bin/sh", "-c"},
- Args: []string{"mkdir -p " + builder.KanikoCacheDir + "&& chmod -R a+rwx " + builder.KanikoCacheDir},
- VolumeMounts: []corev1.VolumeMount{
- {
- Name: "kaniko-cache",
- MountPath: builder.KanikoCacheDir,
- },
- },
- },
- },
- RestartPolicy: corev1.RestartPolicyOnFailure,
- Volumes: []corev1.Volume{
- {
- Name: "kaniko-cache",
- VolumeSource: corev1.VolumeSource{
- PersistentVolumeClaim: &corev1.PersistentVolumeClaimVolumeSource{
- ClaimName: pvcName,
- },
- },
- },
- },
- },
- }
-
- err := client.Delete(ctx, &pod)
- if err != nil && !apierrors.IsNotFound(err) {
- return fmt.Errorf("cannot delete Kaniko warmer pod: %w", err)
- }
-
- err = client.Create(ctx, &pod)
- if err != nil {
- return fmt.Errorf("cannot create Kaniko warmer pod: %w", err)
- }
-
- return nil
-}
diff --git a/pkg/controller/integrationplatform/warm.go b/pkg/controller/integrationplatform/warm.go
deleted file mode 100644
index c1201b23a..000000000
--- a/pkg/controller/integrationplatform/warm.go
+++ /dev/null
@@ -1,82 +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.
-*/
-
-package integrationplatform
-
-import (
- "context"
- "errors"
-
- corev1 "k8s.io/api/core/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- "k8s.io/apimachinery/pkg/types"
-
- ctrl "sigs.k8s.io/controller-runtime/pkg/client"
-
- v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
-)
-
-func NewWarmAction(reader ctrl.Reader) Action {
- return &warmAction{
- reader: reader,
- }
-}
-
-type warmAction struct {
- baseAction
- reader ctrl.Reader
-}
-
-func (action *warmAction) Name() string {
- return "warm"
-}
-
-func (action *warmAction) CanHandle(platform *v1.IntegrationPlatform) bool {
- return platform.Status.Phase == v1.IntegrationPlatformPhaseWarming
-}
-
-func (action *warmAction) Handle(ctx context.Context, platform *v1.IntegrationPlatform) (*v1.IntegrationPlatform, error) {
- // Check Kaniko warmer pod status
- pod := corev1.Pod{
- TypeMeta: metav1.TypeMeta{
- APIVersion: corev1.SchemeGroupVersion.String(),
- Kind: "Pod",
- },
- ObjectMeta: metav1.ObjectMeta{
- Namespace: platform.Namespace,
- Name: platform.Name + "-cache",
- },
- }
-
- err := action.reader.Get(ctx, types.NamespacedName{Namespace: pod.Namespace, Name: pod.Name}, &pod)
- if err != nil {
- return nil, err
- }
-
- switch pod.Status.Phase {
- case corev1.PodSucceeded:
- action.L.Info("Kaniko cache successfully warmed up")
- platform.Status.Phase = v1.IntegrationPlatformPhaseCreating
- return platform, nil
- case corev1.PodFailed:
- return nil, errors.New("failed to warm up Kaniko cache")
- default:
- action.L.Info("Waiting for Kaniko cache to warm up...")
- // Requeue
- return nil, nil
- }
-}
diff --git a/pkg/controller/integrationplatform/warm_test.go b/pkg/controller/integrationplatform/warm_test.go
deleted file mode 100644
index 83f963433..000000000
--- a/pkg/controller/integrationplatform/warm_test.go
+++ /dev/null
@@ -1,138 +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.
-*/
-
-package integrationplatform
-
-import (
- "context"
- "testing"
-
- "github.com/apache/camel-k/v2/pkg/platform"
- corev1 "k8s.io/api/core/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-
- v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
- "github.com/apache/camel-k/v2/pkg/util/log"
- "github.com/apache/camel-k/v2/pkg/util/test"
- "github.com/rs/xid"
- "github.com/stretchr/testify/assert"
-)
-
-func TestWarm_Succeeded(t *testing.T) {
- ip := v1.IntegrationPlatform{}
- ip.Namespace = "ns"
- ip.Name = xid.New().String()
- ip.Spec.Cluster = v1.IntegrationPlatformClusterOpenShift
- ip.Spec.Profile = v1.TraitProfileOpenShift
-
- pod := corev1.Pod{
- TypeMeta: metav1.TypeMeta{
- APIVersion: corev1.SchemeGroupVersion.String(),
- Kind: "Pod",
- },
- ObjectMeta: metav1.ObjectMeta{
- Namespace: ip.Namespace,
- Name: ip.Name + "-cache",
- },
- Status: corev1.PodStatus{
- Phase: corev1.PodSucceeded,
- },
- }
-
- c, err := test.NewFakeClient(&ip, &pod)
- assert.Nil(t, err)
-
- assert.Nil(t, platform.ConfigureDefaults(context.TODO(), c, &ip, false))
-
- h := NewWarmAction(c)
- h.InjectLogger(log.Log)
- h.InjectClient(c)
-
- answer, err := h.Handle(context.TODO(), &ip)
- assert.Nil(t, err)
- assert.NotNil(t, answer)
-}
-
-func TestWarm_Failing(t *testing.T) {
- ip := v1.IntegrationPlatform{}
- ip.Namespace = "ns"
- ip.Name = xid.New().String()
- ip.Spec.Cluster = v1.IntegrationPlatformClusterOpenShift
- ip.Spec.Profile = v1.TraitProfileOpenShift
-
- pod := corev1.Pod{
- TypeMeta: metav1.TypeMeta{
- APIVersion: corev1.SchemeGroupVersion.String(),
- Kind: "Pod",
- },
- ObjectMeta: metav1.ObjectMeta{
- Namespace: ip.Namespace,
- Name: ip.Name + "-cache",
- },
- Status: corev1.PodStatus{
- Phase: corev1.PodFailed,
- },
- }
-
- c, err := test.NewFakeClient(&ip, &pod)
- assert.Nil(t, err)
-
- assert.Nil(t, platform.ConfigureDefaults(context.TODO(), c, &ip, false))
-
- h := NewWarmAction(c)
- h.InjectLogger(log.Log)
- h.InjectClient(c)
-
- answer, err := h.Handle(context.TODO(), &ip)
- assert.NotNil(t, err)
- assert.Nil(t, answer)
-}
-
-func TestWarm_WarmingUp(t *testing.T) {
- ip := v1.IntegrationPlatform{}
- ip.Namespace = "ns"
- ip.Name = xid.New().String()
- ip.Spec.Cluster = v1.IntegrationPlatformClusterOpenShift
- ip.Spec.Profile = v1.TraitProfileOpenShift
-
- pod := corev1.Pod{
- TypeMeta: metav1.TypeMeta{
- APIVersion: corev1.SchemeGroupVersion.String(),
- Kind: "Pod",
- },
- ObjectMeta: metav1.ObjectMeta{
- Namespace: ip.Namespace,
- Name: ip.Name + "-cache",
- },
- Status: corev1.PodStatus{
- Phase: corev1.PodRunning,
- },
- }
-
- c, err := test.NewFakeClient(&ip, &pod)
- assert.Nil(t, err)
-
- assert.Nil(t, platform.ConfigureDefaults(context.TODO(), c, &ip, false))
-
- h := NewWarmAction(c)
- h.InjectLogger(log.Log)
- h.InjectClient(c)
-
- answer, err := h.Handle(context.TODO(), &ip)
- assert.Nil(t, err)
- assert.Nil(t, answer)
-}
diff --git a/pkg/platform/defaults.go b/pkg/platform/defaults.go
index 1a659b181..76e61e7af 100644
--- a/pkg/platform/defaults.go
+++ b/pkg/platform/defaults.go
@@ -33,7 +33,6 @@ import (
ctrl "sigs.k8s.io/controller-runtime/pkg/client"
v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
- "github.com/apache/camel-k/v2/pkg/builder"
"github.com/apache/camel-k/v2/pkg/client"
"github.com/apache/camel-k/v2/pkg/install"
"github.com/apache/camel-k/v2/pkg/kamelet/repository"
@@ -83,16 +82,6 @@ func ConfigureDefaults(ctx context.Context, c client.Client, p *v1.IntegrationPl
if p.Status.Build.BuildConfiguration.Strategy == "" {
defaultStrategy := v1.BuildStrategyRoutine
- if p.Status.Build.PublishStrategy == v1.IntegrationPlatformBuildPublishStrategyBuildah ||
- p.Status.Build.PublishStrategy == v1.IntegrationPlatformBuildPublishStrategyKaniko {
- defaultStrategy = v1.BuildStrategyPod
- log.Infof("Integration Platform %s [%s]: setting fallback build strategy %s because PublishStrategy is configured as %s",
- p.Name,
- p.Namespace,
- defaultStrategy,
- p.Status.Build.PublishStrategy,
- )
- }
p.Status.Build.BuildConfiguration.Strategy = defaultStrategy
log.Debugf("Integration Platform %s [%s]: setting build strategy %s", p.Name, p.Namespace, p.Status.Build.BuildConfiguration.Strategy)
}
@@ -253,10 +242,6 @@ func applyPlatformSpec(source *v1.IntegrationPlatform, target *v1.IntegrationPla
if target.Status.Build.BaseImage == "" {
log.Debugf("Integration Platform %s [%s]: setting base image", target.Name, target.Namespace)
target.Status.Build.BaseImage = source.Status.Build.BaseImage
- // Workaround to ensure the default image from buildah is full name. Any baseImage override is in charge of it's validity
- if target.Status.Build.PublishStrategy == v1.IntegrationPlatformBuildPublishStrategyBuildah && defaults.IsBaseImageDefault() {
- target.Status.Build.BaseImage = builder.BuildahDefaultBaseImageName
- }
}
if target.Status.Build.Maven.LocalRepository == "" {
@@ -330,10 +315,6 @@ func setPlatformDefaults(p *v1.IntegrationPlatform, verbose bool) error {
if p.Status.Build.BaseImage == "" {
log.Debugf("Integration Platform %s [%s]: setting base image", p.Name, p.Namespace)
p.Status.Build.BaseImage = defaults.BaseImage()
- // Workaround to ensure the default image from buildah is full name. Any baseImage override is in charge of it's validity
- if p.Status.Build.PublishStrategy == v1.IntegrationPlatformBuildPublishStrategyBuildah && defaults.IsBaseImageDefault() {
- p.Status.Build.BaseImage = builder.BuildahDefaultBaseImageName
- }
}
if p.Status.Build.Maven.LocalRepository == "" {
log.Debugf("Integration Platform %s [%s]: setting local repository", p.Name, p.Namespace)
@@ -347,10 +328,6 @@ func setPlatformDefaults(p *v1.IntegrationPlatform, verbose bool) error {
"-Dstyle.color=never",
}
}
- if _, ok := p.Status.Build.PublishStrategyOptions[builder.KanikoPVCName]; !ok {
- log.Debugf("Integration Platform %s [%s]: setting publish strategy options", p.Name, p.Namespace)
- p.Status.Build.PublishStrategyOptions[builder.KanikoPVCName] = p.Name
- }
// Build timeout
if p.Status.Build.GetTimeout().Duration == 0 {
@@ -379,18 +356,6 @@ func setPlatformDefaults(p *v1.IntegrationPlatform, verbose bool) error {
}
}
- _, cacheEnabled := p.Status.Build.PublishStrategyOptions[builder.KanikoBuildCacheEnabled]
- if p.Status.Build.PublishStrategy == v1.IntegrationPlatformBuildPublishStrategyKaniko && !cacheEnabled {
- // Default to disabling Kaniko cache warmer
- // Using the cache warmer pod seems unreliable with the current Kaniko version
- // and requires relying on a persistent volume.
- defaultKanikoBuildCache := "false"
- p.Status.Build.PublishStrategyOptions[builder.KanikoBuildCacheEnabled] = defaultKanikoBuildCache
- if verbose {
- log.Log.Infof("Kaniko cache set to %s", defaultKanikoBuildCache)
- }
- }
-
if len(p.Status.Kamelet.Repositories) == 0 {
log.Debugf("Integration Platform %s [%s]: setting kamelet repositories", p.Name, p.Namespace)
p.Status.Kamelet.Repositories = append(p.Status.Kamelet.Repositories, v1.IntegrationPlatformKameletRepositorySpec{
@@ -411,13 +376,6 @@ func setPlatformDefaults(p *v1.IntegrationPlatform, verbose bool) error {
func setStatusAdditionalInfo(platform *v1.IntegrationPlatform) {
platform.Status.Info = make(map[string]string)
-
- log.Debugf("Integration Platform %s [%s]: setting build publish strategy", platform.Name, platform.Namespace)
- if platform.Spec.Build.PublishStrategy == v1.IntegrationPlatformBuildPublishStrategyBuildah {
- platform.Status.Info["buildahVersion"] = defaults.BuildahVersion
- } else if platform.Spec.Build.PublishStrategy == v1.IntegrationPlatformBuildPublishStrategyKaniko {
- platform.Status.Info["kanikoVersion"] = defaults.KanikoVersion
- }
log.Debugf("Integration Platform %s [%s]: setting status info", platform.Name, platform.Namespace)
platform.Status.Info["goVersion"] = runtime.Version()
platform.Status.Info["goOS"] = runtime.GOOS
diff --git a/pkg/platform/defaults_test.go b/pkg/platform/defaults_test.go
index d73b99af2..ac9ecd7de 100644
--- a/pkg/platform/defaults_test.go
+++ b/pkg/platform/defaults_test.go
@@ -27,7 +27,6 @@ import (
v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
"github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait"
- "github.com/apache/camel-k/v2/pkg/builder"
"github.com/apache/camel-k/v2/pkg/util/defaults"
"github.com/apache/camel-k/v2/pkg/util/test"
)
@@ -125,14 +124,14 @@ func TestApplyGlobalPlatformSpec(t *testing.T) {
assert.Equal(t, "global_value2", ip.Status.Build.Maven.Properties["global_prop2"])
}
-func TestPlatformBuildahUpdateOverrideLocalPlatformSpec(t *testing.T) {
+func TestPlatformS2IhUpdateOverrideLocalPlatformSpec(t *testing.T) {
global := v1.IntegrationPlatform{
ObjectMeta: metav1.ObjectMeta{
Namespace: "ns",
},
Spec: v1.IntegrationPlatformSpec{
Build: v1.IntegrationPlatformBuildSpec{
- PublishStrategy: v1.IntegrationPlatformBuildPublishStrategyBuildah,
+ PublishStrategy: v1.IntegrationPlatformBuildPublishStrategyS2I,
},
},
}
@@ -142,7 +141,6 @@ func TestPlatformBuildahUpdateOverrideLocalPlatformSpec(t *testing.T) {
err = ConfigureDefaults(context.TODO(), c, &global, false)
assert.Nil(t, err)
- assert.Equal(t, builder.BuildahDefaultBaseImageName, global.Status.Build.BaseImage)
ip := v1.IntegrationPlatform{
ObjectMeta: metav1.ObjectMeta{
@@ -151,7 +149,7 @@ func TestPlatformBuildahUpdateOverrideLocalPlatformSpec(t *testing.T) {
},
Spec: v1.IntegrationPlatformSpec{
Build: v1.IntegrationPlatformBuildSpec{
- PublishStrategy: v1.IntegrationPlatformBuildPublishStrategyBuildah,
+ PublishStrategy: v1.IntegrationPlatformBuildPublishStrategyS2I,
BaseImage: "overridden",
},
},
@@ -161,19 +159,18 @@ func TestPlatformBuildahUpdateOverrideLocalPlatformSpec(t *testing.T) {
applyPlatformSpec(&global, &ip)
- assert.Equal(t, v1.IntegrationPlatformBuildPublishStrategyBuildah, ip.Status.Build.PublishStrategy)
+ assert.Equal(t, v1.IntegrationPlatformBuildPublishStrategyS2I, ip.Status.Build.PublishStrategy)
assert.Equal(t, "overridden", ip.Status.Build.BaseImage)
}
-func TestPlatformBuildahUpdateDefaultLocalPlatformSpec(t *testing.T) {
-
+func TestPlatformS2IUpdateDefaultLocalPlatformSpec(t *testing.T) {
global := v1.IntegrationPlatform{
ObjectMeta: metav1.ObjectMeta{
Namespace: "ns",
},
Spec: v1.IntegrationPlatformSpec{
Build: v1.IntegrationPlatformBuildSpec{
- PublishStrategy: v1.IntegrationPlatformBuildPublishStrategyBuildah,
+ PublishStrategy: v1.IntegrationPlatformBuildPublishStrategyS2I,
BaseImage: "overridden",
},
},
@@ -193,7 +190,7 @@ func TestPlatformBuildahUpdateDefaultLocalPlatformSpec(t *testing.T) {
},
Spec: v1.IntegrationPlatformSpec{
Build: v1.IntegrationPlatformBuildSpec{
- PublishStrategy: v1.IntegrationPlatformBuildPublishStrategyBuildah,
+ PublishStrategy: v1.IntegrationPlatformBuildPublishStrategyS2I,
},
},
}
@@ -202,8 +199,7 @@ func TestPlatformBuildahUpdateDefaultLocalPlatformSpec(t *testing.T) {
applyPlatformSpec(&global, &ip)
- assert.Equal(t, v1.IntegrationPlatformBuildPublishStrategyBuildah, ip.Status.Build.PublishStrategy)
- assert.Equal(t, builder.BuildahDefaultBaseImageName, ip.Status.Build.BaseImage)
+ assert.Equal(t, v1.IntegrationPlatformBuildPublishStrategyS2I, ip.Status.Build.PublishStrategy)
}
func TestRetainLocalPlatformSpec(t *testing.T) {
diff --git a/pkg/resources/resources.go b/pkg/resources/resources.go
index 758e757af..55ed0f895 100644
--- a/pkg/resources/resources.go
+++ b/pkg/resources/resources.go
@@ -117,9 +117,9 @@ var assets = func() http.FileSystem {
"/crd/bases/camel.apache.org_builds.yaml": &vfsgen۰CompressedFileInfo{
name: "camel.apache.org_builds.yaml",
modTime: time.Time{},
- uncompressedSize: 95731,
+ uncompressedSize: 95791,
- compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x7d\x6b\x73\x1b\x37\x96\xe8\x77\xfd\x8a\x53\xf1\x07\xcb\x55\x22\x35\xe3\x64\x67\xb3\xba\xb5\x75\x4b\x2b\x27\xb3\x1a\x27\xb6\xd7\x94\x3d\x99\xda\xda\x2a\x81\xdd\x87\x24\xc2\x6e\xa0\x2f\x80\x16\xcd\xdc\xba\xff\xfd\x16\x5e\xfd\x10\xd9\xdd\x00\x45\xda\x9e\x72\xe3\x4b\x62\xaa\x01\x9c\x83\xc7\x79\xe1\x3c\x9e\xc1\xe4\x78\xed\xec\x19\xfc\x42\x13\x64\x12\x53\x50\x1c\xd4\x0a\xe1\xba\x20\xc9\x0a\x61\xc6\x17\x6a\x43\x04\xc2\x [...]
+ compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x7d\x6b\x73\x1b\x37\x96\xe8\x77\xfd\x8a\x53\xf1\x07\xcb\x55\x22\x35\xe3\x64\x67\xb3\xba\xb5\x75\x4b\x2b\x27\xb3\x1a\x27\xb6\xd7\x94\x3d\x99\xda\xda\x2a\x81\xdd\x87\x24\xc2\x6e\xa0\x2f\x80\x16\xcd\xdc\xba\xff\xfd\x16\x5e\xfd\x10\xd9\xdd\x00\x45\xda\x9e\x72\xe3\x4b\x62\xaa\x01\x9c\x83\xc7\x79\xe1\x3c\x9e\xc1\xe4\x78\xed\xec\x19\xfc\x42\x13\x64\x12\x53\x50\x1c\xd4\x0a\xe1\xba\x20\xc9\x0a\x61\xc6\x17\x6a\x43\x04\xc2\x [...]
},
"/crd/bases/camel.apache.org_camelcatalogs.yaml": &vfsgen۰CompressedFileInfo{
name: "camel.apache.org_camelcatalogs.yaml",
diff --git a/pkg/trait/builder.go b/pkg/trait/builder.go
index a0da38970..26202d269 100644
--- a/pkg/trait/builder.go
+++ b/pkg/trait/builder.go
@@ -260,63 +260,6 @@ func (t *builderTrait) Apply(e *Environment) error {
},
Tag: e.IntegrationKit.ResourceVersion,
}})
-
- case v1.IntegrationPlatformBuildPublishStrategyBuildah:
- t.L.Infof("Warning: Buildah publishing strategy is deprecated and may be removed in future releases. Use any alternative publishing strategy.")
- var platform string
- var found bool
- if platform, found = e.Platform.Status.Build.PublishStrategyOptions[builder.BuildahPlatform]; !found {
- platform = ""
- t.L.Infof("Attribute platform for buildah not found, default from host will be used!")
- } else {
- t.L.Infof("User defined %s platform, will be used from buildah!", platform)
- }
- var executorImage string
- if image, found := e.Platform.Status.Build.PublishStrategyOptions[builder.BuildahImage]; found {
- executorImage = image
- t.L.Infof("User defined executor image %s will be used for buildah", image)
- }
- pipelineTasks = append(pipelineTasks, v1.Task{Buildah: &v1.BuildahTask{
- Platform: platform,
- BaseTask: v1.BaseTask{
- Name: "buildah",
- Configuration: *taskConfOrDefault(tasksConf, "buildah"),
- },
- PublishTask: v1.PublishTask{
- Image: imageName,
- Registry: e.Platform.Status.Build.Registry,
- },
- Verbose: t.Verbose,
- ExecutorImage: executorImage,
- }})
- //nolint: staticcheck,nolintlint
- case v1.IntegrationPlatformBuildPublishStrategyKaniko:
- t.L.Infof("Warning: Kaniko publishing strategy is deprecated and may be removed in future releases. Use any alternative publishing strategy.")
- persistentVolumeClaim := e.Platform.Status.Build.PublishStrategyOptions[builder.KanikoPVCName]
- cacheEnabled := e.Platform.Status.Build.IsOptionEnabled(builder.KanikoBuildCacheEnabled)
-
- var executorImage string
- if image, found := e.Platform.Status.Build.PublishStrategyOptions[builder.KanikoExecutorImage]; found {
- executorImage = image
- t.L.Infof("User defined executor image %s will be used for kaniko", image)
- }
-
- pipelineTasks = append(pipelineTasks, v1.Task{Kaniko: &v1.KanikoTask{
- BaseTask: v1.BaseTask{
- Name: "kaniko",
- Configuration: *taskConfOrDefault(tasksConf, "kaniko"),
- },
- PublishTask: v1.PublishTask{
- Image: imageName,
- Registry: e.Platform.Status.Build.Registry,
- },
- Cache: v1.KanikoTaskCache{
- Enabled: &cacheEnabled,
- PersistentVolumeClaim: persistentVolumeClaim,
- },
- Verbose: t.Verbose,
- ExecutorImage: executorImage,
- }})
}
// filter only those tasks required by the user
@@ -618,12 +561,6 @@ func filter(tasks []v1.Task, filterTasks []string) ([]v1.Task, error) {
case t.Jib != nil && t.Jib.Name == f:
filteredTasks = append(filteredTasks, t)
found = true
- case t.Buildah != nil && t.Buildah.Name == f:
- filteredTasks = append(filteredTasks, t)
- found = true
- case t.Kaniko != nil && t.Kaniko.Name == f:
- filteredTasks = append(filteredTasks, t)
- found = true
}
}
@@ -648,10 +585,6 @@ func publishingOrUserTask(t v1.Task) bool {
return true
case t.Jib != nil:
return true
- case t.Buildah != nil:
- return true
- case t.Kaniko != nil:
- return true
}
return false
diff --git a/pkg/trait/builder_test.go b/pkg/trait/builder_test.go
index 0a8224516..d7e4e87f1 100644
--- a/pkg/trait/builder_test.go
+++ b/pkg/trait/builder_test.go
@@ -36,7 +36,6 @@ import (
func TestBuilderTraitNotAppliedBecauseOfNilKit(t *testing.T) {
environments := []*Environment{
createBuilderTestEnv(v1.IntegrationPlatformClusterOpenShift, v1.IntegrationPlatformBuildPublishStrategyS2I, v1.BuildStrategyRoutine),
- createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes, v1.IntegrationPlatformBuildPublishStrategyKaniko, v1.BuildStrategyRoutine),
}
for _, e := range environments {
@@ -58,7 +57,6 @@ func TestBuilderTraitNotAppliedBecauseOfNilKit(t *testing.T) {
func TestBuilderTraitNotAppliedBecauseOfNilPhase(t *testing.T) {
environments := []*Environment{
createBuilderTestEnv(v1.IntegrationPlatformClusterOpenShift, v1.IntegrationPlatformBuildPublishStrategyS2I, v1.BuildStrategyRoutine),
- createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes, v1.IntegrationPlatformBuildPublishStrategyKaniko, v1.BuildStrategyRoutine),
}
for _, e := range environments {
@@ -92,21 +90,6 @@ func TestS2IBuilderTrait(t *testing.T) {
assert.NotNil(t, env.Pipeline[2].S2i)
}
-func TestKanikoBuilderTrait(t *testing.T) {
- env := createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes, v1.IntegrationPlatformBuildPublishStrategyKaniko, v1.BuildStrategyRoutine)
- conditions, err := NewBuilderTestCatalog().apply(env)
-
- assert.Nil(t, err)
- assert.Empty(t, conditions)
- assert.NotEmpty(t, env.ExecutedTraits)
- assert.NotNil(t, env.GetTrait("builder"))
- assert.NotEmpty(t, env.Pipeline)
- assert.Len(t, env.Pipeline, 3)
- assert.NotNil(t, env.Pipeline[0].Builder)
- assert.NotNil(t, env.Pipeline[1].Package)
- assert.NotNil(t, env.Pipeline[2].Kaniko)
-}
-
func createBuilderTestEnv(cluster v1.IntegrationPlatformCluster, strategy v1.IntegrationPlatformBuildPublishStrategy, buildStrategy v1.BuildStrategy) *Environment {
c, err := camel.DefaultCatalog()
if err != nil {
@@ -170,7 +153,7 @@ func NewBuilderTestCatalog() *Catalog {
}
func TestMavenPropertyBuilderTrait(t *testing.T) {
- env := createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes, v1.IntegrationPlatformBuildPublishStrategyKaniko, v1.BuildStrategyRoutine)
+ env := createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes, v1.IntegrationPlatformBuildPublishStrategyS2I, v1.BuildStrategyRoutine)
builderTrait := createNominalBuilderTraitTest()
builderTrait.Properties = append(builderTrait.Properties, "build-time-prop1=build-time-value1")
@@ -256,7 +239,7 @@ func TestCustomTaskBuilderTraitInvalidStrategyOverride(t *testing.T) {
}
func TestMavenProfilesBuilderTrait(t *testing.T) {
- env := createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes, v1.IntegrationPlatformBuildPublishStrategyKaniko, v1.BuildStrategyRoutine)
+ env := createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes, v1.IntegrationPlatformBuildPublishStrategyS2I, v1.BuildStrategyRoutine)
builderTrait := createNominalBuilderTraitTest()
builderTrait.MavenProfiles = []string{"configmap:maven-profile/owasp-profile.xml", "secret:maven-profile-secret"}
@@ -283,7 +266,7 @@ func TestMavenProfilesBuilderTrait(t *testing.T) {
}
func TestInvalidMavenProfilesBuilderTrait(t *testing.T) {
- env := createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes, v1.IntegrationPlatformBuildPublishStrategyKaniko, v1.BuildStrategyRoutine)
+ env := createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes, v1.IntegrationPlatformBuildPublishStrategyS2I, v1.BuildStrategyRoutine)
builderTrait := createNominalBuilderTraitTest()
builderTrait.MavenProfiles = []string{"fakeprofile"}
diff --git a/pkg/util/defaults/defaults.go b/pkg/util/defaults/defaults.go
index bbccb6566..d1d6b84a8 100644
--- a/pkg/util/defaults/defaults.go
+++ b/pkg/util/defaults/defaults.go
@@ -28,12 +28,6 @@ const (
// DefaultRuntimeVersion --
DefaultRuntimeVersion = "3.2.3"
- // BuildahVersion --
- BuildahVersion = "1.30.0"
-
- // KanikoVersion --
- KanikoVersion = "1.9.1"
-
// baseImage --
baseImage = "eclipse-temurin:17"
diff --git a/script/Makefile b/script/Makefile
index 817a65d61..e9d67ef14 100644
--- a/script/Makefile
+++ b/script/Makefile
@@ -24,8 +24,6 @@ VERSION ?= 2.3.0-SNAPSHOT
LAST_RELEASED_IMAGE_NAME := camel-k-operator
LAST_RELEASED_VERSION ?= 2.2.0
DEFAULT_RUNTIME_VERSION := 3.2.3
-BUILDAH_VERSION := 1.30.0
-KANIKO_VERSION := 1.9.1
CONTROLLER_GEN_VERSION := v0.6.1
CODEGEN_VERSION := v0.27.4
OPERATOR_SDK_VERSION := v1.28.0
@@ -180,12 +178,6 @@ codegen:
@echo " // DefaultRuntimeVersion -- " >> $(VERSIONFILE)
@echo " DefaultRuntimeVersion = \"$(DEFAULT_RUNTIME_VERSION)\"" >> $(VERSIONFILE)
@echo "" >> $(VERSIONFILE)
- @echo " // BuildahVersion -- " >> $(VERSIONFILE)
- @echo " BuildahVersion = \"$(BUILDAH_VERSION)\"" >> $(VERSIONFILE)
- @echo "" >> $(VERSIONFILE)
- @echo " // KanikoVersion -- " >> $(VERSIONFILE)
- @echo " KanikoVersion = \"$(KANIKO_VERSION)\"" >> $(VERSIONFILE)
- @echo "" >> $(VERSIONFILE)
@echo " // baseImage -- " >> $(VERSIONFILE)
@echo " baseImage = \"$(BASE_IMAGE)\"" >> $(VERSIONFILE)
@echo "" >> $(VERSIONFILE)
diff --git a/script/update_docs.sh b/script/update_docs.sh
index c64fcb540..0439606dc 100755
--- a/script/update_docs.sh
+++ b/script/update_docs.sh
@@ -40,18 +40,12 @@ else
fi
KAMELETS_DOCS_VERSION="${BASH_REMATCH[1]}.${BASH_REMATCH[2]}.x"
fi
-BUILDAH_VERSION=$(grep '^BUILDAH_VERSION := ' Makefile | sed 's/^.* \?= //')
-KANIKO_VERSION=$(grep '^KANIKO_VERSION := ' Makefile | sed 's/^.* \?= //')
KUSTOMIZE_VERSION=$(grep '^KUSTOMIZE_VERSION := ' Makefile | sed 's/^.* \?= //' | sed 's/^.//')
echo "Camel K Runtime version: $RUNTIME_VERSION"
echo "Kamelets version: $KAMELETS_VERSION"
-echo "Buildah version: $BUILDAH_VERSION"
-echo "Kaniko version: $KANIKO_VERSION"
echo "Kustomize version: $KUSTOMIZE_VERSION"
-yq -i ".asciidoc.attributes.buildah-version = \"$BUILDAH_VERSION\"" $location/../docs/antora.yml
-yq -i ".asciidoc.attributes.kaniko-version = \"$KANIKO_VERSION\"" $location/../docs/antora.yml
yq -i ".asciidoc.attributes.kustomize-version = \"$KUSTOMIZE_VERSION\"" $location/../docs/antora.yml
echo "Scraping information from catalog available at: $CATALOG"