Skip to content

Commit 56359a4

Browse files
committed
normalize pki create params; fixes #3307
1 parent 20ac5c5 commit 56359a4

File tree

6 files changed

+33
-3
lines changed

6 files changed

+33
-3
lines changed

ziti/cmd/pki/pki_create.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,31 @@ func (o *PKICreateOptions) Run() error {
9898
return o.Cmd.Help()
9999
}
100100

101+
// ResolveFlagsFromViper backfills struct fields from viper (env vars) when the
102+
// corresponding CLI flag was not explicitly set. This allows flags like
103+
// --ca-file, --curve, --intermediate-file, etc. to be set via ZITI_CA_FILE,
104+
// ZITI_CURVE, ZITI_INTERMEDIATE_FILE environment variables.
105+
func (o *PKICreateOptions) ResolveFlagsFromViper(cmd *cobra.Command) {
106+
resolve := func(flagName string, target *string) {
107+
if !cmd.Flags().Changed(flagName) {
108+
if v := o.viper.GetString(flagName); v != "" {
109+
*target = v
110+
}
111+
}
112+
}
113+
resolve("ca-file", &o.Flags.CAFile)
114+
resolve("ca-name", &o.Flags.CAName)
115+
resolve("curve", &o.Flags.EcCurve)
116+
resolve("intermediate-file", &o.Flags.IntermediateFile)
117+
resolve("intermediate-name", &o.Flags.IntermediateName)
118+
resolve("server-file", &o.Flags.ServerFile)
119+
resolve("server-name", &o.Flags.ServerName)
120+
resolve("client-file", &o.Flags.ClientFile)
121+
resolve("client-name", &o.Flags.ClientName)
122+
resolve("key-file", &o.Flags.KeyFile)
123+
resolve("trust-domain", &o.Flags.SpiffeID)
124+
}
125+
101126
// ObtainPKIRoot returns the value for pki-root
102127
func (o *PKICreateOptions) ObtainPKIRoot() (string, error) {
103128
pkiRoot := o.Flags.PKIRoot

ziti/cmd/pki/pki_create_ca.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ func (o *PKICreateCAOptions) addPKICreateCAFlags(cmd *cobra.Command) {
8282

8383
// Run implements this command
8484
func (o *PKICreateCAOptions) Run() error {
85+
o.ResolveFlagsFromViper(o.Cmd)
8586
pkiRoot, err := o.ObtainPKIRoot()
8687
if err != nil {
8788
return err

ziti/cmd/pki/pki_create_client.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ func (o *PKICreateClientOptions) addPKICreateClientFlags(cmd *cobra.Command) {
8787

8888
// Run implements this command
8989
func (o *PKICreateClientOptions) Run() error {
90+
o.ResolveFlagsFromViper(o.Cmd)
9091
pkiRoot, err := o.ObtainPKIRoot()
9192
if err != nil {
9293
return err
@@ -181,7 +182,7 @@ func (o *PKICreateClientOptions) Run() error {
181182
}
182183

183184
// Concat the newly-created client cert with the intermediate cert to create a client.chain.pem file
184-
if err := o.Flags.PKI.Chain(signer, req); err != nil {
185+
if err := o.Flags.PKI.Chain(signer, req, o.Flags.AllowOverwrite); err != nil {
185186
return errors.Wrap(err, "unable to generate cert chain")
186187
}
187188

ziti/cmd/pki/pki_create_intermediate.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ func (o *PKICreateIntermediateOptions) addPKICreateIntermediateFlags(cmd *cobra.
8181

8282
// Run implements this command
8383
func (o *PKICreateIntermediateOptions) Run() error {
84+
o.ResolveFlagsFromViper(o.Cmd)
8485
pkiRoot, err := o.ObtainPKIRoot()
8586
if err != nil {
8687
return err
@@ -142,7 +143,7 @@ func (o *PKICreateIntermediateOptions) Run() error {
142143
}
143144

144145
// Concat the newly-created intermediate cert with the signing cert to create an intermediate.chain.pem file
145-
if err := o.Flags.PKI.Chain(signer, req); err != nil {
146+
if err := o.Flags.PKI.Chain(signer, req, false); err != nil {
146147
return errors.Wrap(err, "unable to generate cert chain")
147148
}
148149

ziti/cmd/pki/pki_create_key.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ func (options *PKICreateKeyOptions) addPKICreateKeyFlags(cmd *cobra.Command) {
7676

7777
// Run implements this command
7878
func (options *PKICreateKeyOptions) Run() error {
79+
options.ResolveFlagsFromViper(options.Cmd)
7980

8081
pkiRoot, err := options.ObtainPKIRoot()
8182
if err != nil {

ziti/cmd/pki/pki_create_server.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ func (o *PKICreateServerOptions) addPKICreateServerFlags(cmd *cobra.Command) {
8888

8989
// Run implements this command
9090
func (o *PKICreateServerOptions) Run() error {
91+
o.ResolveFlagsFromViper(o.Cmd)
9192
IPs, DNSNames, err := o.ObtainIPsAndDNSNames()
9293
if err != nil {
9394
return err
@@ -188,7 +189,7 @@ func (o *PKICreateServerOptions) Run() error {
188189
}
189190

190191
// Concat the newly-created server cert with the intermediate cert to create a server.chain.pem file
191-
if err := o.Flags.PKI.Chain(signer, req); err != nil {
192+
if err := o.Flags.PKI.Chain(signer, req, o.Flags.AllowOverwrite); err != nil {
192193
return errors.Wrap(err, "unable to generate cert chain")
193194
}
194195

0 commit comments

Comments
 (0)