@@ -60,7 +60,9 @@ module Kpack
6060 }
6161 )
6262 }
63+
6364 before do
65+ TestConfig . override ( { packages : { image_registry : { base_path : 'hub.example.com/user' } } } )
6466 allow ( CloudController ::DependencyLocator . instance ) . to receive ( :k8s_api_client ) . and_return ( client )
6567 allow ( CloudController ::DependencyLocator . instance ) . to receive ( :blobstore_url_generator ) . and_return ( blobstore_url_generator )
6668 allow ( client ) . to receive ( :get_image ) . and_return ( nil )
@@ -102,95 +104,45 @@ module Kpack
102104 stager . stage ( staging_details )
103105 end
104106
105- context 'package image registry is configured' do
106- before do
107- TestConfig . override ( { packages : { image_registry : { base_path : 'hub.example.com/user' } } } )
108- end
109-
110- it 'creates an image with an image path from a registry for the source code using the kpack client' do
111- expect ( client ) . to_not receive ( :update_image )
112- expect ( client ) . to_not receive ( :create_custom_builder )
113- expect ( client ) . to receive ( :create_image ) . with ( Kubeclient ::Resource . new ( {
114- metadata : {
115- name : package . app . guid ,
116- namespace : 'namespace' ,
117- labels : {
118- Stager ::DROPLET_GUID_LABEL_KEY => droplet . guid ,
119- Stager ::APP_GUID_LABEL_KEY => package . app . guid ,
120- Stager ::BUILD_GUID_LABEL_KEY => build . guid ,
121- Stager ::STAGING_SOURCE_LABEL_KEY => 'STG' ,
122- } ,
123- annotations : {
124- 'sidecar.istio.io/inject' => 'false'
125- }
107+ it 'creates an image with an image path from a registry for the source code using the kpack client' do
108+ expect ( client ) . to_not receive ( :update_image )
109+ expect ( client ) . to_not receive ( :create_custom_builder )
110+ expect ( client ) . to receive ( :create_image ) . with ( Kubeclient ::Resource . new ( {
111+ metadata : {
112+ name : package . app . guid ,
113+ namespace : 'namespace' ,
114+ labels : {
115+ Stager ::DROPLET_GUID_LABEL_KEY => droplet . guid ,
116+ Stager ::APP_GUID_LABEL_KEY => package . app . guid ,
117+ Stager ::BUILD_GUID_LABEL_KEY => build . guid ,
118+ Stager ::STAGING_SOURCE_LABEL_KEY => 'STG' ,
126119 } ,
127- spec : {
128- tag : "gcr.io/capi-images/#{ package . app . guid } " ,
129- serviceAccount : 'gcr-service-account' ,
130- builder : {
131- name : 'cf-default-builder' ,
132- kind : 'CustomBuilder'
133- } ,
134- source : {
135- registry : {
136- image : "hub.example.com/user/#{ package . guid } @sha256:#{ package . sha256_checksum } " ,
137- }
138- } ,
139- build : {
140- env : [
141- { name : 'BP_JAVA_VERSION' , value : '8.*' } ,
142- { name : 'BPL_HEAD_ROOM' , value : '0' } ,
143- ]
144- }
120+ annotations : {
121+ 'sidecar.istio.io/inject' => 'false'
145122 }
146- } ) )
147-
148- stager . stage ( staging_details )
149- end
150- end
151-
152- context 'package image registry is not configured' do
153- it 'creates an image with a blobstore url for the source code using the kpack client' do
154- expect ( client ) . to_not receive ( :update_image )
155- expect ( client ) . to_not receive ( :create_custom_builder )
156- expect ( client ) . to receive ( :create_image ) . with ( Kubeclient ::Resource . new ( {
157- metadata : {
158- name : package . app . guid ,
159- namespace : 'namespace' ,
160- labels : {
161- Stager ::DROPLET_GUID_LABEL_KEY => droplet . guid ,
162- Stager ::APP_GUID_LABEL_KEY => package . app . guid ,
163- Stager ::BUILD_GUID_LABEL_KEY => build . guid ,
164- Stager ::STAGING_SOURCE_LABEL_KEY => 'STG' ,
165- } ,
166- annotations : {
167- 'sidecar.istio.io/inject' => 'false'
168- }
123+ } ,
124+ spec : {
125+ tag : "gcr.io/capi-images/#{ package . app . guid } " ,
126+ serviceAccount : 'gcr-service-account' ,
127+ builder : {
128+ name : 'cf-default-builder' ,
129+ kind : 'CustomBuilder'
169130 } ,
170- spec : {
171- tag : "gcr.io/capi-images/#{ package . app . guid } " ,
172- serviceAccount : 'gcr-service-account' ,
173- builder : {
174- name : 'cf-default-builder' ,
175- kind : 'CustomBuilder'
176- } ,
177- source : {
178- blob : {
179- url : 'package-download-url' ,
180- }
181- } ,
182- build : {
183- env : [
184- { name : 'BP_JAVA_VERSION' , value : '8.*' } ,
185- { name : 'BPL_HEAD_ROOM' , value : '0' } ,
186- ]
131+ source : {
132+ registry : {
133+ image : "hub.example.com/user/#{ package . guid } @sha256:#{ package . sha256_checksum } " ,
187134 }
135+ } ,
136+ build : {
137+ env : [
138+ { name : 'BP_JAVA_VERSION' , value : '8.*' } ,
139+ { name : 'BPL_HEAD_ROOM' , value : '0' } ,
140+ ]
188141 }
189- } ) )
142+ }
143+ } ) )
190144
191- stager . stage ( staging_details )
192- expect ( blobstore_url_generator ) . to have_received ( :package_download_url ) . with ( package )
193- end
145+ stager . stage ( staging_details )
194146 end
195147
196148 context 'when specifying buildpacks for a build' do
@@ -323,7 +275,7 @@ module Kpack
323275 name : 'cf-autodetect-builder' , # legacy Builder to verify that image update includes new CustomBuilder
324276 kind : 'Builder'
325277 } ,
326- source : {
278+ source : { # here we test that blob sources can be upgraded to registry sources in-place
327279 blob : {
328280 url : 'old-package-url' ,
329281 }
@@ -347,7 +299,11 @@ module Kpack
347299 updated_image = Kubeclient ::Resource . new ( existing_image . to_hash )
348300 updated_image . metadata . labels [ Kpack ::Stager ::BUILD_GUID_LABEL_KEY . to_sym ] = build . guid
349301 updated_image . metadata . labels [ Kpack ::Stager ::DROPLET_GUID_LABEL_KEY . to_sym ] = droplet . guid
350- updated_image . spec . source . blob . url = 'package-download-url'
302+ updated_image . spec . source = {
303+ registry : {
304+ image : "hub.example.com/user/#{ package . guid } @sha256:#{ package . sha256_checksum } " ,
305+ }
306+ }
351307 updated_image . spec . build . env = [
352308 { name : 'FOO' , value : 'BAR' }
353309 ]
0 commit comments