Skip to content

Commit 7fe5736

Browse files
Merge pull request #524 from openshift-cherrypick-robot/cherry-pick-511-to-release-4.19
[release-4.19] OCPBUGS-57206: Wire dry run option to Image API server operations
2 parents 18061bf + 29678f0 commit 7fe5736

File tree

14 files changed

+88
-25
lines changed

14 files changed

+88
-25
lines changed

pkg/image/apiserver/admission/limitrange/admission.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"fmt"
66
"io"
77

8-
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/internalimageutil"
8+
internalimageutil "github.com/openshift/openshift-apiserver/pkg/image/apiserver/internal/imageutil"
99

1010
"k8s.io/klog/v2"
1111

pkg/image/apiserver/importer/importer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ import (
3333
"github.com/openshift/library-go/pkg/image/imageutil"
3434
imageref "github.com/openshift/library-go/pkg/image/reference"
3535
imageapi "github.com/openshift/openshift-apiserver/pkg/image/apis/image"
36-
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/internalimageutil"
36+
internalimageutil "github.com/openshift/openshift-apiserver/pkg/image/apiserver/internal/imageutil"
3737
)
3838

3939
// Interface loads images into an image stream import request.

pkg/image/apiserver/internalimageutil/helpers.go renamed to pkg/image/apiserver/internal/imageutil/helpers.go

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package internalimageutil
1+
package imageutil
22

33
import (
44
"encoding/json"
@@ -519,3 +519,67 @@ func HasTagCondition(stream *imageapi.ImageStream, tag string, condition imageap
519519
}
520520
return false
521521
}
522+
523+
// UpdateOptionsToSupportedUpdateOptions prepares an UpdateOptions resource by using
524+
// the specific selected options from the UpdateOptions.
525+
// In the future, other fields like fieldManager can also be supported.
526+
func UpdateOptionsToSupportedUpdateOptions(opts *metav1.UpdateOptions) *metav1.UpdateOptions {
527+
if opts == nil {
528+
return &metav1.UpdateOptions{}
529+
}
530+
return &metav1.UpdateOptions{
531+
DryRun: opts.DryRun,
532+
}
533+
}
534+
535+
// CreateOptionsToSupportedUpdateOptions prepares an UpdateOptions resource by using
536+
// the specific selected options from the CreateOptions.
537+
// In the future, other fields like fieldManager can also be supported.
538+
func CreateOptionsToSupportedUpdateOptions(opts *metav1.CreateOptions) *metav1.UpdateOptions {
539+
if opts == nil {
540+
return &metav1.UpdateOptions{}
541+
}
542+
543+
return &metav1.UpdateOptions{
544+
DryRun: opts.DryRun,
545+
}
546+
}
547+
548+
// CreateOptionsToSupportedCreateOptions prepares an CreateOptions resource by using
549+
// the specific selected options from the CreateOptions.
550+
// In the future, other fields like fieldManager can also be supported.
551+
func CreateOptionsToSupportedCreateOptions(opts *metav1.CreateOptions) *metav1.CreateOptions {
552+
if opts == nil {
553+
return &metav1.CreateOptions{}
554+
}
555+
556+
return &metav1.CreateOptions{
557+
DryRun: opts.DryRun,
558+
}
559+
}
560+
561+
// UpdateOptionsToSupportedCreateOptions prepares an CreateOptions resource by using
562+
// the specific selected options from the UpdateOptions.
563+
// In the future, other fields like fieldManager can also be supported.
564+
func UpdateOptionsToSupportedCreateOptions(opts *metav1.UpdateOptions) *metav1.CreateOptions {
565+
if opts == nil {
566+
return &metav1.CreateOptions{}
567+
}
568+
569+
return &metav1.CreateOptions{
570+
DryRun: opts.DryRun,
571+
}
572+
}
573+
574+
// DeleteOptionsToSupportedUpdateOptions prepares an UpdateOptions resource by using
575+
// the specific selected options from the DeleteOptions.
576+
// In the future, other fields like fieldManager can also be supported.
577+
func DeleteOptionsToSupportedUpdateOptions(opts *metav1.DeleteOptions) *metav1.UpdateOptions {
578+
if opts == nil {
579+
return &metav1.UpdateOptions{}
580+
}
581+
582+
return &metav1.UpdateOptions{
583+
DryRun: opts.DryRun,
584+
}
585+
}

