Skip to content

Commit 94943bd

Browse files
authored
Merge pull request #2793 from k8s-infra-cherrypick-robot/cherry-pick-2747-to-release-1.4
[release-1.4] fix: format azure compute gallery image ID
2 parents 882f091 + c4b8632 commit 94943bd

File tree

44 files changed

+169
-50
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+169
-50
lines changed

.codespellignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@ witht
33
geting
44
ot
55
intepreted
6+
updat
7+
shouldnot

azure/converters/image.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,11 @@ func mpImageToSDK(image *infrav1.Image) (*compute.ImageReference, error) {
5050
}
5151

5252
func computeImageToSDK(image *infrav1.Image) (*compute.ImageReference, error) {
53-
idTemplate := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Compute/galleries/%s/images/%s/versions/%s"
53+
if image.ComputeGallery == nil && image.SharedGallery == nil {
54+
return nil, errors.New("unable to convert compute image to SDK as SharedGallery or ComputeGallery fields are not set")
55+
}
5456

57+
idTemplate := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Compute/galleries/%s/images/%s/versions/%s"
5558
if image.SharedGallery != nil {
5659
return &compute.ImageReference{
5760
ID: to.StringPtr(fmt.Sprintf(idTemplate,
@@ -69,8 +72,8 @@ func computeImageToSDK(image *infrav1.Image) (*compute.ImageReference, error) {
6972
if image.ComputeGallery.ResourceGroup != nil && image.ComputeGallery.SubscriptionID != nil {
7073
return &compute.ImageReference{
7174
ID: to.StringPtr(fmt.Sprintf(idTemplate,
72-
image.ComputeGallery.SubscriptionID,
73-
image.ComputeGallery.ResourceGroup,
75+
to.String(image.ComputeGallery.SubscriptionID),
76+
to.String(image.ComputeGallery.ResourceGroup),
7477
image.ComputeGallery.Gallery,
7578
image.ComputeGallery.Name,
7679
image.ComputeGallery.Version,

azure/converters/image_test.go

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,3 +146,84 @@ func Test_ImageToPlan(t *testing.T) {
146146
})
147147
}
148148
}
149+
150+
func Test_ComputeImageToSDK(t *testing.T) {
151+
cases := []struct {
152+
name string
153+
image *infrav1.Image
154+
expect func(*GomegaWithT, *compute.ImageReference, error)
155+
}{
156+
{
157+
name: "Should return parsed compute gallery image id",
158+
image: &infrav1.Image{
159+
ComputeGallery: &infrav1.AzureComputeGalleryImage{
160+
ResourceGroup: to.StringPtr("my-resourcegroup"),
161+
SubscriptionID: to.StringPtr("my-subscription-id"),
162+
Gallery: "my-gallery",
163+
Name: "my-image",
164+
Version: "my-version",
165+
},
166+
},
167+
expect: func(g *GomegaWithT, result *compute.ImageReference, err error) {
168+
g.Expect(err).Should(BeNil())
169+
g.Expect(result).To(Equal(&compute.ImageReference{
170+
ID: to.StringPtr("/subscriptions/my-subscription-id/resourceGroups/my-resourcegroup/providers/Microsoft.Compute/galleries/my-gallery/images/my-image/versions/my-version"),
171+
}))
172+
},
173+
},
174+
{
175+
name: "Should return parsed shared gallery image id",
176+
image: &infrav1.Image{
177+
SharedGallery: &infrav1.AzureSharedGalleryImage{
178+
ResourceGroup: "my-resourcegroup",
179+
SubscriptionID: "my-subscription-id",
180+
Gallery: "my-gallery",
181+
Name: "my-image",
182+
Version: "my-version",
183+
},
184+
},
185+
expect: func(g *GomegaWithT, result *compute.ImageReference, err error) {
186+
g.Expect(err).Should(BeNil())
187+
g.Expect(result).To(Equal(&compute.ImageReference{
188+
ID: to.StringPtr("/subscriptions/my-subscription-id/resourceGroups/my-resourcegroup/providers/Microsoft.Compute/galleries/my-gallery/images/my-image/versions/my-version"),
189+
}))
190+
},
191+
},
192+
{
193+
name: "Should return parsed community gallery image id",
194+
image: &infrav1.Image{
195+
ComputeGallery: &infrav1.AzureComputeGalleryImage{
196+
Gallery: "my-gallery",
197+
Name: "my-image",
198+
Version: "my-version",
199+
},
200+
},
201+
expect: func(g *GomegaWithT, result *compute.ImageReference, err error) {
202+
g.Expect(err).Should(BeNil())
203+
g.Expect(result).To(Equal(&compute.ImageReference{
204+
CommunityGalleryImageID: to.StringPtr("/CommunityGalleries/my-gallery/Images/my-image/Versions/my-version"),
205+
}))
206+
},
207+
},
208+
{
209+
name: "Should return error if SharedGallery and ComputeGallery are nil",
210+
image: &infrav1.Image{
211+
ComputeGallery: nil,
212+
SharedGallery: nil,
213+
},
214+
expect: func(g *GomegaWithT, result *compute.ImageReference, err error) {
215+
g.Expect(err).ShouldNot(BeNil())
216+
},
217+
},
218+
}
219+
220+
for _, c := range cases {
221+
c := c
222+
t.Run(c.name, func(t *testing.T) {
223+
t.Parallel()
224+
g := NewGomegaWithT(t)
225+
result, err := computeImageToSDK(c.image)
226+
c.expect(g, result, err)
227+
})
228+
}
229+
}

azure/mock_azure/doc.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ limitations under the License.
1515
*/
1616

1717
// Run go generate to regenerate this mock.
18+
//
1819
//go:generate ../../hack/tools/bin/mockgen -destination azure_mock.go -package mock_azure -source ../interfaces.go
1920
//go:generate /usr/bin/env bash -c "cat ../../hack/boilerplate/boilerplate.generatego.txt azure_mock.go > _azure_mock.go && mv _azure_mock.go azure_mock.go"
2021
package mock_azure //nolint

azure/scope/machine.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -356,9 +356,9 @@ func (m *MachineScope) Subnet() infrav1.SubnetSpec {
356356

357357
// AvailabilityZone returns the AzureMachine Availability Zone.
358358
// Priority for selecting the AZ is
359-
// 1) Machine.Spec.FailureDomain
360-
// 2) AzureMachine.Spec.FailureDomain (This is to support deprecated AZ)
361-
// 3) No AZ
359+
// 1. Machine.Spec.FailureDomain
360+
// 2. AzureMachine.Spec.FailureDomain (This is to support deprecated AZ)
361+
// 3. No AZ
362362
func (m *MachineScope) AvailabilityZone() string {
363363
if m.Machine.Spec.FailureDomain != nil {
364364
return *m.Machine.Spec.FailureDomain

azure/scope/mocks/doc.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ limitations under the License.
1515
*/
1616

1717
// Run go generate to regenerate this mock.
18+
//
1819
//go:generate ../../../hack/tools/bin/mockgen -destination node_getter_mock.go -package mock_scope -source ../machinepoolmachine.go nodeGetter
1920
//go:generate /usr/bin/env bash -c "cat ../../../hack/boilerplate/boilerplate.generatego.txt node_getter_mock.go > _node_getter_mock.go && mv _node_getter_mock.go node_getter_mock.go"
2021
package mock_scope //nolint

azure/services/async/mock_async/doc.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ limitations under the License.
1515
*/
1616

1717
// Run go generate to regenerate this mock.
18+
//
1819
//go:generate ../../../../hack/tools/bin/mockgen -destination async_mock.go -package mock_async -source ../interfaces.go FutureHandler
1920
//go:generate /usr/bin/env bash -c "cat ../../../../hack/boilerplate/boilerplate.generatego.txt async_mock.go > _async_mock.go && mv _async_mock.go async_mock.go"
2021
package mock_async //nolint

azure/services/availabilitysets/mock_availabilitysets/doc.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ limitations under the License.
1515
*/
1616

1717
// Run go generate to regenerate this mock.
18+
//
1819
//go:generate ../../../../hack/tools/bin/mockgen -destination client_mock.go -package mock_availabilitysets -source ../client.go Client
1920
//go:generate ../../../../hack/tools/bin/mockgen -destination availabilitysets_mock.go -package mock_availabilitysets -source ../availabilitysets.go AvailabilitySetScope
2021
//go:generate /usr/bin/env bash -c "cat ../../../../hack/boilerplate/boilerplate.generatego.txt client_mock.go > _client_mock.go && mv _client_mock.go client_mock.go"

azure/services/bastionhosts/mocks_bastionhosts/doc.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ limitations under the License.
1515
*/
1616

1717
// Run go generate to regenerate this mock.
18+
//
1819
//go:generate ../../../../hack/tools/bin/mockgen -destination bastionhosts_mock.go -package mock_bastionhosts -source ../bastionhosts.go BastionScope
1920
//go:generate /usr/bin/env bash -c "cat ../../../../hack/boilerplate/boilerplate.generatego.txt bastionhosts_mock.go > _bastionhosts_mock.go && mv _bastionhosts_mock.go bastionhosts_mock.go"
2021
package mock_bastionhosts //nolint

azure/services/disks/mock_disks/doc.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ limitations under the License.
1515
*/
1616

1717
// Run go generate to regenerate this mock.
18+
//
1819
//go:generate ../../../../hack/tools/bin/mockgen -destination disks_mock.go -package mock_disks -source ../disks.go DiskScope
1920
//go:generate /usr/bin/env bash -c "cat ../../../../hack/boilerplate/boilerplate.generatego.txt disks_mock.go > _disks_mock.go && mv _disks_mock.go disks_mock.go"
2021
package mock_disks //nolint

0 commit comments

Comments
 (0)