Skip to content

Commit 12331b0

Browse files
committed
chore(deps): Update client-go and controller-runtime
This updates k8s.io/client-go to v0.30.1 and sigs.k8s.io/controller-runtime to v0.18.6. Updating any higher requires updating github.com/argoproj/argo-workflows/v3 which requires updating to Go 1.23 which isn't widely available in base container images yet. Some other dependencies were updated for dependency resolution to succeed. Signed-off-by: mprahl <mprahl@users.noreply.github.com>
1 parent f3cb244 commit 12331b0

31 files changed

+311
-2851
lines changed

.github/workflows/backend.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ jobs:
2121
run-go-unittests:
2222
runs-on: ubuntu-latest
2323
steps:
24-
- name: Install Go
25-
uses: actions/setup-go@v4
26-
with:
27-
go-version: 1.21.x
2824
- name: Checkout code
2925
uses: actions/checkout@v4
26+
- name: Install Go
27+
uses: actions/setup-go@v5
28+
with:
29+
go-version-file: go.mod
3030
- name: "run go unit tests"
3131
run: go test -v -cover ./backend/...
3232
backend-integration:

.github/workflows/presubmit-backend.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ jobs:
2020
uses: actions/checkout@v2
2121

2222
- name: Set up Go
23-
uses: actions/setup-go@v3
23+
uses: actions/setup-go@v5
2424
with:
25-
go-version: '1.21'
25+
go-version-file: go.mod
2626

2727
- name: Run Backend Tests
2828
run: ./test/presubmit-backend-test.sh

backend/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# limitations under the License.
1414

1515
# 1. Build api server application
16-
FROM golang:1.21.7-bookworm as builder
16+
FROM golang:1.22.10-bookworm as builder
1717
RUN apt-get update && apt-get install -y cmake clang musl-dev openssl
1818
WORKDIR /go/src/github.com/kubeflow/pipelines
1919

backend/Dockerfile.cacheserver

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# limitations under the License.
1414

1515
# Dockerfile for building the source code of cache_server
16-
FROM golang:1.21.7-alpine3.19 as builder
16+
FROM golang:1.22.10-alpine3.21 as builder
1717

1818
RUN apk update && apk upgrade && \
1919
apk add --no-cache bash git openssh gcc musl-dev

backend/Dockerfile.conformance

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# limitations under the License.
1414

1515
# Dockerfile for building the source code of conformance tests
16-
FROM golang:1.21.7-alpine3.19 as builder
16+
FROM golang:1.22.10-alpine3.21 as builder
1717

1818
RUN apk update && apk upgrade && \
1919
apk add --no-cache bash git openssh gcc musl-dev

backend/Dockerfile.driver

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
FROM golang:1.21.7-alpine3.19 as builder
15+
FROM golang:1.22.10-alpine3.21 as builder
1616

1717
WORKDIR /go/src/github.com/kubeflow/pipelines
1818

backend/Dockerfile.launcher

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
FROM golang:1.21.7-alpine3.19 as builder
15+
FROM golang:1.22.10-alpine3.21 as builder
1616

1717
WORKDIR /go/src/github.com/kubeflow/pipelines
1818

backend/Dockerfile.persistenceagent

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
FROM golang:1.21.7-alpine3.19 as builder
15+
FROM golang:1.22.10-alpine3.21 as builder
1616

1717
WORKDIR /go/src/github.com/kubeflow/pipelines
1818

backend/Dockerfile.scheduledworkflow

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
FROM golang:1.21.7-alpine3.19 as builder
15+
FROM golang:1.22.10-alpine3.21 as builder
1616

1717
WORKDIR /go/src/github.com/kubeflow/pipelines
1818

backend/Dockerfile.viewercontroller

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
FROM golang:1.21.7-alpine3.19 as builder
15+
FROM golang:1.22.10-alpine3.21 as builder
1616

1717
RUN apk update && apk upgrade
1818
RUN apk add --no-cache git gcc musl-dev

backend/api/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# limitations under the License.
1414

1515
# Generate client code (go & json) from API protocol buffers
16-
FROM golang:1.21 as generator
16+
FROM golang:1.22 as generator
1717
ENV GRPC_GATEWAY_VERSION v1.9.6
1818
ENV GO_SWAGGER_VERSION v0.18.0
1919
ENV GOLANG_PROTOBUF_VERSION v1.5.1

backend/src/agent/persistence/client/scheduled_workflow_client.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ func NewScheduledWorkflowClient(informer v1beta1.ScheduledWorkflowInformer) *Sch
3838
}
3939

