From 43e5aec804a8c4a1e2e97d0957591827f0f89dd4 Mon Sep 17 00:00:00 2001 From: Lennart Jern Date: Wed, 31 Dec 2025 06:30:36 +0000 Subject: [PATCH 1/3] E2E: Use bucket for flatcar production image There seems to be an issue with downloading the image straight from upstream. This adds GlanceName to the DownloadImage struct to allow overriding the inferred Glance image name, since the bucket filename includes a version number but we want the Glance image to keep the original name. Signed-off-by: Lennart Jern --- test/e2e/shared/images.go | 19 ++++++++++++------- test/e2e/suites/e2e/e2e_test.go | 5 +++-- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/test/e2e/shared/images.go b/test/e2e/shared/images.go index cfa2e4da4d..bc302bbc33 100644 --- a/test/e2e/shared/images.go +++ b/test/e2e/shared/images.go @@ -60,6 +60,8 @@ type DownloadImage struct { ArtifactPath string // A hash used to verify the downloaded image Hash, HashAlgorithm string + // GlanceName overrides the inferred Glance image name if set + GlanceName string } func CoreImages(e2eCtx *E2EContext) []DownloadImage { @@ -128,13 +130,16 @@ func ApplyGlanceImages(ctx context.Context, e2eCtx *E2EContext, images []Downloa Expect(err).NotTo(HaveOccurred(), "parsing "+url) d := strings.Split(u.Path, "/") Expect(len(d)).To(BeNumerically(">", 1), "Not enough path elements in "+url) - glanceName := d[len(d)-1] - - // Remove the type suffix - for _, suffix := range []string{".img", ".qcow2"} { - if strings.HasSuffix(glanceName, suffix) { - glanceName = glanceName[:len(glanceName)-len(suffix)] - continue + glanceName := image.GlanceName + if glanceName == "" { + glanceName = d[len(d)-1] + + // Remove the type suffix + for _, suffix := range []string{".img", ".qcow2"} { + if strings.HasSuffix(glanceName, suffix) { + glanceName = glanceName[:len(glanceName)-len(suffix)] + continue + } } } diff --git a/test/e2e/suites/e2e/e2e_test.go b/test/e2e/suites/e2e/e2e_test.go index a444e89b04..b916c9aa4e 100644 --- a/test/e2e/suites/e2e/e2e_test.go +++ b/test/e2e/suites/e2e/e2e_test.go @@ -71,8 +71,9 @@ func flatcarImages(e2eCtx *shared.E2EContext) []shared.DownloadImage { ArtifactPath: "flatcar/" + e2eCtx.E2EConfig.GetVariable("OPENSTACK_FLATCAR_IMAGE_NAME") + ".img", }, { - Name: "flatcar-openstack", - URL: "https://stable.release.flatcar-linux.net/amd64-usr/current/flatcar_production_openstack_image.img", + Name: "flatcar-openstack", + URL: "https://storage.googleapis.com/artifacts.k8s-staging-capi-openstack.appspot.com/test/flatcar/flatcar_production_openstack_image-4459.2.2.img", + GlanceName: "flatcar_production_openstack_image", }, } } From afb6bedc66e996eea217df42126bcda7249d8a09 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Jan 2026 06:50:55 +0000 Subject: [PATCH 2/3] :seedling:(deps): Bump github.com/gophercloud/gophercloud/v2 Bumps the all-go-mod-patch-and-minor group with 1 update in the / directory: [github.com/gophercloud/gophercloud/v2](https://github.com/gophercloud/gophercloud). Updates `github.com/gophercloud/gophercloud/v2` from 2.9.0 to 2.10.0 - [Release notes](https://github.com/gophercloud/gophercloud/releases) - [Changelog](https://github.com/gophercloud/gophercloud/blob/v2.10.0/CHANGELOG.md) - [Commits](https://github.com/gophercloud/gophercloud/compare/v2.9.0...v2.10.0) --- updated-dependencies: - dependency-name: github.com/gophercloud/gophercloud/v2 dependency-version: 2.10.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-go-mod-patch-and-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- hack/tools/go.mod | 2 +- hack/tools/go.sum | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 304b928108..4f1f9900fa 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/google/go-cmp v0.7.0 github.com/google/gofuzz v1.2.0 github.com/google/uuid v1.6.0 - github.com/gophercloud/gophercloud/v2 v2.9.0 + github.com/gophercloud/gophercloud/v2 v2.10.0 github.com/gophercloud/utils/v2 v2.0.0-20241209100706-e3a3b7c07d26 github.com/hashicorp/go-version v1.8.0 github.com/k-orc/openstack-resource-controller v1.0.2 diff --git a/go.sum b/go.sum index 9ea016fef2..c51e6e6963 100644 --- a/go.sum +++ b/go.sum @@ -141,8 +141,8 @@ github.com/google/safetext v0.0.0-20220905092116-b49f7bc46da2 h1:SJ+NtwL6QaZ21U+ github.com/google/safetext v0.0.0-20220905092116-b49f7bc46da2/go.mod h1:Tv1PlzqC9t8wNnpPdctvtSUOPUUg4SHeE6vR1Ir2hmg= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/gophercloud/gophercloud/v2 v2.9.0 h1:Y9OMrwKF9EDERcHFSOTpf/6XGoAI0yOxmsLmQki4LPM= -github.com/gophercloud/gophercloud/v2 v2.9.0/go.mod h1:Ki/ILhYZr/5EPebrPL9Ej+tUg4lqx71/YH2JWVeU+Qk= +github.com/gophercloud/gophercloud/v2 v2.10.0 h1:NRadC0aHNvy4iMoFXj5AFiPmut/Sj3hAPAo9B59VMGc= +github.com/gophercloud/gophercloud/v2 v2.10.0/go.mod h1:Ki/ILhYZr/5EPebrPL9Ej+tUg4lqx71/YH2JWVeU+Qk= github.com/gophercloud/utils/v2 v2.0.0-20241209100706-e3a3b7c07d26 h1:N65GYmx5LrMeYdeXcxMESDU+2pDyAOXlFNlHl7siUwM= github.com/gophercloud/utils/v2 v2.0.0-20241209100706-e3a3b7c07d26/go.mod h1:7SHUbtoiSYINNKgAVxse+PMhIio05IK7shHy8DVRaN0= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= diff --git a/hack/tools/go.mod b/hack/tools/go.mod index 0d096f4336..f0b1a7777f 100644 --- a/hack/tools/go.mod +++ b/hack/tools/go.mod @@ -53,7 +53,7 @@ require ( github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/gophercloud/gophercloud/v2 v2.9.0 // indirect + github.com/gophercloud/gophercloud/v2 v2.10.0 // indirect github.com/gophercloud/utils/v2 v2.0.0-20241209100706-e3a3b7c07d26 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect github.com/hashicorp/go-version v1.8.0 // indirect diff --git a/hack/tools/go.sum b/hack/tools/go.sum index 3dec2423aa..80a2faa87f 100644 --- a/hack/tools/go.sum +++ b/hack/tools/go.sum @@ -141,8 +141,8 @@ github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaU github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/gophercloud/gophercloud/v2 v2.9.0 h1:Y9OMrwKF9EDERcHFSOTpf/6XGoAI0yOxmsLmQki4LPM= -github.com/gophercloud/gophercloud/v2 v2.9.0/go.mod h1:Ki/ILhYZr/5EPebrPL9Ej+tUg4lqx71/YH2JWVeU+Qk= +github.com/gophercloud/gophercloud/v2 v2.10.0 h1:NRadC0aHNvy4iMoFXj5AFiPmut/Sj3hAPAo9B59VMGc= +github.com/gophercloud/gophercloud/v2 v2.10.0/go.mod h1:Ki/ILhYZr/5EPebrPL9Ej+tUg4lqx71/YH2JWVeU+Qk= github.com/gophercloud/utils/v2 v2.0.0-20241209100706-e3a3b7c07d26 h1:N65GYmx5LrMeYdeXcxMESDU+2pDyAOXlFNlHl7siUwM= github.com/gophercloud/utils/v2 v2.0.0-20241209100706-e3a3b7c07d26/go.mod h1:7SHUbtoiSYINNKgAVxse+PMhIio05IK7shHy8DVRaN0= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= From 6f361821c236e1846edd5a0c0b75ea790cbeea8f Mon Sep 17 00:00:00 2001 From: shiftstack-merge-bot Date: Mon, 12 Jan 2026 12:05:09 +0000 Subject: [PATCH 3/3] Updating and vendoring go modules after an upstream merge --- .../gophercloud/gophercloud/v2/CHANGELOG.md | 12 ++++++++++++ .../v2/openstack/image/v2/images/results.go | 10 ++++++++-- .../v2/openstack/networking/v2/ports/requests.go | 1 + .../gophercloud/gophercloud/v2/provider_client.go | 2 +- vendor/modules.txt | 2 +- 5 files changed, 23 insertions(+), 4 deletions(-) diff --git a/vendor/github.com/gophercloud/gophercloud/v2/CHANGELOG.md b/vendor/github.com/gophercloud/gophercloud/v2/CHANGELOG.md index 773af218e9..d53f641b8a 100644 --- a/vendor/github.com/gophercloud/gophercloud/v2/CHANGELOG.md +++ b/vendor/github.com/gophercloud/gophercloud/v2/CHANGELOG.md @@ -1,3 +1,15 @@ +## v2.10.0 (2026-01-05) + +* [GH-3569](https://github.com/gophercloud/gophercloud/pull/3569) identity/role: restore backward compatibility for description +* [GH-3570](https://github.com/gophercloud/gophercloud/pull/3570) [v2] identityv3/service: add `name` and `description` fields +* [GH-3577](https://github.com/gophercloud/gophercloud/pull/3577) [v2] add: description field to identity.v3.Endpoint +* [GH-3580](https://github.com/gophercloud/gophercloud/pull/3580) [v2] keystone: add support for per page limit +* [GH-3582](https://github.com/gophercloud/gophercloud/pull/3582) [v2] network.v2.Port: add support for update mac_address +* [GH-3585](https://github.com/gophercloud/gophercloud/pull/3585) [v2] identity.v3.Endpoint: add enabled field on creation and on update +* [GH-3590](https://github.com/gophercloud/gophercloud/pull/3590) [v2] fix (image/v2/images): image v2 unmarshal issue +* [GH-3594](https://github.com/gophercloud/gophercloud/pull/3594) [v2] Add new fields for ListOpts volumetypes +* [GH-3595](https://github.com/gophercloud/gophercloud/pull/3595) [v2] identity.v3.Endpoint: make name as optional on creation + ## v2.9.0 (2025-11-17) * [GH-3508](https://github.com/gophercloud/gophercloud/pull/3508) [v2] Trigger "hold" workflow on merge groups diff --git a/vendor/github.com/gophercloud/gophercloud/v2/openstack/image/v2/images/results.go b/vendor/github.com/gophercloud/gophercloud/v2/openstack/image/v2/images/results.go index 6652f0e791..3af7136326 100644 --- a/vendor/github.com/gophercloud/gophercloud/v2/openstack/image/v2/images/results.go +++ b/vendor/github.com/gophercloud/gophercloud/v2/openstack/image/v2/images/results.go @@ -70,7 +70,7 @@ type Image struct { // Properties is a set of key-value pairs, if any, that are associated with // the image. - Properties map[string]any + Properties map[string]any `json:"-"` // CreatedAt is the date when the image has been created. CreatedAt time.Time `json:"created_at"` @@ -102,6 +102,7 @@ func (r *Image) UnmarshalJSON(b []byte) error { type tmp Image var s struct { tmp + Properties string `json:"properties"` SizeBytes any `json:"size"` OpenStackImageImportMethods string `json:"openstack-image-import-methods"` OpenStackImageStoreIDs string `json:"openstack-image-store-ids"` @@ -123,7 +124,7 @@ func (r *Image) UnmarshalJSON(b []byte) error { return fmt.Errorf("Unknown type for SizeBytes: %v (value: %v)", reflect.TypeOf(t), t) } - // Bundle all other fields into Properties + // Bundle all other fields into Properties, except for the field named "properties" var result any err = json.Unmarshal(b, &result) if err != nil { @@ -137,6 +138,11 @@ func (r *Image) UnmarshalJSON(b []byte) error { r.Properties = gophercloud.RemainingKeys(Image{}, resultMap) } + // Add the "properties" field to the image since it's not included in above step (i.e. in remaining keys) + if s.Properties != "" { + r.Properties["properties"] = s.Properties + } + if v := strings.FieldsFunc(strings.TrimSpace(s.OpenStackImageImportMethods), splitFunc); len(v) > 0 { r.OpenStackImageImportMethods = v } diff --git a/vendor/github.com/gophercloud/gophercloud/v2/openstack/networking/v2/ports/requests.go b/vendor/github.com/gophercloud/gophercloud/v2/openstack/networking/v2/ports/requests.go index bfff2dffb2..a9c5c37535 100644 --- a/vendor/github.com/gophercloud/gophercloud/v2/openstack/networking/v2/ports/requests.go +++ b/vendor/github.com/gophercloud/gophercloud/v2/openstack/networking/v2/ports/requests.go @@ -197,6 +197,7 @@ type UpdateOpts struct { AllowedAddressPairs *[]AddressPair `json:"allowed_address_pairs,omitempty"` PropagateUplinkStatus *bool `json:"propagate_uplink_status,omitempty"` ValueSpecs *map[string]string `json:"value_specs,omitempty"` + MACAddress *string `json:"mac_address,omitempty"` // RevisionNumber implements extension:standard-attr-revisions. If != "" it // will set revision_number=%s. If the revision number does not match, the diff --git a/vendor/github.com/gophercloud/gophercloud/v2/provider_client.go b/vendor/github.com/gophercloud/gophercloud/v2/provider_client.go index 9048e83def..a9bde9457c 100644 --- a/vendor/github.com/gophercloud/gophercloud/v2/provider_client.go +++ b/vendor/github.com/gophercloud/gophercloud/v2/provider_client.go @@ -14,7 +14,7 @@ import ( // DefaultUserAgent is the default User-Agent string set in the request header. const ( - DefaultUserAgent = "gophercloud/v2.9.0" + DefaultUserAgent = "gophercloud/v2.10.0" DefaultMaxBackoffRetries = 60 ) diff --git a/vendor/modules.txt b/vendor/modules.txt index 25992bac5f..8ffea4d48c 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -250,7 +250,7 @@ github.com/google/safetext/yamltemplate # github.com/google/uuid v1.6.0 ## explicit github.com/google/uuid -# github.com/gophercloud/gophercloud/v2 v2.9.0 +# github.com/gophercloud/gophercloud/v2 v2.10.0 ## explicit; go 1.22 github.com/gophercloud/gophercloud/v2 github.com/gophercloud/gophercloud/v2/openstack