Skip to content

Commit c8924fa

Browse files
Merge pull request #20052 from coreydaley/trello_1559_reuse_exiting_imagestreams_with_new_app
Resuse existing imagestreams with new-app
2 parents b693fe0 + cbdbed8 commit c8924fa

File tree

3 files changed

+21
-3
lines changed

3 files changed

+21
-3
lines changed

pkg/oc/generate/app/pipeline.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,14 @@ func (p *Pipeline) Objects(accept, objectAccept Acceptor) (Objects, error) {
194194
}
195195
if objectAccept.Accept(repo) {
196196
objects = append(objects, repo)
197+
} else {
198+
tag, err := p.InputImage.ImageStreamTag()
199+
if err != nil {
200+
return nil, err
201+
}
202+
if objectAccept.Accept(tag) {
203+
objects = append(objects, tag)
204+
}
197205
}
198206
}
199207
if p.Image != nil && p.Image.AsImageStream && accept.Accept(p.Image) {

pkg/oc/generate/cmd/describe.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,12 +128,12 @@ func describeBuildPipelineWithImage(out io.Writer, ref app.ComponentReference, p
128128
if pipeline.Build == nil {
129129
trackedImage := extractFirstImageStreamTag(true, pipeline.InputImage, pipeline.Image)
130130
if len(trackedImage) > 0 {
131-
fmt.Fprintf(out, " * An image stream will be created as %q that will track this image\n", trackedImage)
131+
fmt.Fprintf(out, " * An image stream tag will be created as %q that will track this image\n", trackedImage)
132132
}
133133
} else {
134134
trackedImage := extractFirstImageStreamTag(true, pipeline.InputImage)
135135
if len(trackedImage) > 0 {
136-
fmt.Fprintf(out, " * An image stream will be created as %q that will track the source image\n", trackedImage)
136+
fmt.Fprintf(out, " * An image stream tag will be created as %q that will track the source image\n", trackedImage)
137137
}
138138
if refInput.Uses != nil && refInput.Uses.Info() != nil {
139139
matches := []string{}
@@ -171,7 +171,7 @@ func describeBuildPipelineWithImage(out io.Writer, ref app.ComponentReference, p
171171
if buildOut, err := pipeline.Build.Output.BuildOutput(); err == nil && buildOut != nil && buildOut.To != nil {
172172
switch to := buildOut.To; {
173173
case to.Kind == "ImageStreamTag":
174-
fmt.Fprintf(out, " * The resulting image will be pushed to image stream %q\n", to.Name)
174+
fmt.Fprintf(out, " * The resulting image will be pushed to image stream tag %q\n", to.Name)
175175
case to.Kind == "DockerImage":
176176
fmt.Fprintf(out, " * The resulting image will be pushed with Docker to %q\n", to.Name)
177177
default:

test/cmd/newapp.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,16 @@ os::cmd::expect_failure 'oc get dc/mysql'
106106
os::cmd::expect_failure 'oc get dc/php'
107107
os::cmd::expect_success_and_text 'oc new-app -f test/testdata/template-without-app-label.json -o yaml' 'app: ruby-helloworld-sample'
108108

109+
# check reuse imagestreams
110+
os::cmd::expect_success "oc new-build -D $'FROM node:8\nRUN echo \"Test\"' --name=node8"
111+
os::cmd::try_until_success 'oc get imagestreamtags node:8'
112+
os::cmd::expect_success "oc new-build -D $'FROM node:10\nRUN echo \"Test\"' --name=node10"
113+
os::cmd::try_until_success 'oc get imagestreamtags node:10'
114+
os::cmd::expect_success 'oc delete is node'
115+
os::cmd::expect_success 'oc delete is node8'
116+
os::cmd::expect_success 'oc delete is node10'
117+
118+
109119
# check object namespace handling
110120
# hardcoded values should be stripped
111121
os::cmd::expect_success_and_not_text 'oc new-app -f test/testdata/template-with-namespaces.json -o jsonpath="{.items[?(@.metadata.name==\"stripped\")].metadata.namespace}"' 'STRIPPED'

0 commit comments

Comments
 (0)