4040
// AddEventHandler adds an event handler.
41-
func (c *ScheduledWorkflowClient) AddEventHandler(funcs *cache.ResourceEventHandlerFuncs) {
42-
c.informer.Informer().AddEventHandler(funcs)
41+
func (c *ScheduledWorkflowClient) AddEventHandler(funcs *cache.ResourceEventHandlerFuncs) (cache.ResourceEventHandlerRegistration, error) {
42+
return c.informer.Informer().AddEventHandler(funcs)
4343
}
4444

4545
// HasSynced returns true if the shared informer's store has synced.

backend/src/agent/persistence/client/workflow_client.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ func NewWorkflowClient(informer util.ExecutionInformer) *WorkflowClient {
3737
}
3838

3939
// AddEventHandler adds an event handler.
40-
func (c *WorkflowClient) AddEventHandler(funcs *cache.ResourceEventHandlerFuncs) {
41-
c.informer.AddEventHandler(funcs)
40+
func (c *WorkflowClient) AddEventHandler(funcs *cache.ResourceEventHandlerFuncs) (cache.ResourceEventHandlerRegistration, error) {
41+
return c.informer.AddEventHandler(funcs)
4242
}
4343

4444
// HasSynced returns true if the shared informer's store has synced.

backend/src/agent/persistence/main.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,11 +131,14 @@ func main() {
131131
log.Fatalf("Error creating ML pipeline API Server client: %v", err)
132132
}
133133

134-
controller := NewPersistenceAgent(
134+
controller, err := NewPersistenceAgent(
135135
swfInformerFactory,
136136
execInformer,
137137
pipelineClient,
138138
util.NewRealTime())
139+
if err != nil {
140+
log.Fatalf("Failed to instantiate the controller: %v", err)
141+
}
139142

140143
go swfInformerFactory.Start(stopCh)
141144
go execInformer.InformerFactoryStart(stopCh)

backend/src/agent/persistence/persistence_agent.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ func NewPersistenceAgent(
4646
swfInformerFactory swfinformers.SharedInformerFactory,
4747
execInformer util.ExecutionInformer,
4848
pipelineClient *client.PipelineClient,
49-
time util.TimeInterface) *PersistenceAgent {
49+
time util.TimeInterface,
50+
) (*PersistenceAgent, error) {
5051
// obtain references to shared informers
5152
swfInformer := swfInformerFactory.Scheduledworkflow().V1beta1().ScheduledWorkflows()
5253

@@ -57,12 +58,18 @@ func NewPersistenceAgent(
5758
swfClient := client.NewScheduledWorkflowClient(swfInformer)
5859
workflowClient := client.NewWorkflowClient(execInformer)
5960

60-
swfWorker := worker.NewPersistenceWorker(time, swfregister.Kind, swfInformer.Informer(), true,
61+
swfWorker, err := worker.NewPersistenceWorker(time, swfregister.Kind, swfInformer.Informer(), true,
6162
worker.NewScheduledWorkflowSaver(swfClient, pipelineClient))
63+
if err != nil {
64+
return nil, err
65+
}
6266

63-
workflowWorker := worker.NewPersistenceWorker(time, workflowregister.WorkflowKind,
67+
workflowWorker, err := worker.NewPersistenceWorker(time, workflowregister.WorkflowKind,
6468
execInformer, true,
6569
worker.NewWorkflowSaver(workflowClient, pipelineClient, ttlSecondsAfterWorkflowFinish))
70+
if err != nil {
71+
return nil, err
72+
}
6673

6774
agent := &PersistenceAgent{
6875
swfClient: swfClient,
@@ -73,7 +80,7 @@ func NewPersistenceAgent(
7380

7481
log.Info("Setting up event handlers")
7582

76-
return agent
83+
return agent, nil
7784
}
7885

7986
// Run will set up the event handlers for types we are interested in, as well

backend/src/agent/persistence/worker/persistence_worker.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ func NewPersistenceWorker(
6262
name string,
6363
eventHandler util.ExecutionInformerEventHandler,
6464
enforceRequeueDelays bool,
65-
saver Saver) *PersistenceWorker {
65+
saver Saver,
66+
) (*PersistenceWorker, error) {
6667
worker := &PersistenceWorker{
6768
workqueue: workqueue.NewNamedRateLimitingQueue(
6869
workqueue.NewItemExponentialFailureRateLimiter(DefaultJobBackOff, MaxJobBackOff), name),
@@ -74,15 +75,18 @@ func NewPersistenceWorker(
7475
log.Info("Setting up event handlers")
7576

7677
// Set up an event handler for when the Scheduled Workflow changes
77-
eventHandler.AddEventHandler(&cache.ResourceEventHandlerFuncs{
78+
_, err := eventHandler.AddEventHandler(&cache.ResourceEventHandlerFuncs{
7879
AddFunc: worker.enqueue,
7980
UpdateFunc: func(old, new interface{}) {
8081
worker.enqueue(new)
8182
},
8283
DeleteFunc: worker.enqueueForDelete,
8384
})
85+
if err != nil {
86+
return nil, err
87+
}
8488

85-
return worker
89+
return worker, nil
8690
}
8791

8892
func (p *PersistenceWorker) Shutdown() {

backend/src/agent/persistence/worker/persistence_worker_test.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
client "github.com/kubeflow/pipelines/backend/src/agent/persistence/client"
2323
"github.com/kubeflow/pipelines/backend/src/common/util"
2424
"github.com/stretchr/testify/assert"
25+
"github.com/stretchr/testify/require"
2526
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2627
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
2728
"k8s.io/client-go/tools/cache"
@@ -68,12 +69,13 @@ func TestPersistenceWorker_Success(t *testing.T) {
6869
// Set up peristence worker
6970
saver := NewWorkflowSaver(workflowClient, pipelineClient, 100)
7071
eventHandler := NewFakeEventHandler()
71-
worker := NewPersistenceWorker(
72+
worker, err := NewPersistenceWorker(
7273
util.NewFakeTimeForEpoch(),
7374
"PERSISTENCE_WORKER",
7475
eventHandler,
7576
false,
7677
saver)
78+
require.NoError(t, err)
7779

7880
// Test
7981
eventHandler.handler.OnAdd(workflow, true)
@@ -98,12 +100,13 @@ func TestPersistenceWorker_NotFoundError(t *testing.T) {
98100
// Set up peristence worker
99101
saver := NewWorkflowSaver(workflowClient, pipelineClient, 100)
100102
eventHandler := NewFakeEventHandler()
101-
worker := NewPersistenceWorker(
103+
worker, err := NewPersistenceWorker(
102104
util.NewFakeTimeForEpoch(),
103105
"PERSISTENCE_WORKER",
104106
eventHandler,
105107
false,
106108
saver)
109+
require.NoError(t, err)
107110

108111
// Test
109112
eventHandler.handler.OnAdd(workflow, true)
@@ -129,12 +132,13 @@ func TestPersistenceWorker_GetWorklowError(t *testing.T) {
129132
// Set up peristence worker
130133
saver := NewWorkflowSaver(workflowClient, pipelineClient, 100)
131134
eventHandler := NewFakeEventHandler()
132-
worker := NewPersistenceWorker(
135+
worker, err := NewPersistenceWorker(
133136
util.NewFakeTimeForEpoch(),
134137
"PERSISTENCE_WORKER",
135138
eventHandler,
136139
false,
137140
saver)
141+
require.NoError(t, err)
138142

139143
// Test
140144
eventHandler.handler.OnAdd(workflow, true)
@@ -163,12 +167,13 @@ func TestPersistenceWorker_ReportWorkflowRetryableError(t *testing.T) {
163167
// Set up peristence worker
164168
saver := NewWorkflowSaver(workflowClient, pipelineClient, 100)
165169
eventHandler := NewFakeEventHandler()
166-
worker := NewPersistenceWorker(
170+
worker, err := NewPersistenceWorker(
167171
util.NewFakeTimeForEpoch(),
168172
"PERSISTENCE_WORKER",
169173
eventHandler,
170174
false,
171175
saver)
176+
require.NoError(t, err)
172177

173178
// Test
174179
eventHandler.handler.OnAdd(workflow, true)
@@ -196,12 +201,13 @@ func TestPersistenceWorker_ReportWorkflowNonRetryableError(t *testing.T) {
196201
// Set up peristence worker
197202
saver := NewWorkflowSaver(workflowClient, pipelineClient, 100)
198203
eventHandler := NewFakeEventHandler()
199-
worker := NewPersistenceWorker(
204+
worker, err := NewPersistenceWorker(
200205
util.NewFakeTimeForEpoch(),
201206
"PERSISTENCE_WORKER",
202207
eventHandler,
203208
false,
204209
saver)
210+
require.NoError(t, err)
205211

206212
// Test
207213
eventHandler.handler.OnAdd(workflow, true)

backend/src/crd/controller/scheduledworkflow/client/swf_client.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ func NewScheduledWorkflowClient(clientSet swfclientset.Interface,
4040
}
4141

4242
// AddEventHandler adds an event handler.
43-
func (p *ScheduledWorkflowClient) AddEventHandler(funcs *cache.ResourceEventHandlerFuncs) {
44-
p.informer.Informer().AddEventHandler(funcs)
43+
func (p *ScheduledWorkflowClient) AddEventHandler(funcs *cache.ResourceEventHandlerFuncs) (cache.ResourceEventHandlerRegistration, error) {
44+
return p.informer.Informer().AddEventHandler(funcs)
4545
}
4646

4747
// HasSynced returns true if the shared informer's store has synced.

backend/src/crd/controller/scheduledworkflow/client/workflow_client.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ func NewWorkflowClient(clientSet commonutil.ExecutionClient,
4444
}
4545

4646
// AddEventHandler adds an event handler.
47-
func (p *WorkflowClient) AddEventHandler(funcs *cache.ResourceEventHandlerFuncs) {
48-
p.informer.AddEventHandler(funcs)
47+
func (p *WorkflowClient) AddEventHandler(funcs *cache.ResourceEventHandlerFuncs) (cache.ResourceEventHandlerRegistration, error) {
48+
return p.informer.AddEventHandler(funcs)
4949
}
5050

5151
// HasSynced returns true if the shared informer's store has synced.

backend/src/crd/controller/scheduledworkflow/controller.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ func NewController(
8383
swfInformerFactory swfinformers.SharedInformerFactory,
8484
executionInformer commonutil.ExecutionInformer,
8585
time commonutil.TimeInterface,
86-
location *time.Location) *Controller {
87-
86+
location *time.Location,
87+
) (*Controller, error) {
8888
// obtain references to shared informers
8989
swfInformer := swfInformerFactory.Scheduledworkflow().V1beta1().ScheduledWorkflows()
9090

@@ -112,21 +112,24 @@ func NewController(
112112
log.Info("Setting up event handlers")
113113

114114
// Set up an event handler for when the Scheduled Workflow changes
115-
controller.swfClient.AddEventHandler(&cache.ResourceEventHandlerFuncs{
115+
_, err := controller.swfClient.AddEventHandler(&cache.ResourceEventHandlerFuncs{
116116
AddFunc: controller.enqueueScheduledWorkflow,
117117
UpdateFunc: func(old, new interface{}) {
118118
controller.enqueueScheduledWorkflow(new)
119119
},
120120
DeleteFunc: controller.enqueueScheduledWorkflowForDelete,
121121
})
122+
if err != nil {
123+
return nil, err
124+
}
122125

123126
// Set up an event handler for when WorkflowHistory resources change. This
124127
// handler will lookup the owner of the given WorkflowHistory, and if it is
125128
// owned by a ScheduledWorkflow, it will enqueue that ScheduledWorkflow for
126129
// processing. This way, we don't need to implement custom logic for
127130
// handling WorkflowHistory resources. More info on this pattern:
128131
// https://github.com/kubernetes/community/blob/8cafef897a22026d42f5e5bb3f104febe7e29830/contributors/devel/controllers.md
129-
controller.workflowClient.AddEventHandler(&cache.ResourceEventHandlerFuncs{
132+
_, err = controller.workflowClient.AddEventHandler(&cache.ResourceEventHandlerFuncs{
130133
AddFunc: controller.handleWorkflow,
131134
UpdateFunc: func(old, new interface{}) {
132135
newWorkflow := new.(*workflowapi.Workflow)
@@ -140,8 +143,11 @@ func NewController(
140143
},
141144
DeleteFunc: controller.handleWorkflow,
142145
})
146+
if err != nil {
147+
return nil, err
148+
}
143149

144-
return controller
150+
return controller, nil
145151
}
146152

147153
// Run will set up the event handlers for types we are interested in, as well

backend/src/crd/controller/scheduledworkflow/main.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,14 +85,17 @@ func main() {
8585
scheduleInformerFactory = swfinformers.NewFilteredSharedInformerFactory(scheduleClient, time.Second*30, namespace, nil)
8686
}
8787

88-
controller := NewController(
88+
controller, err := NewController(
8989
kubeClient,
9090
scheduleClient,
9191
execClient,
9292
scheduleInformerFactory,
9393
execInformer,
9494
commonutil.NewRealTime(),
9595
location)
96+
if err != nil {
97+
log.Fatalf("Failed to instantiate the controller: %v", err)
98+
}
9699

97100
go scheduleInformerFactory.Start(stopCh)
98101
go execInformer.InformerFactoryStart(stopCh)

0 commit comments

Comments
 (0)