Skip to content

Commit c88156d

Browse files
committed
address changes requested by @robertvolkmann
1 parent fb697ce commit c88156d

File tree

4 files changed

+20
-17
lines changed

4 files changed

+20
-17
lines changed

cmd/root.go

+16-15
Original file line numberDiff line numberDiff line change
@@ -227,29 +227,30 @@ func initConfigWithViperCtx(c *config) error {
227227
certificateAuthorityData := viper.GetString("certificate-authority-data")
228228

229229
var (
230-
client metalgo.Client
231-
err error
232-
transport *http.Transport
230+
client metalgo.Client
231+
clientOptions []metalgo.ClientOption
232+
err error
233+
transport *http.Transport
233234
)
234235

235-
if certificateAuthorityData == "" {
236-
if hmacAuthType == "" {
237-
client, err = metalgo.NewClient(driverURL, metalgo.BearerToken(apiToken), metalgo.HMACAuth(hmacKey, "Metal-Admin"))
238-
} else {
239-
client, err = metalgo.NewClient(driverURL, metalgo.BearerToken(apiToken), metalgo.HMACAuth(hmacKey, hmacAuthType))
240-
}
241-
} else {
236+
clientOptions = append(clientOptions, metalgo.BearerToken(apiToken))
237+
238+
if certificateAuthorityData != "" {
242239
transport, err = createTLSTransport(certificateAuthorityData)
243240
if err != nil {
244241
return err
245242
}
246243

247-
if hmacAuthType == "" {
248-
client, err = metalgo.NewClient(driverURL, metalgo.BearerToken(apiToken), metalgo.HMACAuth(hmacKey, "Metal-Admin"), metalgo.Transport(transport))
249-
} else {
250-
client, err = metalgo.NewClient(driverURL, metalgo.BearerToken(apiToken), metalgo.HMACAuth(hmacKey, hmacAuthType), metalgo.Transport(transport))
251-
}
244+
clientOptions = append(clientOptions, metalgo.Transport(transport))
252245
}
246+
247+
if hmacAuthType != "" {
248+
clientOptions = append(clientOptions, metalgo.HMACAuth(hmacKey, hmacAuthType))
249+
} else {
250+
clientOptions = append(clientOptions, metalgo.HMACAuth(hmacKey, "Metal-Admin"))
251+
}
252+
253+
client, err = metalgo.NewClient(driverURL, clientOptions...)
253254
if err != nil {
254255
return err
255256
}

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ require (
1010
github.com/go-openapi/strfmt v0.23.0
1111
github.com/google/go-cmp v0.6.0
1212
github.com/google/uuid v1.6.0
13-
github.com/metal-stack/metal-go v0.40.5-0.20250307164026-7ca4478eda1e
13+
github.com/metal-stack/metal-go v0.40.5-0.20250313114338-fa345040acf7
1414
github.com/metal-stack/metal-lib v0.20.1
1515
github.com/metal-stack/updater v1.2.2
1616
github.com/metal-stack/v v1.0.3

go.sum

+2
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,8 @@ github.com/metal-stack/metal-go v0.40.3 h1:ekgdTY23zHs/XGOg8bUJQFYPTX1GnaqgaT/lg
248248
github.com/metal-stack/metal-go v0.40.3/go.mod h1:ltItf/Md/z588c7Dr3X6iemCeOFh3rJ8nDL5Dpb9zFQ=
249249
github.com/metal-stack/metal-go v0.40.5-0.20250307164026-7ca4478eda1e h1:m13vaYr/nv/QxIa7G2V3jr1qqLQ/xACNCTR40cEmz5A=
250250
github.com/metal-stack/metal-go v0.40.5-0.20250307164026-7ca4478eda1e/go.mod h1:ltItf/Md/z588c7Dr3X6iemCeOFh3rJ8nDL5Dpb9zFQ=
251+
github.com/metal-stack/metal-go v0.40.5-0.20250313114338-fa345040acf7 h1:Wkt5JRTXIRlFOJ+Fs5L4XeVQEVWNaL7txuzEHG+Po60=
252+
github.com/metal-stack/metal-go v0.40.5-0.20250313114338-fa345040acf7/go.mod h1:ltItf/Md/z588c7Dr3X6iemCeOFh3rJ8nDL5Dpb9zFQ=
251253
github.com/metal-stack/metal-lib v0.20.1 h1:gxNg512dS5yzDebELtPZjmoWond0Gw0HHEkSVIAOWRE=
252254
github.com/metal-stack/metal-lib v0.20.1/go.mod h1:zYzXYpNA4nQ+ANx19s/+1Yb/Q6xhS1nQK2yK2/ryXZM=
253255
github.com/metal-stack/security v0.9.3 h1:ZF5rGeZ4fIFe0DFFQWkXsUDCzODyjdrpvKmeaLOz9lo=

pkg/api/context.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ type Contexts struct {
1919
// Context configure metalctl behaviour
2020
type Context struct {
2121
ApiURL string `yaml:"url"`
22+
CertificateAuthorityData string `yaml:"certificate_authority_data,omitempty"`
2223
IssuerURL string `yaml:"issuer_url"`
2324
IssuerType string `yaml:"issuer_type"`
2425
CustomScopes string `yaml:"custom_scopes"`
2526
ClientID string `yaml:"client_id"`
2627
ClientSecret string `yaml:"client_secret"`
2728
HMAC *string `yaml:"hmac"`
2829
HMACAuthType string `yaml:"hmac_auth_type,omitempty"`
29-
CertificateAuthorityData string `yaml:"certificate_authority_data,omitempty"`
3030
}
3131

3232
var defaultCtx = Context{

0 commit comments

Comments
 (0)