pkg/image/apiserver/internalimageutil/helpers_test.go renamed to pkg/image/apiserver/internal/imageutil/helpers_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package internalimageutil
1+
package imageutil
22

33
import (
44
"reflect"

pkg/image/apiserver/registry/image/strategy.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import (
1616
imagev1 "github.com/openshift/api/image/v1"
1717
imageapi "github.com/openshift/openshift-apiserver/pkg/image/apis/image"
1818
"github.com/openshift/openshift-apiserver/pkg/image/apis/image/validation"
19-
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/internalimageutil"
19+
internalimageutil "github.com/openshift/openshift-apiserver/pkg/image/apiserver/internal/imageutil"
2020
)
2121

2222
// managedSignatureAnnotation used to be set by image signature import controller as a signature annotation.

pkg/image/apiserver/registry/imagestream/registry.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func (s *storage) GetImageStream(ctx context.Context, imageStreamID string, opti
7676
}
7777

7878
func (s *storage) CreateImageStream(ctx context.Context, imageStream *imageapi.ImageStream, options *metav1.CreateOptions) (*imageapi.ImageStream, error) {
79-
obj, err := s.Create(ctx, imageStream, rest.ValidateAllObjectFunc, &metav1.CreateOptions{})
79+
obj, err := s.Create(ctx, imageStream, rest.ValidateAllObjectFunc, options)
8080
if err != nil {
8181
return nil, err
8282
}

pkg/image/apiserver/registry/imagestream/strategy.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"fmt"
66
"strings"
77

8-
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/internalimageutil"
8+
internalimageutil "github.com/openshift/openshift-apiserver/pkg/image/apiserver/internal/imageutil"
99

1010
authorizationapi "k8s.io/api/authorization/v1"
1111
kerrors "k8s.io/apimachinery/pkg/api/errors"

pkg/image/apiserver/registry/imagestreamimage/rest.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515
"github.com/openshift/library-go/pkg/image/imageutil"
1616

1717
imageapi "github.com/openshift/openshift-apiserver/pkg/image/apis/image"
18-
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/internalimageutil"
18+
internalimageutil "github.com/openshift/openshift-apiserver/pkg/image/apiserver/internal/imageutil"
1919
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/registry/image"
2020
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/registry/imagestream"
2121
imageprinters "github.com/openshift/openshift-apiserver/pkg/image/printers/internalversion"

pkg/image/apiserver/registry/imagestreamimport/imagecreater.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
"k8s.io/klog/v2"
1010

1111
imageapi "github.com/openshift/openshift-apiserver/pkg/image/apis/image"
12-
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/internalimageutil"
12+
internalimageutil "github.com/openshift/openshift-apiserver/pkg/image/apiserver/internal/imageutil"
1313
)
1414

1515
type cachedImageCreater struct {

pkg/image/apiserver/registry/imagestreamimport/rest.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ import (
3939
"github.com/openshift/openshift-apiserver/pkg/image/apis/image/validation"
4040
"github.com/openshift/openshift-apiserver/pkg/image/apis/image/validation/whitelist"
4141
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/importer"
42-
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/internalimageutil"
42+
internalimageutil "github.com/openshift/openshift-apiserver/pkg/image/apiserver/internal/imageutil"
4343
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/registry/imagestream"
4444
"github.com/openshift/runtime-utils/pkg/registries"
4545
)

pkg/image/apiserver/registry/imagestreammapping/rest.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import (
2020
imagev1 "github.com/openshift/api/image/v1"
2121
imagereference "github.com/openshift/library-go/pkg/image/reference"
2222
imageapi "github.com/openshift/openshift-apiserver/pkg/image/apis/image"
23-
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/internalimageutil"
23+
internalimageutil "github.com/openshift/openshift-apiserver/pkg/image/apiserver/internal/imageutil"
2424
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/registry/image"
2525
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/registry/imagestream"
2626
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/registryhostname"

pkg/image/apiserver/registry/imagestreammapping/rest_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import (
3030
imageapi "github.com/openshift/openshift-apiserver/pkg/image/apis/image"
3131
"github.com/openshift/openshift-apiserver/pkg/image/apis/image/validation/fake"
3232
admfake "github.com/openshift/openshift-apiserver/pkg/image/apiserver/admission/fake"
33-
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/internalimageutil"
33+
internalimageutil "github.com/openshift/openshift-apiserver/pkg/image/apiserver/internal/imageutil"
3434
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/registry/image"
3535
imageetcd "github.com/openshift/openshift-apiserver/pkg/image/apiserver/registry/image/etcd"
3636
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/registry/imagestream"

pkg/image/apiserver/registry/imagestreamtag/rest.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
"github.com/openshift/openshift-apiserver/pkg/api/apihelpers"
2424
imageapi "github.com/openshift/openshift-apiserver/pkg/image/apis/image"
2525
"github.com/openshift/openshift-apiserver/pkg/image/apis/image/validation/whitelist"
26-
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/internalimageutil"
26+
internalimageutil "github.com/openshift/openshift-apiserver/pkg/image/apiserver/internal/imageutil"
2727
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/registry/image"
2828
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/registry/imagestream"
2929
imageprinters "github.com/openshift/openshift-apiserver/pkg/image/printers/internalversion"
@@ -202,9 +202,9 @@ func (r *REST) Create(ctx context.Context, obj runtime.Object, createValidation
202202
// Check the stream creation timestamp and make sure we will not
203203
// create a new image stream while deleting.
204204
if target.CreationTimestamp.IsZero() {
205-
target, err = r.imageStreamRegistry.CreateImageStream(ctx, target, &metav1.CreateOptions{})
205+
target, err = r.imageStreamRegistry.CreateImageStream(ctx, target, internalimageutil.CreateOptionsToSupportedCreateOptions(options))
206206
} else {
207-
target, err = r.imageStreamRegistry.UpdateImageStream(ctx, target, false, &metav1.UpdateOptions{})
207+
target, err = r.imageStreamRegistry.UpdateImageStream(ctx, target, false, internalimageutil.CreateOptionsToSupportedUpdateOptions(options))
208208
}
209209
if kapierrors.IsAlreadyExists(err) || kapierrors.IsConflict(err) {
210210
continue
@@ -360,9 +360,9 @@ func (r *REST) update(ctx context.Context, tagName string, objInfo rest.UpdatedO
360360
// mutate the image stream
361361
var newImageStream *imageapi.ImageStream
362362
if create {
363-
newImageStream, err = r.imageStreamRegistry.CreateImageStream(ctx, originalImageStream, &metav1.CreateOptions{})
363+
newImageStream, err = r.imageStreamRegistry.CreateImageStream(ctx, originalImageStream, internalimageutil.UpdateOptionsToSupportedCreateOptions(options))
364364
} else {
365-
newImageStream, err = r.imageStreamRegistry.UpdateImageStream(ctx, originalImageStream, false, &metav1.UpdateOptions{})
365+
newImageStream, err = r.imageStreamRegistry.UpdateImageStream(ctx, originalImageStream, false, internalimageutil.UpdateOptionsToSupportedUpdateOptions(options))
366366
}
367367
if err != nil {
368368
// return true for canRetry if we had a failure for resource versions
@@ -422,7 +422,7 @@ func (r *REST) Delete(ctx context.Context, id string, objectFunc rest.ValidateOb
422422
return nil, false, kapierrors.NewNotFound(imagegroup.Resource("imagestreamtags"), id)
423423
}
424424

425-
_, err = r.imageStreamRegistry.UpdateImageStream(ctx, stream, false, &metav1.UpdateOptions{})
425+
_, err = r.imageStreamRegistry.UpdateImageStream(ctx, stream, false, internalimageutil.DeleteOptionsToSupportedUpdateOptions(options))
426426
if kapierrors.IsConflict(err) {
427427
continue
428428
}

pkg/image/apiserver/registry/imagetag/rest.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package imagetag
33
import (
44
"context"
55
"fmt"
6-
76
kapierrors "k8s.io/apimachinery/pkg/api/errors"
87
"k8s.io/apimachinery/pkg/api/meta"
98
metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion"
@@ -21,7 +20,7 @@ import (
2120
"github.com/openshift/openshift-apiserver/pkg/api/apihelpers"
2221
imageapi "github.com/openshift/openshift-apiserver/pkg/image/apis/image"
2322
"github.com/openshift/openshift-apiserver/pkg/image/apis/image/validation/whitelist"
24-
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/internalimageutil"
23+
internalimageutil "github.com/openshift/openshift-apiserver/pkg/image/apiserver/internal/imageutil"
2524
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/registry/image"
2625
"github.com/openshift/openshift-apiserver/pkg/image/apiserver/registry/imagestream"
2726
imageprinters "github.com/openshift/openshift-apiserver/pkg/image/printers/internalversion"
@@ -211,9 +210,9 @@ func (r *REST) Create(ctx context.Context, obj runtime.Object, createValidation
211210
// Check the stream creation timestamp and make sure we will not
212211
// create a new image stream while deleting.
213212
if target.CreationTimestamp.IsZero() {
214-
target, err = r.imageStreamRegistry.CreateImageStream(ctx, target, &metav1.CreateOptions{})
213+
target, err = r.imageStreamRegistry.CreateImageStream(ctx, target, internalimageutil.CreateOptionsToSupportedCreateOptions(options))
215214
} else {
216-
target, err = r.imageStreamRegistry.UpdateImageStream(ctx, target, false, &metav1.UpdateOptions{})
215+
target, err = r.imageStreamRegistry.UpdateImageStream(ctx, target, false, internalimageutil.CreateOptionsToSupportedUpdateOptions(options))
217216
}
218217
if kapierrors.IsAlreadyExists(err) || kapierrors.IsConflict(err) {
219218
continue
@@ -323,9 +322,9 @@ func (r *REST) Update(ctx context.Context, tagName string, objInfo rest.UpdatedO
323322
// mutate the image stream
324323
var newImageStream *imageapi.ImageStream
325324
if create {
326-
newImageStream, err = r.imageStreamRegistry.CreateImageStream(ctx, imageStream, &metav1.CreateOptions{})
325+
newImageStream, err = r.imageStreamRegistry.CreateImageStream(ctx, imageStream, internalimageutil.UpdateOptionsToSupportedCreateOptions(options))
327326
} else {
328-
newImageStream, err = r.imageStreamRegistry.UpdateImageStream(ctx, imageStream, false, &metav1.UpdateOptions{})
327+
newImageStream, err = r.imageStreamRegistry.UpdateImageStream(ctx, imageStream, false, internalimageutil.UpdateOptionsToSupportedUpdateOptions(options))
329328
}
330329
if err != nil {
331330
return nil, false, err
@@ -382,7 +381,7 @@ func (r *REST) Delete(ctx context.Context, id string, objectFunc rest.ValidateOb
382381
return nil, false, kapierrors.NewNotFound(imagegroup.Resource("imagetags"), id)
383382
}
384383

385-
_, err = r.imageStreamRegistry.UpdateImageStream(ctx, stream, false, &metav1.UpdateOptions{})
384+
_, err = r.imageStreamRegistry.UpdateImageStream(ctx, stream, false, internalimageutil.DeleteOptionsToSupportedUpdateOptions(options))
386385
if kapierrors.IsConflict(err) {
387386
continue
388387
}

0 commit comments

Comments
 (0)