Skip to content
This repository was archived by the owner on Dec 16, 2025. It is now read-only.

Commit 3b469aa

Browse files
authored
Merge branch 'main' into renovate/cspo-manager-image
2 parents e290b8f + 2f3a9e6 commit 3b469aa

File tree

123 files changed

+5904
-2140
lines changed

Some content is hidden

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

123 files changed

+5904
-2140
lines changed

api/v1alpha1/openstacknodeimagerelease_types.go

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,57 @@ type OpenStackNodeImage struct {
4242
}
4343

4444
// CreateOpts represents options used to create an image.
45-
type CreateOpts images.CreateOpts
45+
// TODO: Reimplement logic to import `images.CreateOpts` from Gophercloud with a `Properties` override.
46+
// The current `images.CreateOpts` defines `json:"-"` for the `Properties` field, making it unsuitable
47+
// for proper unmarshalling required for `CreateOpts` used in Kubernetes resources
48+
// and `nodeimagerelease.yaml`.
49+
// One solution is to create a new struct specifically for unmarshalling
50+
// that embeds `images.CreateOpts` and redefines the `Properties` field to allow proper handling.
51+
type CreateOpts struct {
52+
// Name is the name of the new image.
53+
Name string `json:"name" required:"true"`
54+
55+
// Id is the the image ID.
56+
ID string `json:"id,omitempty"`
57+
58+
// Visibility defines who can see/use the image.
59+
Visibility *images.ImageVisibility `json:"visibility,omitempty"`
60+
61+
// Hidden is whether the image is listed in default image list or not.
62+
//nolint:tagliatelle // Allow snake_case JSON tags
63+
Hidden *bool `json:"os_hidden,omitempty"`
64+
65+
// Tags is a set of image tags.
66+
Tags []string `json:"tags,omitempty"`
67+
68+
// ContainerFormat is the format of the
69+
// container. Valid values are ami, ari, aki, bare, and ovf.
70+
//nolint:tagliatelle // Allow snake_case JSON tags
71+
ContainerFormat string `json:"container_format,omitempty"`
72+
73+
// DiskFormat is the format of the disk. If set,
74+
// valid values are ami, ari, aki, vhd, vmdk, raw, qcow2, vdi,
75+
// and iso.
76+
//nolint:tagliatelle // Allow snake_case JSON tags
77+
DiskFormat string `json:"disk_format,omitempty"`
78+
79+
// MinDisk is the amount of disk space in
80+
// GB that is required to boot the image.
81+
//nolint:tagliatelle // Allow snake_case JSON tags
82+
MinDisk int `json:"min_disk,omitempty"`
83+
84+
// MinRAM is the amount of RAM in MB that
85+
// is required to boot the image.
86+
//nolint:tagliatelle // Allow snake_case JSON tags
87+
MinRAM int `json:"min_ram,omitempty"`
88+
89+
// protected is whether the image is not deletable.
90+
Protected *bool `json:"protected,omitempty"`
91+
92+
// properties is a set of properties, if any, that
93+
// are associated with the image.
94+
Properties map[string]string `json:"properties,omitempty"`
95+
}
4696

