Skip to content

Commit 8367583

Browse files
committed
feat: extend flags of cache-cert-gen
Add flags to add SAN names to generated certificate Signed-off-by: Mateusz Urbanek <[email protected]>
1 parent 80ab7a0 commit 8367583

File tree

8 files changed

+25
-18
lines changed

8 files changed

+25
-18
lines changed

cmd/talosctl/cmd/mgmt/debug/air-gapped.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ var airgappedCmd = &cobra.Command{
5454
RunE: func(cmd *cobra.Command, args []string) error {
5555
return cli.WithContext(
5656
context.Background(), func(ctx context.Context) error {
57-
caPEM, certPEM, keyPEM, err := helpers.GenerateSelfSignedCert([]net.IP{airgappedFlags.advertisedAddress})
57+
caPEM, certPEM, keyPEM, err := helpers.GenerateSelfSignedCert([]net.IP{airgappedFlags.advertisedAddress}, nil)
5858
if err != nil {
5959
return nil
6060
}

cmd/talosctl/cmd/talos/image.go

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,10 @@ var imageCacheCertGenCmd = &cobra.Command{
477477
Example: ``,
478478
Args: cobra.NoArgs,
479479
RunE: func(cmd *cobra.Command, args []string) error {
480-
caPEM, certPEM, keyPEM, err := mgmthelpers.GenerateSelfSignedCert(imageCacheCertGenCmdFlags.advertisedAddress)
480+
caPEM, certPEM, keyPEM, err := mgmthelpers.GenerateSelfSignedCert(
481+
imageCacheCertGenCmdFlags.advertisedAddresses,
482+
imageCacheCertGenCmdFlags.advertisedNames,
483+
)
481484
if err != nil {
482485
return nil
483486
}
@@ -525,10 +528,11 @@ func generateConfigPatch(caPEM []byte) error {
525528
}
526529

527530
var imageCacheCertGenCmdFlags struct {
528-
advertisedAddress []net.IP
529-
tlsCaFile string
530-
tlsCertFile string
531-
tlsKeyFile string
531+
advertisedAddresses []net.IP
532+
advertisedNames []string
533+
tlsCaFile string
534+
tlsCertFile string
535+
tlsKeyFile string
532536
}
533537

534538
func init() {
@@ -565,7 +569,8 @@ func init() {
565569
imageCacheCertGenCmd.PersistentFlags().StringVar(&imageCacheCertGenCmdFlags.tlsCaFile, "tls-ca-file", "ca.crt", "TLS certificate authority file")
566570
imageCacheCertGenCmd.PersistentFlags().StringVar(&imageCacheCertGenCmdFlags.tlsCertFile, "tls-cert-file", "tls.crt", "TLS certificate file to use for serving")
567571
imageCacheCertGenCmd.PersistentFlags().StringVar(&imageCacheCertGenCmdFlags.tlsKeyFile, "tls-key-file", "tls.key", "TLS key file to use for serving")
568-
imageCacheCertGenCmd.PersistentFlags().IPSliceVar(&imageCacheCertGenCmdFlags.advertisedAddress, "advertised-address", []net.IP{}, "The address to advertise to the cluster.")
572+
imageCacheCertGenCmd.PersistentFlags().IPSliceVar(&imageCacheCertGenCmdFlags.advertisedAddresses, "advertised-address", []net.IP{}, "The addresses to advertise.")
573+
imageCacheCertGenCmd.PersistentFlags().StringSliceVar(&imageCacheCertGenCmdFlags.advertisedNames, "advertised-name", []string{}, "The DNS names to advertise.")
569574
imageIntegrationCmd.MarkPersistentFlagRequired("advertised-address") //nolint:errcheck
570575

571576
imageCmd.AddCommand(imageIntegrationCmd)

cmd/talosctl/pkg/mgmt/helpers/airgapped.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
)
1313

1414
// GenerateSelfSignedCert generates self-signed certificate.
15-
func GenerateSelfSignedCert(sanIPs []net.IP) ([]byte, []byte, []byte, error) {
15+
func GenerateSelfSignedCert(sanIPs []net.IP, sanNames []string) ([]byte, []byte, []byte, error) {
1616
ca, err := x509.NewSelfSignedCertificateAuthority(x509.ECDSA(true))
1717
if err != nil {
1818
return nil, nil, nil, err
@@ -22,6 +22,7 @@ func GenerateSelfSignedCert(sanIPs []net.IP) ([]byte, []byte, []byte, error) {
2222
x509.Organization("test"),
2323
x509.CommonName("server"),
2424
x509.IPAddresses(sanIPs),
25+
x509.DNSNames(sanNames),
2526
x509.ExtKeyUsage([]stdx509.ExtKeyUsage{stdx509.ExtKeyUsageServerAuth}),
2627
)
2728
if err != nil {

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ require (
347347
go.uber.org/multierr v1.11.0 // indirect
348348
go.yaml.in/yaml/v2 v2.4.3 // indirect
349349
go.yaml.in/yaml/v3 v3.0.4 // indirect
350-
golang.org/x/crypto v0.44.0 // indirect
350+
golang.org/x/crypto v0.45.0 // indirect
351351
golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 // indirect
352352
golang.org/x/mod v0.29.0 // indirect
353353
golang.org/x/tools v0.38.0 // indirect

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -795,8 +795,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
795795
golang.org/x/crypto v0.0.0-20200420201142-3c4aac89819a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
796796
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
797797
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
798-
golang.org/x/crypto v0.44.0 h1:A97SsFvM3AIwEEmTBiaxPPTYpDC47w720rdiiUvgoAU=
799-
golang.org/x/crypto v0.44.0/go.mod h1:013i+Nw79BMiQiMsOPcVCB5ZIJbYkerPrGnOa00tvmc=
798+
golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=
799+
golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=
800800
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
801801
golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 h1:y5zboxd6LQAqYIhHnB48p0ByQ/GnQx2BE33L8BOHQkI=
802802
golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6/go.mod h1:U6Lno4MTRCDY+Ba7aCcauB9T60gsv5s4ralQzP72ZoQ=

tools/go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,7 @@ require (
461461
github.com/sergi/go-diff v1.4.0 // indirect
462462
github.com/shopspring/decimal v1.4.0 // indirect
463463
github.com/siderolabs/deep-copy v0.5.8 // indirect
464-
github.com/siderolabs/gen v0.8.5 // indirect
464+
github.com/siderolabs/gen v0.8.6 // indirect
465465
github.com/siderolabs/importvet v0.2.0 // indirect
466466
github.com/siderolabs/talos/tools/docgen v0.0.0-20251112150910-859194e67800 // indirect
467467
github.com/siderolabs/talos/tools/gotagsrewrite v0.0.0-20251112150910-859194e67800 // indirect
@@ -546,7 +546,7 @@ require (
546546
go.yaml.in/yaml/v3 v3.0.4 // indirect
547547
go.yaml.in/yaml/v4 v4.0.0-rc.3 // indirect
548548
go4.org v0.0.0-20230225012048-214862532bf5 // indirect
549-
golang.org/x/crypto v0.44.0 // indirect
549+
golang.org/x/crypto v0.45.0 // indirect
550550
golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b // indirect
551551
golang.org/x/exp/typeparams v0.0.0-20251023183803-a4bb9ffd2546 // indirect
552552
golang.org/x/mod v0.30.0 // indirect

tools/go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1292,8 +1292,8 @@ github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxr
12921292
github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ=
12931293
github.com/siderolabs/deep-copy v0.5.8 h1:43G8qJBTwGuKZX+UYNe29ZOtyDFqayS7/GfJVviz6RU=
12941294
github.com/siderolabs/deep-copy v0.5.8/go.mod h1:PNX2/lqNu3oyDZGWe1eKW8bkYkhs583WcUBBB2EviX8=
1295-
github.com/siderolabs/gen v0.8.5 h1:xlWXTynnGD/epaj7uplvKvmAkBH+Fp51bLnw1JC0xME=
1296-
github.com/siderolabs/gen v0.8.5/go.mod h1:CRrktDXQf3yDJI7xKv+cDYhBbKdfd/YE16OpgcHoT9E=
1295+
github.com/siderolabs/gen v0.8.6 h1:pE6shuqov3L+5rEcAUJ/kY6iJofimljQw5G95P8a5c4=
1296+
github.com/siderolabs/gen v0.8.6/go.mod h1:J9IbusbES2W6QWjtSHpDV9iPGZHc978h1+KJ4oQRspQ=
12971297
github.com/siderolabs/importvet v0.2.0 h1:oGQXke2/TnSg5xEFD/ktc+G59INzmgRU3yJ8wt++QRE=
12981298
github.com/siderolabs/importvet v0.2.0/go.mod h1:X0AIl/3MnvlEeCzYRJe/t9YOk4FjPhT53doU4xOG4AU=
12991299
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
@@ -1561,8 +1561,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y
15611561
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
15621562
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
15631563
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
1564-
golang.org/x/crypto v0.44.0 h1:A97SsFvM3AIwEEmTBiaxPPTYpDC47w720rdiiUvgoAU=
1565-
golang.org/x/crypto v0.44.0/go.mod h1:013i+Nw79BMiQiMsOPcVCB5ZIJbYkerPrGnOa00tvmc=
1564+
golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=
1565+
golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=
15661566
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
15671567
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
15681568
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=

website/content/v1.12/reference/cli.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1868,7 +1868,8 @@ talosctl image cache-cert-gen [flags]
18681868
### Options
18691869

18701870
```
1871-
--advertised-address ipSlice The address to advertise to the cluster. (default [])
1871+
--advertised-address ipSlice The addresses to advertise. (default [])
1872+
--advertised-name strings The DNS names to advertise.
18721873
-h, --help help for cache-cert-gen
18731874
--tls-ca-file string TLS certificate authority file (default "ca.crt")
18741875
--tls-cert-file string TLS certificate file to use for serving (default "tls.crt")

0 commit comments

Comments
 (0)