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 3913d91cf feat(dependencies): removed spectrum strategy
3913d91cf is described below
commit 3913d91cf32902c11dda4e9ef7264d96408fdc3b
Author: Pasquale Congiusti <[email protected]>
AuthorDate: Fri Aug 15 09:08:54 2025 +0200
feat(dependencies): removed spectrum strategy
Closes #5762
---
docs/modules/ROOT/pages/pipeline/pipeline.adoc | 2 +-
docs/modules/ROOT/partials/apis/camel-k-crds.adoc | 1 +
go.mod | 9 --
go.sum | 19 ---
pkg/apis/camel/v1/build_types.go | 1 +
pkg/apis/camel/v1/build_types_support.go | 3 -
pkg/apis/camel/v1/integrationplatform_types.go | 5 -
pkg/builder/builder_test.go | 32 -----
pkg/builder/spectrum.go | 151 ----------------------
pkg/builder/tasks.go | 12 --
pkg/controller/build/build_pod.go | 2 -
pkg/controller/build/monitor_pod.go | 4 +-
pkg/controller/build/monitor_routine.go | 6 -
pkg/trait/builder.go | 22 ----
pkg/trait/builder_test.go | 17 +--
15 files changed, 11 insertions(+), 275 deletions(-)
diff --git a/docs/modules/ROOT/pages/pipeline/pipeline.adoc
b/docs/modules/ROOT/pages/pipeline/pipeline.adoc
index 6712c940d..2aa77dc5d 100644
--- a/docs/modules/ROOT/pages/pipeline/pipeline.adoc
+++ b/docs/modules/ROOT/pages/pipeline/pipeline.adoc
@@ -37,7 +37,7 @@ spec:
command: cat maven/pom.xml
image: alpine
name: custom2
- - spectrum:
+ - jib:
...
```
The custom tasks will be executed in the directory where the Camel K runtime
Maven project was generated. In this example we're creating 2 tasks to retrieve
certain values from the project just for the scope of illustrating the feature.
For each task you need to specify a name, the container image which you want to
use to run, the command to execute and (optionally) the user ID that has to run
in the container.
diff --git a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
index 0eacd3960..15841cda0 100644
--- a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
+++ b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
@@ -5656,6 +5656,7 @@ SourceType represents an available source type.
* <<#_camel_apache_org_v1_Task, Task>>
SpectrumTask is used to configure Spectrum.
+Deprecated: no longer in use.
[cols="2,2a",options="header"]
|===
diff --git a/go.mod b/go.mod
index 2a91e7f05..2e587c6fc 100644
--- a/go.mod
+++ b/go.mod
@@ -5,7 +5,6 @@ go 1.24.6
require (
dario.cat/mergo v1.0.2
github.com/Masterminds/semver v1.5.0
- github.com/container-tools/spectrum v0.6.68
github.com/evanphx/json-patch v5.9.11+incompatible
github.com/fsnotify/fsnotify v1.9.0
github.com/gertd/go-pluralize v0.2.1
@@ -72,12 +71,8 @@ require (
github.com/cloudevents/sdk-go/sql/v2 v2.15.2 // indirect
github.com/cloudevents/sdk-go/v2 v2.15.2 // indirect
github.com/cloudflare/circl v1.6.1 // indirect
- github.com/containerd/stargz-snapshotter/estargz v0.16.3 // indirect
github.com/cyphar/filepath-securejoin v0.4.1 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc //
indirect
- github.com/docker/cli v27.5.0+incompatible // indirect
- github.com/docker/distribution v2.8.3+incompatible // indirect
- github.com/docker/docker-credential-helpers v0.8.2 // indirect
github.com/emicklei/go-restful/v3 v3.12.1 // indirect
github.com/emirpasic/gods v1.18.1 // indirect
github.com/evanphx/json-patch/v5 v5.9.11 // indirect
@@ -107,10 +102,8 @@ require (
github.com/json-iterator/go v1.1.12 // indirect
github.com/kelseyhightower/envconfig v1.4.0 // indirect
github.com/kevinburke/ssh_config v1.2.0 // indirect
- github.com/klauspost/compress v1.18.0 // indirect
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de //
indirect
github.com/mailru/easyjson v0.9.0 // indirect
- github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/moby/spdystream v0.5.0 // indirect
github.com/moby/term v0.5.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd //
indirect
@@ -118,7 +111,6 @@ require (
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 //
indirect
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f //
indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
- github.com/opencontainers/image-spec v1.1.0 // indirect
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
github.com/pjbgf/sha1cd v0.3.2 // indirect
github.com/pkg/errors v0.9.1 // indirect
@@ -135,7 +127,6 @@ require (
github.com/spf13/afero v1.12.0 // indirect
github.com/spf13/cast v1.7.1 // indirect
github.com/subosito/gotenv v1.6.0 // indirect
- github.com/vbatts/tar-split v0.11.6 // indirect
github.com/x448/float16 v0.8.4 // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect
go.opencensus.io v0.24.0 // indirect
diff --git a/go.sum b/go.sum
index 62ccf93d5..e0f36d21d 100644
--- a/go.sum
+++ b/go.sum
@@ -89,10 +89,6 @@ github.com/cloudevents/sdk-go/v2 v2.15.2/go.mod
h1:lL7kSWAE/V8VI4Wh0jbL2v/jvqsm6
github.com/cloudflare/circl v1.6.1
h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0=
github.com/cloudflare/circl v1.6.1/go.mod
h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod
h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
-github.com/container-tools/spectrum v0.6.68
h1:XvhGZM4Qjv1m9zo+n7jSMtvGS3d34MtA84+3mq59wuo=
-github.com/container-tools/spectrum v0.6.68/go.mod
h1:RIk+OvLAeLuBrQxUSr2Nn6L3VDvrN67BccmPEQlnPZ4=
-github.com/containerd/stargz-snapshotter/estargz v0.16.3
h1:7evrXtoh1mSbGj/pfRccTampEyKpjpOnS3CyiV1Ebr8=
-github.com/containerd/stargz-snapshotter/estargz v0.16.3/go.mod
h1:uyr4BfYfOj3G9WBVE8cOlQmXAbPN9VEQpBBeJIuOipU=
github.com/coreos/go-oidc/v3 v3.9.0
h1:0J/ogVOd4y8P0f0xUh8l9t07xRP/d8tccvjHl2dcsSo=
github.com/coreos/go-oidc/v3 v3.9.0/go.mod
h1:rTKz2PYwftcrtoCzV5g5kvfJoWcm0Mk8AF8y1iAQro4=
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod
h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
@@ -104,12 +100,6 @@ github.com/davecgh/go-spew v1.1.0/go.mod
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
github.com/davecgh/go-spew v1.1.1/go.mod
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/docker/cli v27.5.0+incompatible
h1:aMphQkcGtpHixwwhAXJT1rrK/detk2JIvDaFkLctbGM=
-github.com/docker/cli v27.5.0+incompatible/go.mod
h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
-github.com/docker/distribution v2.8.3+incompatible
h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=
-github.com/docker/distribution v2.8.3+incompatible/go.mod
h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
-github.com/docker/docker-credential-helpers v0.8.2
h1:bX3YxiGzFP5sOXWc3bTPEXdEaZSeVMrFgOr3T+zrFAo=
-github.com/docker/docker-credential-helpers v0.8.2/go.mod
h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M=
github.com/elazarl/goproxy v1.7.2
h1:Y2o6urb7Eule09PjlhQRGNsqRfPmYI3KKQLFpCAV3+o=
github.com/elazarl/goproxy v1.7.2/go.mod
h1:82vkLNir0ALaW14Rc399OTTjyNREgmdL2cVoIbS6XaE=
github.com/emicklei/go-restful/v3 v3.12.1
h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtzpL63nKAU=
@@ -324,8 +314,6 @@ github.com/mattn/go-shellwords v1.0.12
h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebG
github.com/mattn/go-shellwords v1.0.12/go.mod
h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y=
github.com/mattn/goveralls v0.0.2/go.mod
h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod
h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
-github.com/mitchellh/go-homedir v1.1.0
h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
-github.com/mitchellh/go-homedir v1.1.0/go.mod
h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
github.com/moby/spdystream v0.5.0
h1:7r0J1Si3QO/kjRitvSLVVFUjxMEb/YLj6S9FF62JBCU=
github.com/moby/spdystream v0.5.0/go.mod
h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI=
github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0=
@@ -355,8 +343,6 @@ github.com/onsi/gomega v1.38.0
h1:c/WX+w8SLAinvuKKQFh77WEucCnPk4j2OTUr7lt7BeY=
github.com/onsi/gomega v1.38.0/go.mod
h1:OcXcwId0b9QsE7Y49u+BTrL4IdKOBOKnD6VQNTJEB6o=
github.com/opencontainers/go-digest v1.0.0
h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
github.com/opencontainers/go-digest v1.0.0/go.mod
h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
-github.com/opencontainers/image-spec v1.1.0
h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug=
-github.com/opencontainers/image-spec v1.1.0/go.mod
h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM=
github.com/openshift/api v0.0.0-20240228005710-4511c790cc60
h1:BfN2JThYjmpXhULHahY1heyfct+fsj4fhkUo3tVIGH4=
github.com/openshift/api v0.0.0-20240228005710-4511c790cc60/go.mod
h1:qNtV0315F+f8ld52TLtPvrfivZpdimOzTi3kn9IVbtU=
github.com/operator-framework/api v0.31.0
h1:tRsFTuZ51xD8U5QgiPo3+mZgVipHZVgRXYrI6RRXOh8=
@@ -472,8 +458,6 @@ github.com/subosito/gotenv v1.6.0
h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8
github.com/subosito/gotenv v1.6.0/go.mod
h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
github.com/valyala/bytebufferpool v1.0.0
h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod
h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
-github.com/vbatts/tar-split v0.11.6
h1:4SjTW5+PU11n6fZenf2IPoV8/tz3AaYHMWjf23envGs=
-github.com/vbatts/tar-split v0.11.6/go.mod
h1:dqKNtesIOr2j2Qv3W/cHjnvk9I8+G7oAkFDFN6TCBEI=
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod
h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/xanzy/ssh-agent v0.3.3
h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM=
@@ -854,9 +838,6 @@ gopkg.in/yaml.v2 v2.4.0/go.mod
h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod
h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gotest.tools v2.2.0+incompatible
h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
-gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0=
-gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod
h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod
h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod
h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
diff --git a/pkg/apis/camel/v1/build_types.go b/pkg/apis/camel/v1/build_types.go
index 4c7a5b479..fd07269ce 100644
--- a/pkg/apis/camel/v1/build_types.go
+++ b/pkg/apis/camel/v1/build_types.go
@@ -183,6 +183,7 @@ type JibTask struct {
}
// SpectrumTask is used to configure Spectrum.
+// Deprecated: no longer in use.
type SpectrumTask struct {
BaseTask `json:",inline"`
PublishTask `json:",inline"`
diff --git a/pkg/apis/camel/v1/build_types_support.go
b/pkg/apis/camel/v1/build_types_support.go
index fe3623bb1..daaf2eba8 100644
--- a/pkg/apis/camel/v1/build_types_support.go
+++ b/pkg/apis/camel/v1/build_types_support.go
@@ -97,9 +97,6 @@ func ConfigurationTasksByName(tasks []Task, name string)
*BuildConfiguration {
if t.Package != nil && t.Package.Name == name {
return &t.Package.Configuration
}
- if t.Spectrum != nil && t.Spectrum.Name == name {
- return &t.Spectrum.Configuration
- }
if t.S2i != nil && t.S2i.Name == name {
return &t.S2i.Configuration
}
diff --git a/pkg/apis/camel/v1/integrationplatform_types.go
b/pkg/apis/camel/v1/integrationplatform_types.go
index 839a391a0..0abef994f 100644
--- a/pkg/apis/camel/v1/integrationplatform_types.go
+++ b/pkg/apis/camel/v1/integrationplatform_types.go
@@ -155,10 +155,6 @@ const (
// provided by an OpenShift cluster in order to create and push the
images to the registry. It is the default choice on OpenShift cluster.
// Deprecated: use jib or a custom publishing strategy instead.
IntegrationPlatformBuildPublishStrategyS2I
IntegrationPlatformBuildPublishStrategy = "S2I"
- // IntegrationPlatformBuildPublishStrategySpectrum uses Spectrum
project (https://github.com/container-tools/spectrum)
- // in order to push the incremental images to the image repository. It
is the default choice on vanilla Kubernetes cluster.
- // Deprecated: use jib or a custom publishing strategy instead.
- IntegrationPlatformBuildPublishStrategySpectrum
IntegrationPlatformBuildPublishStrategy = "Spectrum"
// IntegrationPlatformBuildPublishStrategyJib uses Jib maven plugin
(https://github.com/GoogleContainerTools/jib)
// in order to push the incremental images to the image repository.
IntegrationPlatformBuildPublishStrategyJib
IntegrationPlatformBuildPublishStrategy = "Jib"
@@ -167,7 +163,6 @@ const (
// IntegrationPlatformBuildPublishStrategies the list of all available publish
strategies.
var IntegrationPlatformBuildPublishStrategies =
[]IntegrationPlatformBuildPublishStrategy{
IntegrationPlatformBuildPublishStrategyS2I,
- IntegrationPlatformBuildPublishStrategySpectrum,
IntegrationPlatformBuildPublishStrategyJib,
}
diff --git a/pkg/builder/builder_test.go b/pkg/builder/builder_test.go
index adcc070e7..716f013b7 100644
--- a/pkg/builder/builder_test.go
+++ b/pkg/builder/builder_test.go
@@ -137,35 +137,3 @@ func TestJibPublishingFailure(t *testing.T) {
assert.Equal(t, "base-image", status.BaseImage)
assert.Equal(t, "root-image", status.RootImage)
}
-
-func TestSpectrumPublishingFailure(t *testing.T) {
- c, err := internal.NewFakeClient()
- require.NoError(t, err)
- b := New(c)
- build := &v1.Build{
- Spec: v1.BuildSpec{
- Tasks: []v1.Task{
- {
- Spectrum: &v1.SpectrumTask{
- BaseTask: v1.BaseTask{
- Name: "spectrum",
- },
- PublishTask: v1.PublishTask{
- BaseImage: "base-image",
- },
- },
- },
- },
- },
- Status: v1.BuildStatus{
- RootImage: "root-image",
- },
- }
-
- ctx := newContext()
- status := b.Build(build).TaskByName("spectrum").Do(ctx)
- assert.Equal(t, v1.BuildPhaseFailed, status.Phase)
- assert.NotEmpty(t, status.Error)
- assert.Equal(t, "base-image", status.BaseImage)
- assert.Equal(t, "root-image", status.RootImage)
-}
diff --git a/pkg/builder/spectrum.go b/pkg/builder/spectrum.go
deleted file mode 100644
index 1f78f7e48..000000000
--- a/pkg/builder/spectrum.go
+++ /dev/null
@@ -1,151 +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 (
- "bufio"
- "context"
- "io"
- "os"
- "path/filepath"
- "runtime"
- "strings"
-
- spectrum "github.com/container-tools/spectrum/pkg/builder"
-
- v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
- "github.com/apache/camel-k/v2/pkg/client"
- "github.com/apache/camel-k/v2/pkg/util"
- "github.com/apache/camel-k/v2/pkg/util/log"
- "github.com/apache/camel-k/v2/pkg/util/registry"
-)
-
-type spectrumTask struct {
- c client.Client
- build *v1.Build
- task *v1.SpectrumTask
-}
-
-var _ Task = &spectrumTask{}
-
-func (t *spectrumTask) Do(ctx context.Context) v1.BuildStatus {
- status := initializeStatusFrom(t.build.Status, t.task.BaseImage)
-
- contextDir := t.task.ContextDir
- if contextDir == "" {
- // Use the working directory.
- // This is useful when the task is executed in-container,
- // so that its WorkingDir can be used to share state and
- // coordinate with other tasks.
- pwd, err := os.Getwd()
- if err != nil {
- return status.Failed(err)
- }
- contextDir = filepath.Join(pwd, ContextDir)
- }
-
- log.Infof("Running spectrum task in context directory: %s", contextDir)
-
- exists, err := util.DirectoryExists(contextDir)
- if err != nil {
- return status.Failed(err)
- }
- empty, err := util.DirectoryEmpty(contextDir)
- if err != nil {
- return status.Failed(err)
- }
- if !exists || empty {
- // this can only indicate that there are no more resources to
add to the base image,
- // because transitive resolution is the same even if spec
differs.
- status.Image = status.BaseImage
- log.Infof("No new image to build, reusing existing image %s",
status.Image)
- return *status
- }
-
- pullInsecure := t.task.Registry.Insecure // incremental build case
-
- log.Debugf("Registry address: %s", t.task.Registry.Address)
- log.Debugf("Base image: %s", status.BaseImage)
-
- if !strings.HasPrefix(status.BaseImage, t.task.Registry.Address) {
- if pullInsecure {
- log.Info("Assuming secure pull because the registry for
the base image and the main registry are different")
- pullInsecure = false
- }
- }
-
- registryConfigDir := ""
- if t.task.Registry.Secret != "" {
- registryConfigDir, err =
registry.MountSecretRegistryConfig(ctx, t.c, t.build.Namespace,
"spectrum-secret-", t.task.Registry.Secret)
- if err != nil {
- return status.Failed(err)
- }
- }
-
- newStdR, newStdW, pipeErr := os.Pipe()
- defer util.CloseQuietly(newStdW)
-
- if pipeErr != nil {
- // In the unlikely case of an error, use stdout instead of
aborting
- log.Errorf(pipeErr, "Unable to remap I/O. Spectrum messages
will be displayed on the stdout")
- newStdW = os.Stdout
- }
-
- options := spectrum.Options{
- PullInsecure: pullInsecure,
- PushInsecure: t.task.Registry.Insecure,
- PullConfigDir: registryConfigDir,
- PushConfigDir: registryConfigDir,
- Base: status.BaseImage,
- Target: t.task.Image,
- Stdout: newStdW,
- Stderr: newStdW,
- Recursive: true,
- }
-
- if jobs := runtime.GOMAXPROCS(0); jobs > 1 {
- options.Jobs = jobs
- }
-
- go readSpectrumLogs(newStdR)
- digest, err := spectrum.Build(options,
contextDir+":"+filepath.Join(DeploymentDir)) //nolint
- if err != nil {
- _ = os.RemoveAll(registryConfigDir)
- return status.Failed(err)
- }
-
- status.Image = t.task.Image
- status.Digest = digest
-
- if registryConfigDir != "" {
- if err := os.RemoveAll(registryConfigDir); err != nil {
- return status.Failed(err)
- }
- }
-
- return *status
-}
-
-func readSpectrumLogs(newStdOut io.Reader) {
- scanner := bufio.NewScanner(newStdOut)
-
- for scanner.Scan() {
- line := scanner.Text()
- log.Info(line)
- }
-}
diff --git a/pkg/builder/tasks.go b/pkg/builder/tasks.go
index 2e18403ce..8524bd49a 100644
--- a/pkg/builder/tasks.go
+++ b/pkg/builder/tasks.go
@@ -55,12 +55,6 @@ func (b *Build) Task(task v1.Task) Task {
build: b.build,
task: task.Package,
}
- case task.Spectrum != nil:
- return &spectrumTask{
- c: b.builder.client,
- build: b.build,
- task: task.Spectrum,
- }
case task.S2i != nil:
return &s2iTask{
c: b.builder.client,
@@ -140,12 +134,6 @@ func (b *Build) TaskByName(name string) Task {
build: b.build,
task: task.Package,
}
- case task.Spectrum != nil && task.Spectrum.Name == name:
- return &spectrumTask{
- c: b.builder.client,
- build: b.build,
- task: task.Spectrum,
- }
case task.S2i != nil && task.S2i.Name == name:
return &s2iTask{
c: b.builder.client,
diff --git a/pkg/controller/build/build_pod.go
b/pkg/controller/build/build_pod.go
index 2b2b87798..a903fe38d 100644
--- a/pkg/controller/build/build_pod.go
+++ b/pkg/controller/build/build_pod.go
@@ -93,8 +93,6 @@ func newBuildPod(ctx context.Context, client client.Client,
build *v1.Build) *co
addBuildTaskToPod(ctx, client, build,
task.Package.Name, pod)
case task.S2i != nil:
addBuildTaskToPod(ctx, client, build, task.S2i.Name,
pod)
- case task.Spectrum != nil:
- addBuildTaskToPod(ctx, client, build,
task.Spectrum.Name, pod)
case task.Jib != nil:
addBuildTaskToPod(ctx, client, build, task.Jib.Name,
pod)
}
diff --git a/pkg/controller/build/monitor_pod.go
b/pkg/controller/build/monitor_pod.go
index 5febc6118..3a9c97c07 100644
--- a/pkg/controller/build/monitor_pod.go
+++ b/pkg/controller/build/monitor_pod.go
@@ -358,8 +358,6 @@ func publishTaskName(tasks []v1.Task) string {
switch {
case t.Custom != nil:
return t.Custom.Name
- case t.Spectrum != nil:
- return t.Spectrum.Name
case t.Jib != nil:
return t.Jib.Name
case t.S2i != nil:
@@ -382,5 +380,5 @@ func publishTaskDigest(tasks []v1.Task, cntStates
[]corev1.ContainerStatus) stri
func operatorSupportedPublishingStrategy(tasks []v1.Task) bool {
taskName := publishTaskName(tasks)
- return taskName == "jib" || taskName == "spectrum" || taskName == "s2i"
+ return taskName == "jib" || taskName == "s2i"
}
diff --git a/pkg/controller/build/monitor_routine.go
b/pkg/controller/build/monitor_routine.go
index 10975594a..ff7550e7a 100644
--- a/pkg/controller/build/monitor_routine.go
+++ b/pkg/controller/build/monitor_routine.go
@@ -144,12 +144,6 @@ tasks:
break tasks
}
t.BuildDir = buildDir
- } else if t := task.Spectrum; t != nil && t.ContextDir
== "" {
- if buildDir == "" {
- status.Failed(fmt.Errorf("cannot
determine context directory for task %s", t.Name))
- break tasks
- }
- t.ContextDir = filepath.Join(buildDir,
builder.ContextDir)
} else if t := task.S2i; t != nil && t.ContextDir == ""
{
if buildDir == "" {
status.Failed(fmt.Errorf("cannot
determine context directory for task %s", t.Name))
diff --git a/pkg/trait/builder.go b/pkg/trait/builder.go
index 3665e2a55..e09c36c2c 100644
--- a/pkg/trait/builder.go
+++ b/pkg/trait/builder.go
@@ -88,14 +88,9 @@ func (t *builderTrait) Matches(trait Trait) bool {
return slices.Equal(srtThisTasks, srtOtheTasks)
}
-//nolint:nestif
func (t *builderTrait) Configure(e *Environment) (bool, *TraitCondition,
error) {
if e.IntegrationKit != nil ||
e.IntegrationInPhase(v1.IntegrationPhaseBuildSubmitted) {
condition := t.adaptDeprecatedFields()
- if e.Platform.Status.Build.PublishStrategy ==
v1.IntegrationPlatformBuildPublishStrategySpectrum {
- condition = newOrAppend(condition, "Spectrum publishing
strategy is deprecated and may be removed in future releases. "+
- "Make sure to use any supported publishing
strategy instead.")
- }
t.setPlatform(e)
if e.IntegrationKit != nil &&
!e.IntegrationKitInPhase(v1.IntegrationKitPhaseBuildSubmitted) {
return false, condition, nil
@@ -264,18 +259,6 @@ func (t *builderTrait) Apply(e *Environment) error {
// Publishing task
tag := getTag(e)
switch e.Platform.Status.Build.PublishStrategy {
- case v1.IntegrationPlatformBuildPublishStrategySpectrum:
- pipelineTasks = append(pipelineTasks, v1.Task{Spectrum:
&v1.SpectrumTask{
- BaseTask: v1.BaseTask{
- Name: "spectrum",
- Configuration: *taskConfOrDefault(tasksConf,
"spectrum"),
- },
- PublishTask: v1.PublishTask{
- BaseImage: t.getBaseImage(e),
- Image: imageName,
- Registry: e.Platform.Status.Build.Registry,
- },
- }})
case v1.IntegrationPlatformBuildPublishStrategyJib:
jibTask := v1.Task{Jib: &v1.JibTask{
@@ -664,9 +647,6 @@ func filter(tasks []v1.Task, filterTasks []string)
([]v1.Task, error) {
case t.Package != nil && t.Package.Name == f:
filteredTasks = append(filteredTasks, t)
found = true
- case t.Spectrum != nil && t.Spectrum.Name == f:
- filteredTasks = append(filteredTasks, t)
- found = true
case t.S2i != nil && t.S2i.Name == f:
filteredTasks = append(filteredTasks, t)
found = true
@@ -693,8 +673,6 @@ func publishingOrUserTask(t v1.Task) bool {
switch {
case t.Custom != nil:
return true
- case t.Spectrum != nil:
- return true
case t.Jib != nil:
return true
}
diff --git a/pkg/trait/builder_test.go b/pkg/trait/builder_test.go
index 44e6942ac..067e91ff2 100644
--- a/pkg/trait/builder_test.go
+++ b/pkg/trait/builder_test.go
@@ -176,7 +176,7 @@ func createNominalBuilderTraitTest() *builderTrait {
}
func TestCustomTaskBuilderTrait(t *testing.T) {
- env := createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes,
v1.IntegrationPlatformBuildPublishStrategySpectrum, v1.BuildStrategyPod)
+ env := createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes,
v1.IntegrationPlatformBuildPublishStrategyJib, v1.BuildStrategyPod)
builderTrait := createNominalBuilderTraitTest()
builderTrait.Tasks = append(builderTrait.Tasks, "test;alpine;ls")
@@ -186,7 +186,7 @@ func TestCustomTaskBuilderTrait(t *testing.T) {
builderTask := findCustomTaskByName(env.Pipeline, "builder")
customTask := findCustomTaskByName(env.Pipeline, "test")
packageTask := findCustomTaskByName(env.Pipeline, "package")
- publisherTask := findCustomTaskByName(env.Pipeline, "spectrum")
+ publisherTask := findCustomTaskByName(env.Pipeline, "jib")
assert.NotNil(t, builderTask)
assert.NotNil(t, customTask)
@@ -199,7 +199,7 @@ func TestCustomTaskBuilderTrait(t *testing.T) {
}
func TestCustomTaskBuilderTraitValidStrategyOverride(t *testing.T) {
- env := createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes,
v1.IntegrationPlatformBuildPublishStrategySpectrum, v1.BuildStrategyRoutine)
+ env := createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes,
v1.IntegrationPlatformBuildPublishStrategyJib, v1.BuildStrategyRoutine)
builderTrait := createNominalBuilderTraitTest()
builderTrait.Tasks = append(builderTrait.Tasks, "test;alpine;ls")
builderTrait.Strategy = "pod"
@@ -217,7 +217,7 @@ func TestCustomTaskBuilderTraitValidStrategyOverride(t
*testing.T) {
}
func TestCustomTaskBuilderTraitInvalidStrategy(t *testing.T) {
- env := createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes,
v1.IntegrationPlatformBuildPublishStrategySpectrum, v1.BuildStrategyRoutine)
+ env := createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes,
v1.IntegrationPlatformBuildPublishStrategyJib, v1.BuildStrategyRoutine)
builderTrait := createNominalBuilderTraitTest()
builderTrait.Tasks = append(builderTrait.Tasks, "test;alpine;ls")
@@ -231,7 +231,7 @@ func TestCustomTaskBuilderTraitInvalidStrategy(t
*testing.T) {
}
func TestCustomTaskBuilderTraitInvalidStrategyOverride(t *testing.T) {
- env := createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes,
v1.IntegrationPlatformBuildPublishStrategySpectrum, v1.BuildStrategyPod)
+ env := createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes,
v1.IntegrationPlatformBuildPublishStrategyJib, v1.BuildStrategyPod)
builderTrait := createNominalBuilderTraitTest()
builderTrait.Tasks = append(builderTrait.Tasks, "test;alpine;ls")
builderTrait.Strategy = "routine"
@@ -351,7 +351,7 @@ func TestBuilderCustomTasksConfiguration(t *testing.T) {
builderTrait.TasksRequestCPU = append(builderTrait.TasksRequestCPU,
"builder:1000m")
builderTrait.TasksLimitCPU = append(builderTrait.TasksLimitCPU,
"custom1:500m")
builderTrait.TasksRequestMemory =
append(builderTrait.TasksRequestMemory, "package:8Gi")
- builderTrait.TasksLimitMemory = append(builderTrait.TasksLimitMemory,
"spectrum:4Gi")
+ builderTrait.TasksLimitMemory = append(builderTrait.TasksLimitMemory,
"jib:4Gi")
tasksConf, err := builderTrait.parseTasksConf(&v1.BuildConfiguration{})
@@ -360,7 +360,7 @@ func TestBuilderCustomTasksConfiguration(t *testing.T) {
assert.Equal(t, "1000m", tasksConf["builder"].RequestCPU)
assert.Equal(t, "500m", tasksConf["custom1"].LimitCPU)
assert.Equal(t, "8Gi", tasksConf["package"].RequestMemory)
- assert.Equal(t, "4Gi", tasksConf["spectrum"].LimitMemory)
+ assert.Equal(t, "4Gi", tasksConf["jib"].LimitMemory)
}
func TestBuilderCustomTasksConfigurationError(t *testing.T) {
@@ -596,9 +596,6 @@ func tasksByName(tasks []v1.Task) []string {
if t.S2i != nil {
pipelineTasks[i] = t.S2i.Name
}
- if t.Spectrum != nil {
- pipelineTasks[i] = t.Spectrum.Name
- }
if t.Jib != nil {
pipelineTasks[i] = t.Jib.Name
}