4797
// OpenStackNodeImageReleaseStatus defines the observed state of OpenStackNodeImageRelease.
4898
type OpenStackNodeImageReleaseStatus struct {

config/crd/bases/infrastructure.clusterstack.x-k8s.io_openstacknodeimagereleases.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,13 @@ spec:
114114
description: Hidden is whether the image is listed in default
115115
image list or not.
116116
type: boolean
117+
properties:
118+
additionalProperties:
119+
type: string
120+
description: |-
121+
properties is a set of properties, if any, that
122+
are associated with the image.
123+
type: object
117124
protected:
118125
description: protected is whether the image is not deletable.
119126
type: boolean

go.mod

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,22 @@ module github.com/SovereignCloudStack/cluster-stack-provider-openstack
22

33
go 1.22.0
44

5-
toolchain go1.23.3
5+
toolchain go1.23.5
66

77
require (
8-
github.com/SovereignCloudStack/cluster-stack-operator v0.1.0-alpha.7
9-
github.com/gophercloud/gophercloud/v2 v2.2.0
10-
github.com/gophercloud/utils/v2 v2.0.0-20240812072210-8ce1fc0f2894
11-
github.com/onsi/ginkgo/v2 v2.22.0
12-
github.com/onsi/gomega v1.36.0
8+
github.com/SovereignCloudStack/cluster-stack-operator v0.1.0-alpha.8
9+
github.com/gophercloud/gophercloud/v2 v2.4.0
10+
github.com/gophercloud/utils/v2 v2.0.0-20250106080359-c8704d65b4fa
11+
github.com/onsi/ginkgo/v2 v2.22.2
12+
github.com/onsi/gomega v1.36.2
1313
github.com/stretchr/testify v1.10.0
14-
k8s.io/api v0.30.7
15-
k8s.io/apimachinery v0.30.7
16-
k8s.io/client-go v0.30.7
14+
k8s.io/api v0.30.9
15+
k8s.io/apimachinery v0.30.9
16+
k8s.io/client-go v0.30.9
1717
k8s.io/klog/v2 v2.130.1
18-
sigs.k8s.io/cluster-api v1.8.5
19-
sigs.k8s.io/cluster-api-provider-openstack v0.11.3
20-
sigs.k8s.io/controller-runtime v0.18.5
18+
sigs.k8s.io/cluster-api v1.8.8
19+
sigs.k8s.io/cluster-api-provider-openstack v0.11.4
20+
sigs.k8s.io/controller-runtime v0.18.7
2121
sigs.k8s.io/yaml v1.4.0
2222
)
2323

@@ -40,7 +40,7 @@ require (
4040
github.com/go-openapi/jsonreference v0.20.2 // indirect
4141
github.com/go-openapi/swag v0.22.4 // indirect
4242
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
43-
github.com/gobuffalo/flect v1.0.2 // indirect
43+
github.com/gobuffalo/flect v1.0.3 // indirect
4444
github.com/gofrs/uuid/v5 v5.3.0 // indirect
4545
github.com/gogo/protobuf v1.3.2 // indirect
4646
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
@@ -49,14 +49,13 @@ require (
4949
github.com/google/go-cmp v0.6.0 // indirect
5050
github.com/google/go-querystring v1.1.0 // indirect
5151
github.com/google/gofuzz v1.2.0 // indirect
52-
github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db // indirect
52+
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect
5353
github.com/google/uuid v1.6.0 // indirect
5454
github.com/imdario/mergo v0.3.15 // indirect
5555
github.com/josharian/intern v1.0.0 // indirect
5656
github.com/json-iterator/go v1.1.12 // indirect
5757
github.com/klauspost/compress v1.17.9 // indirect
5858
github.com/mailru/easyjson v0.7.7 // indirect
59-
github.com/mitchellh/go-homedir v1.1.0 // indirect
6059
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
6160
github.com/modern-go/reflect2 v1.0.2 // indirect
6261
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
@@ -72,23 +71,23 @@ require (
7271
github.com/stretchr/objx v0.5.2 // indirect
7372
go.uber.org/multierr v1.11.0 // indirect
7473
go.uber.org/zap v1.27.0 // indirect
75-
golang.org/x/crypto v0.29.0 // indirect
74+
golang.org/x/crypto v0.32.0 // indirect
7675
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
77-
golang.org/x/mod v0.21.0 // indirect
78-
golang.org/x/net v0.30.0 // indirect
79-
golang.org/x/oauth2 v0.21.0 // indirect
80-
golang.org/x/sync v0.9.0 // indirect
81-
golang.org/x/sys v0.27.0 // indirect
82-
golang.org/x/term v0.26.0 // indirect
83-
golang.org/x/text v0.20.0 // indirect
76+
golang.org/x/mod v0.22.0 // indirect
77+
golang.org/x/net v0.33.0 // indirect
78+
golang.org/x/oauth2 v0.24.0 // indirect
79+
golang.org/x/sync v0.10.0 // indirect
80+
golang.org/x/sys v0.29.0 // indirect
81+
golang.org/x/term v0.28.0 // indirect
82+
golang.org/x/text v0.21.0 // indirect
8483
golang.org/x/time v0.5.0 // indirect
85-
golang.org/x/tools v0.26.0 // indirect
84+
golang.org/x/tools v0.28.0 // indirect
8685
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
87-
google.golang.org/protobuf v1.35.1 // indirect
86+
google.golang.org/protobuf v1.36.1 // indirect
8887
gopkg.in/inf.v0 v0.9.1 // indirect
8988
gopkg.in/yaml.v2 v2.4.0 // indirect
9089
gopkg.in/yaml.v3 v3.0.1 // indirect
91-
k8s.io/apiextensions-apiserver v0.30.7 // indirect
90+
k8s.io/apiextensions-apiserver v0.30.9 // indirect
9291
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
9392
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect
9493
oras.land/oras-go/v2 v2.5.0 // indirect

0 commit comments

Comments
 (0)