Skip to content

Commit bcf3757

Browse files
Merge pull request #9933 from mhanss/update-icsp
OCPBUGS-61490: Update code to retrieve ICSP instead of ICP
2 parents 46b4333 + 9d44d9b commit bcf3757

37 files changed

+5189
-11
lines changed

pkg/asset/agent/joiner/clusterinfo.go

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"github.com/openshift/assisted-service/models"
2727
configclient "github.com/openshift/client-go/config/clientset/versioned"
2828
machineconfigclient "github.com/openshift/client-go/machineconfiguration/clientset/versioned"
29+
operatorclient "github.com/openshift/client-go/operator/clientset/versioned"
2930
"github.com/openshift/installer/pkg/asset"
3031
"github.com/openshift/installer/pkg/asset/agent"
3132
"github.com/openshift/installer/pkg/asset/agent/workflow"
@@ -51,6 +52,7 @@ import (
5152
type ClusterInfo struct {
5253
Client kubernetes.Interface
5354
OpenshiftClient configclient.Interface
55+
OpenshiftOperatorClient operatorclient.Interface
5456
OpenshiftMachineConfigClient machineconfigclient.Interface
5557
addNodesConfig AddNodesConfig
5658

@@ -118,7 +120,7 @@ func (ci *ClusterInfo) Generate(ctx context.Context, dependencies asset.Parents)
118120
ci.retrieveUserTrustBundle,
119121
ci.retrieveArchitecture,
120122
ci.retrieveImageDigestMirrorSets,
121-
ci.retrieveImageContentPolicies,
123+
ci.retrieveImageContentSourcePolicies,
122124
ci.retrieveOsImage,
123125
ci.retrieveIgnitionEndpointWorker,
124126
ci.retrievePlatformType,
@@ -142,7 +144,7 @@ func (ci *ClusterInfo) Generate(ctx context.Context, dependencies asset.Parents)
142144
}
143145

144146
func (ci *ClusterInfo) initClients() error {
145-
if ci.Client != nil && ci.OpenshiftClient != nil {
147+
if ci.Client != nil && ci.OpenshiftClient != nil && ci.OpenshiftOperatorClient != nil {
146148
return nil
147149
}
148150

@@ -164,6 +166,12 @@ func (ci *ClusterInfo) initClients() error {
164166
}
165167
ci.OpenshiftClient = openshiftClient
166168

169+
operatorClient, err := operatorclient.NewForConfig(config)
170+
if err != nil {
171+
return err
172+
}
173+
ci.OpenshiftOperatorClient = operatorClient
174+
167175
openshiftMachineConfigClient, err := machineconfigclient.NewForConfig(config)
168176
if err != nil {
169177
return err
@@ -429,8 +437,8 @@ func (ci *ClusterInfo) retrieveImageDigestMirrorSets() error {
429437
return nil
430438
}
431439

432-
func (ci *ClusterInfo) retrieveImageContentPolicies() error {
433-
imageContentPolicies, err := ci.OpenshiftClient.ConfigV1().ImageContentPolicies().List(context.Background(), metav1.ListOptions{})
440+
func (ci *ClusterInfo) retrieveImageContentSourcePolicies() error {
441+
imageContentSourcePolicies, err := ci.OpenshiftOperatorClient.OperatorV1alpha1().ImageContentSourcePolicies().List(context.Background(), metav1.ListOptions{})
434442
if err != nil {
435443
// Older oc client may not have sufficient permissions,
436444
// falling back to previous implementation.
@@ -451,14 +459,12 @@ func (ci *ClusterInfo) retrieveImageContentPolicies() error {
451459
return nil
452460
}
453461

454-
for _, icp := range imageContentPolicies.Items {
455-
for _, digestMirror := range icp.Spec.RepositoryDigestMirrors {
462+
for _, icsp := range imageContentSourcePolicies.Items {
463+
for _, digestMirror := range icsp.Spec.RepositoryDigestMirrors {
456464
digestSource := types.ImageContentSource{
457465
Source: digestMirror.Source,
458466
}
459-
for _, m := range digestMirror.Mirrors {
460-
digestSource.Mirrors = append(digestSource.Mirrors, string(m))
461-
}
467+
digestSource.Mirrors = append(digestSource.Mirrors, digestMirror.Mirrors...)
462468
ci.DeprecatedImageContentSources = append(ci.DeprecatedImageContentSources, digestSource)
463469
}
464470
}

pkg/asset/agent/joiner/clusterinfo_test.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"github.com/openshift/assisted-service/models"
2727
fakeclientconfig "github.com/openshift/client-go/config/clientset/versioned/fake"
2828
fakeclientmachineconfig "github.com/openshift/client-go/machineconfiguration/clientset/versioned/fake"
29+
fakeoperatorconfig "github.com/openshift/client-go/operator/clientset/versioned/fake"
2930
"github.com/openshift/installer/pkg/asset"
3031
"github.com/openshift/installer/pkg/asset/agent/workflow"
3132
"github.com/openshift/installer/pkg/types"
@@ -169,7 +170,7 @@ storage:
169170
objs: defaultObjects(),
170171
fakeClientError: &fakeClientErr{
171172
verb: "list",
172-
resource: "imagecontentpolicies",
173+
resource: "imagecontentsourcepolicies",
173174
err: errors.NewForbidden(schema.GroupResource{}, "", nil),
174175
},
175176
},
@@ -266,6 +267,7 @@ passwd:
266267
}
267268
fakeClient := fake.NewSimpleClientset(objects...)
268269
fakeOCClient := fakeclientconfig.NewSimpleClientset(openshiftObjects...)
270+
fakeOperatorClient := fakeoperatorconfig.NewSimpleClientset()
269271
fakeOCMachineConfigClient := fakeclientmachineconfig.NewSimpleClientset(openshiftMachineConfigObjects...)
270272

271273
if tc.fakeClientError != nil {
@@ -282,7 +284,7 @@ passwd:
282284
}
283285
return false, nil, nil
284286
})
285-
case "imagedigestmirrorsets", "imagecontentpolicies":
287+
case "imagedigestmirrorsets":
286288
fakeOCClient.PrependReactor(tc.fakeClientError.verb, tc.fakeClientError.resource, func(action faketesting.Action) (handled bool, ret runtime.Object, err error) {
287289
listAction, ok := action.(faketesting.ListAction)
288290
if ok && listAction.GetResource().Resource == tc.fakeClientError.resource {
@@ -294,12 +296,25 @@ passwd:
294296
}
295297
return false, nil, nil
296298
})
299+
case "imagecontentsourcepolicies":
300+
fakeOperatorClient.Fake.PrependReactor(tc.fakeClientError.verb, tc.fakeClientError.resource, func(action faketesting.Action) (handled bool, ret runtime.Object, err error) {
301+
listAction, ok := action.(faketesting.ListAction)
302+
if ok && listAction.GetResource().Resource == tc.fakeClientError.resource {
303+
return true, nil, errors.NewForbidden(
304+
schema.GroupResource{Group: "", Resource: tc.fakeClientError.resource},
305+
tc.fakeClientError.name,
306+
fmt.Errorf("access denied"),
307+
)
308+
}
309+
return false, nil, nil
310+
})
297311
}
298312
}
299313

300314
clusterInfo := ClusterInfo{
301315
Client: fakeClient,
302316
OpenshiftClient: fakeOCClient,
317+
OpenshiftOperatorClient: fakeOperatorClient,
303318
OpenshiftMachineConfigClient: fakeOCMachineConfigClient,
304319
}
305320
err := clusterInfo.Generate(context.Background(), parents)

0 commit comments

Comments
 (0)