Skip to content

Commit 798c499

Browse files
authored
Read cert and JWT from filesystem by default
1 parent b176a54 commit 798c499

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

path_config.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"crypto/x509"
88
"encoding/pem"
99
"errors"
10+
"io/ioutil"
1011

1112
"github.com/briankassouf/jose/jws"
1213
"github.com/hashicorp/vault/sdk/framework"
@@ -106,15 +107,27 @@ func (b *kubeAuthBackend) pathConfigWrite(ctx context.Context, req *logical.Requ
106107
return logical.ErrorResponse("no host provided"), nil
107108
}
108109

110+
localCACert, _ := ioutil.ReadFile("/var/run/secrets/kubernetes.io/serviceaccount/ca.crt")
111+
112+
localTokenReviewer, _ := ioutil.ReadFile("/var/run/secrets/kubernetes.io/serviceaccount/token")
113+
109114
pemList := data.Get("pem_keys").([]string)
110115
caCert := data.Get("kubernetes_ca_cert").(string)
111116
issuer := data.Get("issuer").(string)
112117
disableIssValidation := data.Get("disable_iss_validation").(bool)
113118
if len(pemList) == 0 && len(caCert) == 0 {
114-
return logical.ErrorResponse("one of pem_keys or kubernetes_ca_cert must be set"), nil
119+
if len(localCACert) > 0 {
120+
caCert = string(localCACert)
121+
} else {
122+
return logical.ErrorResponse("one of pem_keys or kubernetes_ca_cert must be set"), nil
123+
}
115124
}
116125

117126
tokenReviewer := data.Get("token_reviewer_jwt").(string)
127+
if len(tokenReviewer) == 0 && len(localTokenReviewer) > 0 {
128+
tokenReviewer = string(localTokenReviewer)
129+
}
130+
118131
if len(tokenReviewer) > 0 {
119132
// Validate it's a JWT
120133
_, err := jws.ParseJWT([]byte(tokenReviewer))

0 commit comments

Comments
 (0)