Skip to content

Commit b666fa2

Browse files
authored
feat: propagate runtime contexts through volume, configmap, and exec paths (#5747)
Signed-off-by: CAICAIIs <3360776475@qq.com>
1 parent 0956e64 commit b666fa2

83 files changed

Lines changed: 1014 additions & 683 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

pkg/controllers/fake_engine_core_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,12 @@ limitations under the License.
1717
package controllers
1818

1919
import (
20-
ctrl "sigs.k8s.io/controller-runtime"
20+
"context"
2121

2222
datav1alpha1 "github.com/fluid-cloudnative/fluid/api/v1alpha1"
2323
"github.com/fluid-cloudnative/fluid/pkg/dataoperation"
2424
cruntime "github.com/fluid-cloudnative/fluid/pkg/runtime"
25+
ctrl "sigs.k8s.io/controller-runtime"
2526
)
2627

2728
type fakeEngineCore struct {
@@ -36,9 +37,9 @@ func (e *fakeEngineCore) Setup(ctx cruntime.ReconcileRequestContext) (bool, erro
3637
return true, nil
3738
}
3839

39-
func (e *fakeEngineCore) CreateVolume() error { return nil }
40+
func (e *fakeEngineCore) CreateVolume(ctx context.Context) error { return nil }
4041

41-
func (e *fakeEngineCore) DeleteVolume() error { return nil }
42+
func (e *fakeEngineCore) DeleteVolume(ctx context.Context) error { return nil }
4243

4344
func (e *fakeEngineCore) Sync(ctx cruntime.ReconcileRequestContext) error { return nil }
4445

pkg/controllers/runtime_controller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ func (r *RuntimeReconciler) ReconcileRuntimeDeletion(engine base.Engine, ctx cru
187187
log.V(1).Info("process the Runtime Deletion", "Runtime", ctx.NamespacedName)
188188

189189
// 0. Delete the volume
190-
err := engine.DeleteVolume()
190+
err := engine.DeleteVolume(ctx)
191191
if err != nil {
192192
r.Recorder.Eventf(ctx.Runtime, corev1.EventTypeWarning, common.ErrorProcessRuntimeReason, "Failed to delete volume %v", err)
193193
// return utils.RequeueIfError(errors.Wrap(err, "Failed to delete volume"))
@@ -288,7 +288,7 @@ func (r *RuntimeReconciler) ReconcileRuntime(engine base.Engine, ctx cruntime.Re
288288
}
289289

290290
// 2.Setup the volume
291-
err = engine.CreateVolume()
291+
err = engine.CreateVolume(ctx)
292292
if err != nil && utils.IgnoreAlreadyExists(err) != nil {
293293
r.Recorder.Eventf(ctx.Runtime, corev1.EventTypeWarning, common.ErrorProcessRuntimeReason, "Failed to setup volume due to error %v", err)
294294
log.Error(err, "Failed to setup the volume")

pkg/controllers/runtime_controller_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -671,12 +671,12 @@ func (e *testEngine) Setup(cruntime.ReconcileRequestContext) (bool, error) {
671671
return e.setupReady, e.setupErr
672672
}
673673

674-
func (e *testEngine) CreateVolume() error {
674+
func (e *testEngine) CreateVolume(context.Context) error {
675675
e.createVolumeCalls++
676676
return e.createVolumeErr
677677
}
678678

679-
func (e *testEngine) DeleteVolume() error {
679+
func (e *testEngine) DeleteVolume(context.Context) error {
680680
e.deleteVolumeCalls++
681681
return e.deleteVolumeErr
682682
}

pkg/controllers/v1alpha1/efc/implement_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ type mockEngine struct{}
4545
func (m *mockEngine) ID() string { return "mock" }
4646
func (m *mockEngine) Shutdown() error { return nil }
4747
func (m *mockEngine) Setup(_ cruntime.ReconcileRequestContext) (bool, error) { return true, nil }
48-
func (m *mockEngine) CreateVolume() error { return nil }
49-
func (m *mockEngine) DeleteVolume() error { return nil }
48+
func (m *mockEngine) CreateVolume(_ context.Context) error { return nil }
49+
func (m *mockEngine) DeleteVolume(_ context.Context) error { return nil }
5050
func (m *mockEngine) Sync(_ cruntime.ReconcileRequestContext) error { return nil }
5151
func (m *mockEngine) Validate(_ cruntime.ReconcileRequestContext) error { return nil }
5252
func (m *mockEngine) Operate(_ cruntime.ReconcileRequestContext, _ *datav1alpha1.OperationStatus, _ dataoperation.OperationInterface) (ctrl.Result, error) {

pkg/controllers/v1alpha1/fluidapp/implement.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package fluidapp
1818

1919
import (
20+
"context"
2021
"strings"
2122

2223
"github.com/go-logr/logr"
@@ -79,7 +80,7 @@ func (i *FluidAppReconcilerImplement) umountFuseSidecar(pod *corev1.Pod, fuseCon
7980
}
8081

8182
i.Log.Info("exec cmd in pod fuse container", "cmd", cmd, "podName", pod.Name, "namespace", pod.Namespace)
82-
stdout, stderr, err := kubeclient.ExecCommandInContainer(pod.Name, fuseContainer.Name, pod.Namespace, cmd)
83+
stdout, stderr, err := kubeclient.ExecCommandInContainerWithContext(context.TODO(), pod.Name, fuseContainer.Name, pod.Namespace, cmd)
8384
if err != nil {
8485
i.Log.Info("exec output", "stdout", stdout, "stderr", stderr)
8586
if strings.Contains(stderr, "not mounted") {

pkg/controllers/v1alpha1/fluidapp/implement_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package fluidapp
1818

1919
import (
20+
"context"
2021
"testing"
2122

2223
"github.com/agiledragon/gomonkey/v2"
@@ -32,11 +33,11 @@ import (
3233
)
3334

3435
func TestFluidAppReconcilerImplement_umountFuseSidecars(t *testing.T) {
35-
mockExec := func(p1, p2, p3 string, p4 []string) (stdout string, stderr string, e error) {
36+
mockExec := func(ctx context.Context, p1, p2, p3 string, p4 []string) (stdout string, stderr string, e error) {
3637
return "", "", nil
3738
}
3839

39-
patches := gomonkey.ApplyFunc(kubeclient.ExecCommandInContainer, mockExec)
40+
patches := gomonkey.ApplyFunc(kubeclient.ExecCommandInContainerWithContext, mockExec)
4041
defer patches.Reset()
4142

4243
type fields struct {

pkg/controllers/v1alpha1/juicefs/implement_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ type mockEngine struct{}
4545
func (m *mockEngine) ID() string { return "mock" }
4646
func (m *mockEngine) Shutdown() error { return nil }
4747
func (m *mockEngine) Setup(_ cruntime.ReconcileRequestContext) (bool, error) { return true, nil }
48-
func (m *mockEngine) CreateVolume() error { return nil }
49-
func (m *mockEngine) DeleteVolume() error { return nil }
48+
func (m *mockEngine) CreateVolume(context.Context) error { return nil }
49+
func (m *mockEngine) DeleteVolume(context.Context) error { return nil }
5050
func (m *mockEngine) Sync(_ cruntime.ReconcileRequestContext) error { return nil }
5151
func (m *mockEngine) Validate(_ cruntime.ReconcileRequestContext) error { return nil }
5252
func (m *mockEngine) Operate(_ cruntime.ReconcileRequestContext, _ *datav1alpha1.OperationStatus, _ dataoperation.OperationInterface) (ctrl.Result, error) {

pkg/controllers/v1alpha1/thinruntime/implement_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ type mockEngine struct{}
4545
func (m *mockEngine) ID() string { return "mock" }
4646
func (m *mockEngine) Shutdown() error { return nil }
4747
func (m *mockEngine) Setup(_ cruntime.ReconcileRequestContext) (bool, error) { return true, nil }
48-
func (m *mockEngine) CreateVolume() error { return nil }
49-
func (m *mockEngine) DeleteVolume() error { return nil }
48+
func (m *mockEngine) CreateVolume(_ context.Context) error { return nil }
49+
func (m *mockEngine) DeleteVolume(_ context.Context) error { return nil }
5050
func (m *mockEngine) Sync(_ cruntime.ReconcileRequestContext) error { return nil }
5151
func (m *mockEngine) Validate(_ cruntime.ReconcileRequestContext) error { return nil }
5252
func (m *mockEngine) Operate(_ cruntime.ReconcileRequestContext, _ *datav1alpha1.OperationStatus, _ dataoperation.OperationInterface) (ctrl.Result, error) {

pkg/ddc/alluxio/create_volume.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,25 +17,26 @@ limitations under the License.
1717
package alluxio
1818

1919
import (
20+
"context"
2021
"github.com/fluid-cloudnative/fluid/pkg/common"
2122
volumeHelper "github.com/fluid-cloudnative/fluid/pkg/utils/dataset/volume"
2223
)
2324

2425
// CreateVolume creates volume
25-
func (e *AlluxioEngine) CreateVolume() (err error) {
26+
func (e *AlluxioEngine) CreateVolume(ctx context.Context) (err error) {
2627
if e.runtime == nil {
2728
e.runtime, err = e.getRuntime()
2829
if err != nil {
2930
return
3031
}
3132
}
3233

33-
err = e.createFusePersistentVolume()
34+
err = e.createFusePersistentVolume(ctx)
3435
if err != nil {
3536
return err
3637
}
3738

38-
err = e.createFusePersistentVolumeClaim()
39+
err = e.createFusePersistentVolumeClaim(ctx)
3940
if err != nil {
4041
return err
4142
}
@@ -50,13 +51,13 @@ func (e *AlluxioEngine) CreateVolume() (err error) {
5051
}
5152

5253
// createFusePersistentVolume
53-
func (e *AlluxioEngine) createFusePersistentVolume() (err error) {
54+
func (e *AlluxioEngine) createFusePersistentVolume(ctx context.Context) (err error) {
5455
runtimeInfo, err := e.getRuntimeInfo()
5556
if err != nil {
5657
return err
5758
}
5859

59-
return volumeHelper.CreatePersistentVolumeForRuntime(e.Client,
60+
return volumeHelper.CreatePersistentVolumeForRuntime(ctx, e.Client,
6061
runtimeInfo,
6162
e.getMountPoint(),
6263
common.AlluxioMountType,
@@ -65,13 +66,13 @@ func (e *AlluxioEngine) createFusePersistentVolume() (err error) {
6566
}
6667

6768
// createFusePersistentVolume
68-
func (e *AlluxioEngine) createFusePersistentVolumeClaim() (err error) {
69+
func (e *AlluxioEngine) createFusePersistentVolumeClaim(ctx context.Context) (err error) {
6970
runtimeInfo, err := e.getRuntimeInfo()
7071
if err != nil {
7172
return err
7273
}
7374

74-
return volumeHelper.CreatePersistentVolumeClaimForRuntime(e.Client, runtimeInfo, e.Log)
75+
return volumeHelper.CreatePersistentVolumeClaimForRuntime(ctx, e.Client, runtimeInfo, e.Log)
7576

7677
}
7778

pkg/ddc/alluxio/create_volume_test.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ var _ = Describe("AlluxioEngine Volume Creation Tests", Label("pkg.ddc.alluxio.c
7676
When("given AlluxioEngine works as expected", func() {
7777

7878
It("should create volumes successfully", func() {
79-
err := engine.CreateVolume()
79+
err := engine.CreateVolume(context.Background())
8080
Expect(err).To(BeNil())
8181

8282
gotPVC := &corev1.PersistentVolumeClaim{}
@@ -106,7 +106,7 @@ var _ = Describe("AlluxioEngine Volume Creation Tests", Label("pkg.ddc.alluxio.c
106106
Describe("Test AlluxioEngine.CreateFusePersistentVolume", func() {
107107
When("given AlluxioEngine works as expected", func() {
108108
It("should create fuse PV successfully", func() {
109-
err := engine.createFusePersistentVolume()
109+
err := engine.createFusePersistentVolume(context.Background())
110110
Expect(err).To(BeNil())
111111

112112
gotPv := &corev1.PersistentVolume{}
@@ -132,7 +132,7 @@ var _ = Describe("AlluxioEngine Volume Creation Tests", Label("pkg.ddc.alluxio.c
132132
resources = append(resources, mockedObjects.PersistentVolume)
133133
})
134134
It("should not create PersistentVolumle and no error should return", func() {
135-
err := engine.createFusePersistentVolume()
135+
err := engine.createFusePersistentVolume(context.Background())
136136
Expect(err).To(BeNil())
137137
})
138138
})
@@ -142,7 +142,7 @@ var _ = Describe("AlluxioEngine Volume Creation Tests", Label("pkg.ddc.alluxio.c
142142
dataset.Spec.AccessModes = []corev1.PersistentVolumeAccessMode{corev1.ReadWriteMany}
143143
})
144144
It("should create PersistentVolumle with ReadWriteMany access mode", func() {
145-
err := engine.createFusePersistentVolume()
145+
err := engine.createFusePersistentVolume(context.Background())
146146
Expect(err).To(BeNil())
147147

148148
gotPv := &corev1.PersistentVolume{}
@@ -158,7 +158,7 @@ var _ = Describe("AlluxioEngine Volume Creation Tests", Label("pkg.ddc.alluxio.c
158158
dataset.Annotations[utils.PVCStorageAnnotation] = "30Gi"
159159
})
160160
It("should create PV with the storage capacity specified in Dataset", func() {
161-
err := engine.createFusePersistentVolume()
161+
err := engine.createFusePersistentVolume(context.Background())
162162
Expect(err).To(BeNil())
163163

164164
gotPv := &corev1.PersistentVolume{}
@@ -189,7 +189,7 @@ var _ = Describe("AlluxioEngine Volume Creation Tests", Label("pkg.ddc.alluxio.c
189189
Expect(err).To(BeNil())
190190
})
191191
It("should create PV with extra labels and annotations", func() {
192-
err := engine.createFusePersistentVolume()
192+
err := engine.createFusePersistentVolume(context.Background())
193193
Expect(err).To(BeNil())
194194

195195
gotPv := &corev1.PersistentVolume{}
@@ -218,7 +218,7 @@ var _ = Describe("AlluxioEngine Volume Creation Tests", Label("pkg.ddc.alluxio.c
218218
Expect(err).To(BeNil())
219219
})
220220
It("should create fuse pv with specific node publish method", func() {
221-
err := engine.createFusePersistentVolume()
221+
err := engine.createFusePersistentVolume(context.Background())
222222
Expect(err).To(BeNil())
223223

224224
gotPv := &corev1.PersistentVolume{}
@@ -237,7 +237,7 @@ var _ = Describe("AlluxioEngine Volume Creation Tests", Label("pkg.ddc.alluxio.c
237237
Describe("Test AlluxioEngine.CreatePersistentVolumeClaim()", func() {
238238
When("given AlluxioEngine works as expected", func() {
239239
It("should create fuse PVC successfully", func() {
240-
err := engine.createFusePersistentVolumeClaim()
240+
err := engine.createFusePersistentVolumeClaim(context.Background())
241241
Expect(err).To(BeNil())
242242

243243
gotPvc := &corev1.PersistentVolumeClaim{}
@@ -259,7 +259,7 @@ var _ = Describe("AlluxioEngine Volume Creation Tests", Label("pkg.ddc.alluxio.c
259259
})
260260

261261
It("should not create PVC", func() {
262-
err := engine.createFusePersistentVolumeClaim()
262+
err := engine.createFusePersistentVolumeClaim(context.Background())
263263
Expect(err).To(BeNil())
264264
})
265265
})
@@ -286,7 +286,7 @@ var _ = Describe("AlluxioEngine Volume Creation Tests", Label("pkg.ddc.alluxio.c
286286
})
287287

288288
It("should create PVC with extra labels and annotations", func() {
289-
err := engine.createFusePersistentVolumeClaim()
289+
err := engine.createFusePersistentVolumeClaim(context.Background())
290290
Expect(err).To(BeNil())
291291

292292
gotPvc := &corev1.PersistentVolumeClaim{}

0 commit comments

Comments
 (0)