Skip to content

Commit 2551d17

Browse files
ybettank8s-ci-robot
authored andcommitted
Moving the podManager NMC helper interface to the new pod package.
Now that we have the pod package, we can move pod-related interfaces to this package. Signed-off-by: Yoni Bettan <[email protected]>
1 parent 4ea9c34 commit 2551d17

27 files changed

+440
-420
lines changed

cmd/manager-hub/main.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@ package main
1818

1919
import (
2020
"flag"
21+
2122
"github.com/kubernetes-sigs/kernel-module-management/internal/config"
2223
"github.com/kubernetes-sigs/kernel-module-management/internal/controllers"
24+
"github.com/kubernetes-sigs/kernel-module-management/internal/pod"
2325
"k8s.io/apimachinery/pkg/runtime"
2426
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
2527
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
@@ -35,7 +37,7 @@ import (
3537

3638
"github.com/kubernetes-sigs/kernel-module-management/api-hub/v1beta1"
3739
"github.com/kubernetes-sigs/kernel-module-management/internal/build"
38-
"github.com/kubernetes-sigs/kernel-module-management/internal/build/pod"
40+
buildpod "github.com/kubernetes-sigs/kernel-module-management/internal/build/pod"
3941
"github.com/kubernetes-sigs/kernel-module-management/internal/cluster"
4042
"github.com/kubernetes-sigs/kernel-module-management/internal/cmd"
4143
"github.com/kubernetes-sigs/kernel-module-management/internal/constants"
@@ -49,7 +51,6 @@ import (
4951
"github.com/kubernetes-sigs/kernel-module-management/internal/sign"
5052
signpod "github.com/kubernetes-sigs/kernel-module-management/internal/sign/pod"
5153
"github.com/kubernetes-sigs/kernel-module-management/internal/statusupdater"
52-
"github.com/kubernetes-sigs/kernel-module-management/internal/utils"
5354
//+kubebuilder:scaffold:imports
5455
)
5556

@@ -109,20 +110,20 @@ func main() {
109110
metricsAPI.Register()
110111

111112
registryAPI := registry.NewRegistry()
112-
podHelperAPI := utils.NewPodHelper(client)
113+
buildSignPodAPI := pod.NewBuildSignPodManager(client)
113114
buildHelper := build.NewHelper()
114115

115-
buildAPI := pod.NewBuildManager(
116+
buildAPI := buildpod.NewBuildManager(
116117
client,
117-
pod.NewMaker(client, buildHelper, podHelperAPI, scheme),
118-
podHelperAPI,
118+
buildpod.NewMaker(client, buildHelper, buildSignPodAPI, scheme),
119+
buildSignPodAPI,
119120
registryAPI,
120121
)
121122

122123
signAPI := signpod.NewSignPodManager(
123124
client,
124-
signpod.NewSigner(client, scheme, podHelperAPI),
125-
podHelperAPI,
125+
signpod.NewSigner(client, scheme, buildSignPodAPI),
126+
buildSignPodAPI,
126127
registryAPI,
127128
)
128129

cmd/manager/main.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ import (
4242
"github.com/kubernetes-sigs/kernel-module-management/internal/registry"
4343
"github.com/kubernetes-sigs/kernel-module-management/internal/sign"
4444
signpod "github.com/kubernetes-sigs/kernel-module-management/internal/sign/pod"
45-
"github.com/kubernetes-sigs/kernel-module-management/internal/utils"
4645

4746
"k8s.io/apimachinery/pkg/runtime"
4847
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
@@ -180,19 +179,19 @@ func main() {
180179
cmd.FatalError(setupLogger, err, "unable to create controller", "name", controllers.NodeKernelClusterClaimReconcilerName)
181180
}
182181
} else {
183-
podHelperAPI := utils.NewPodHelper(client)
182+
buildSignPodAPI := pod.NewBuildSignPodManager(client)
184183

185184
buildAPI := buildpod.NewBuildManager(
186185
client,
187-
buildpod.NewMaker(client, buildHelperAPI, podHelperAPI, scheme),
188-
podHelperAPI,
186+
buildpod.NewMaker(client, buildHelperAPI, buildSignPodAPI, scheme),
187+
buildSignPodAPI,
189188
registryAPI,
190189
)
191190

192191
signAPI := signpod.NewSignPodManager(
193192
client,
194-
signpod.NewSigner(client, scheme, podHelperAPI),
195-
podHelperAPI,
193+
signpod.NewSigner(client, scheme, buildSignPodAPI),
194+
buildSignPodAPI,
196195
registryAPI,
197196
)
198197
bsc := controllers.NewBuildSignReconciler(

internal/build/manager.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
77

88
"github.com/kubernetes-sigs/kernel-module-management/internal/api"
9-
"github.com/kubernetes-sigs/kernel-module-management/internal/utils"
9+
"github.com/kubernetes-sigs/kernel-module-management/internal/pod"
1010
)
1111

1212
//go:generate mockgen -source=manager.go -package=build -destination=mock_manager.go
@@ -20,5 +20,5 @@ type Manager interface {
2020
ctx context.Context,
2121
mld *api.ModuleLoaderData,
2222
pushImage bool,
23-
owner metav1.Object) (utils.Status, error)
23+
owner metav1.Object) (pod.Status, error)
2424
}

internal/build/mock_manager.go

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/build/pod/maker.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import (
2020
"github.com/kubernetes-sigs/kernel-module-management/internal/build"
2121
"github.com/kubernetes-sigs/kernel-module-management/internal/constants"
2222
"github.com/kubernetes-sigs/kernel-module-management/internal/module"
23-
"github.com/kubernetes-sigs/kernel-module-management/internal/utils"
23+
"github.com/kubernetes-sigs/kernel-module-management/internal/pod"
2424
)
2525

2626
const (
@@ -38,10 +38,10 @@ type Maker interface {
3838
}
3939

4040
type maker struct {
41-
client client.Client
42-
helper build.Helper
43-
podHelper utils.PodHelper
44-
scheme *runtime.Scheme
41+
client client.Client
42+
helper build.Helper
43+
buildSignPodManager pod.BuildSignPodManager
44+
scheme *runtime.Scheme
4545
}
4646

4747
type hashData struct {
@@ -52,13 +52,13 @@ type hashData struct {
5252
func NewMaker(
5353
client client.Client,
5454
helper build.Helper,
55-
podHelper utils.PodHelper,
55+
buildSignPodManager pod.BuildSignPodManager,
5656
scheme *runtime.Scheme) Maker {
5757
return &maker{
58-
client: client,
59-
helper: helper,
60-
podHelper: podHelper,
61-
scheme: scheme,
58+
client: client,
59+
helper: helper,
60+
buildSignPodManager: buildSignPodManager,
61+
scheme: scheme,
6262
}
6363
}
6464

@@ -90,7 +90,7 @@ func (m *maker) MakePodTemplate(
9090
ObjectMeta: metav1.ObjectMeta{
9191
GenerateName: mld.Name + "-build-",
9292
Namespace: mld.Namespace,
93-
Labels: m.podHelper.PodLabels(mld.Name, mld.KernelNormalizedVersion, utils.PodTypeBuild),
93+
Labels: m.buildSignPodManager.PodLabels(mld.Name, mld.KernelNormalizedVersion, pod.PodTypeBuild),
9494
Annotations: map[string]string{constants.PodHashAnnotation: fmt.Sprintf("%d", podSpecHash)},
9595
Finalizers: []string{constants.GCDelayFinalizer, constants.JobEventFinalizer},
9696
},

internal/build/pod/maker_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121
"github.com/kubernetes-sigs/kernel-module-management/internal/build"
2222
"github.com/kubernetes-sigs/kernel-module-management/internal/client"
2323
"github.com/kubernetes-sigs/kernel-module-management/internal/constants"
24-
"github.com/kubernetes-sigs/kernel-module-management/internal/utils"
24+
"github.com/kubernetes-sigs/kernel-module-management/internal/pod"
2525
)
2626

2727
var _ = Describe("MakePodTemplate", func() {
@@ -37,19 +37,19 @@ var _ = Describe("MakePodTemplate", func() {
3737
)
3838

3939
var (
40-
ctrl *gomock.Controller
41-
clnt *client.MockClient
42-
m Maker
43-
mh *build.MockHelper
44-
podhelper *utils.MockPodHelper
40+
ctrl *gomock.Controller
41+
clnt *client.MockClient
42+
m Maker
43+
mh *build.MockHelper
44+
mockBuildSignPodManager *pod.MockBuildSignPodManager
4545
)
4646

4747
BeforeEach(func() {
4848
ctrl = gomock.NewController(GinkgoT())
4949
clnt = client.NewMockClient(ctrl)
5050
mh = build.NewMockHelper(ctrl)
51-
podhelper = utils.NewMockPodHelper(ctrl)
52-
m = NewMaker(clnt, mh, podhelper, scheme)
51+
mockBuildSignPodManager = pod.NewMockBuildSignPodManager(ctrl)
52+
m = NewMaker(clnt, mh, mockBuildSignPodManager, scheme)
5353
})
5454

5555
AfterEach(func() {
@@ -240,7 +240,7 @@ var _ = Describe("MakePodTemplate", func() {
240240
return nil
241241
},
242242
),
243-
podhelper.EXPECT().PodLabels(mld.Name, kernelNormalizedVersion, utils.PodTypeBuild).Return(labels),
243+
mockBuildSignPodManager.EXPECT().PodLabels(mld.Name, kernelNormalizedVersion, pod.PodTypeBuild).Return(labels),
244244
)
245245

246246
actual, err := m.MakePodTemplate(ctx, &mld, mld.Owner, true)
@@ -306,7 +306,7 @@ var _ = Describe("MakePodTemplate", func() {
306306
return nil
307307
},
308308
),
309-
podhelper.EXPECT().PodLabels(mod.Name, kernelNormalizedVersion, utils.PodTypeBuild).Return(map[string]string{}),
309+
mockBuildSignPodManager.EXPECT().PodLabels(mod.Name, kernelNormalizedVersion, pod.PodTypeBuild).Return(map[string]string{}),
310310
)
311311

312312
actual, err := m.MakePodTemplate(ctx, &mld, mld.Owner, pushImage)
@@ -385,7 +385,7 @@ var _ = Describe("MakePodTemplate", func() {
385385
return nil
386386
},
387387
),
388-
podhelper.EXPECT().PodLabels(mld.Name, kernelNormalizedVersion, utils.PodTypeBuild).Return(map[string]string{}),
388+
mockBuildSignPodManager.EXPECT().PodLabels(mld.Name, kernelNormalizedVersion, pod.PodTypeBuild).Return(map[string]string{}),
389389
)
390390

391391
actual, err := m.MakePodTemplate(ctx, &mld, mld.Owner, false)
@@ -422,7 +422,7 @@ var _ = Describe("MakePodTemplate", func() {
422422
return nil
423423
},
424424
),
425-
podhelper.EXPECT().PodLabels(mld.Name, kernelNormalizedVersion, utils.PodTypeBuild).Return(map[string]string{}),
425+
mockBuildSignPodManager.EXPECT().PodLabels(mld.Name, kernelNormalizedVersion, pod.PodTypeBuild).Return(map[string]string{}),
426426
)
427427

428428
actual, err := m.MakePodTemplate(ctx, &mld, mld.Owner, true)

internal/build/pod/manager.go

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -12,40 +12,41 @@ import (
1212

1313
"github.com/kubernetes-sigs/kernel-module-management/internal/api"
1414
"github.com/kubernetes-sigs/kernel-module-management/internal/module"
15+
"github.com/kubernetes-sigs/kernel-module-management/internal/pod"
1516
"github.com/kubernetes-sigs/kernel-module-management/internal/registry"
1617
"github.com/kubernetes-sigs/kernel-module-management/internal/utils"
1718
)
1819

1920
type podManager struct {
20-
client client.Client
21-
maker Maker
22-
podHelper utils.PodHelper
23-
registry registry.Registry
21+
client client.Client
22+
maker Maker
23+
buildSignPodManager pod.BuildSignPodManager
24+
registry registry.Registry
2425
}
2526

2627
func NewBuildManager(
2728
client client.Client,
2829
maker Maker,
29-
podHelper utils.PodHelper,
30+
buildSignPodManager pod.BuildSignPodManager,
3031
registry registry.Registry) *podManager {
3132
return &podManager{
32-
client: client,
33-
maker: maker,
34-
podHelper: podHelper,
35-
registry: registry,
33+
client: client,
34+
maker: maker,
35+
buildSignPodManager: buildSignPodManager,
36+
registry: registry,
3637
}
3738
}
3839

3940
func (pm *podManager) GarbageCollect(ctx context.Context, modName, namespace string, owner metav1.Object) ([]string, error) {
40-
pods, err := pm.podHelper.GetModulePods(ctx, modName, namespace, utils.PodTypeBuild, owner)
41+
pods, err := pm.buildSignPodManager.GetModulePods(ctx, modName, namespace, pod.PodTypeBuild, owner)
4142
if err != nil {
4243
return nil, fmt.Errorf("failed to get build pods for module %s: %v", modName, err)
4344
}
4445

4546
deleteNames := make([]string, 0, len(pods))
4647
for _, pod := range pods {
4748
if pod.Status.Phase == v1.PodSucceeded {
48-
err = pm.podHelper.DeletePod(ctx, &pod)
49+
err = pm.buildSignPodManager.DeletePod(ctx, &pod)
4950
if err != nil {
5051
return nil, fmt.Errorf("failed to delete build pod %s: %v", pod.Name, err)
5152
}
@@ -85,7 +86,7 @@ func (pm *podManager) Sync(
8586
ctx context.Context,
8687
mld *api.ModuleLoaderData,
8788
pushImage bool,
88-
owner metav1.Object) (utils.Status, error) {
89+
owner metav1.Object) (pod.Status, error) {
8990

9091
logger := log.FromContext(ctx)
9192

@@ -96,38 +97,40 @@ func (pm *podManager) Sync(
9697
return "", fmt.Errorf("could not make Pod template: %v", err)
9798
}
9899

99-
pod, err := pm.podHelper.GetModulePodByKernel(ctx, mld.Name, mld.Namespace, mld.KernelNormalizedVersion, utils.PodTypeBuild, owner)
100+
p, err := pm.buildSignPodManager.GetModulePodByKernel(ctx, mld.Name, mld.Namespace,
101+
mld.KernelNormalizedVersion, pod.PodTypeBuild, owner)
102+
100103
if err != nil {
101-
if !errors.Is(err, utils.ErrNoMatchingPod) {
104+
if !errors.Is(err, pod.ErrNoMatchingPod) {
102105
return "", fmt.Errorf("error getting the build: %v", err)
103106
}
104107

105108
logger.Info("Creating pod")
106-
err = pm.podHelper.CreatePod(ctx, podTemplate)
109+
err = pm.buildSignPodManager.CreatePod(ctx, podTemplate)
107110
if err != nil {
108111
return "", fmt.Errorf("could not create Pod: %v", err)
109112
}
110113

111-
return utils.StatusCreated, nil
114+
return pod.StatusCreated, nil
112115
}
113116

114-
changed, err := pm.podHelper.IsPodChanged(pod, podTemplate)
117+
changed, err := pm.buildSignPodManager.IsPodChanged(p, podTemplate)
115118
if err != nil {
116119
return "", fmt.Errorf("could not determine if pod has changed: %v", err)
117120
}
118121

119122
if changed {
120-
logger.Info("The module's build spec has been changed, deleting the current pod so a new one can be created", "name", pod.Name)
121-
err = pm.podHelper.DeletePod(ctx, pod)
123+
logger.Info("The module's build spec has been changed, deleting the current pod so a new one can be created", "name", p.Name)
124+
err = pm.buildSignPodManager.DeletePod(ctx, p)
122125
if err != nil {
123-
logger.Info(utils.WarnString(fmt.Sprintf("failed to delete build pod %s: %v", pod.Name, err)))
126+
logger.Info(utils.WarnString(fmt.Sprintf("failed to delete build pod %s: %v", p.Name, err)))
124127
}
125-
return utils.StatusInProgress, nil
128+
return pod.StatusInProgress, nil
126129
}
127130

128-
logger.Info("Returning pod status", "name", pod.Name, "namespace", pod.Namespace)
131+
logger.Info("Returning pod status", "name", p.Name, "namespace", p.Namespace)
129132

130-
statusmsg, err := pm.podHelper.GetPodStatus(pod)
133+
statusmsg, err := pm.buildSignPodManager.GetPodStatus(p)
131134
if err != nil {
132135
return "", err
133136
}

0 commit comments

Comments
 (0)