@@ -14,11 +14,12 @@ import (
14
14
"encoding/pem"
15
15
"flag"
16
16
"fmt"
17
- "log"
18
17
"os"
19
18
"path/filepath"
20
19
"time"
21
20
21
+ "github.com/rs/zerolog/log"
22
+
22
23
"gopkg.in/yaml.v2"
23
24
certificates "k8s.io/api/certificates/v1"
24
25
v1core "k8s.io/api/core/v1"
@@ -80,12 +81,12 @@ func initKubeClient() (*kubernetes.Clientset, clientcmd.ClientConfig, error) {
80
81
kubeConfig := clientcmd .NewNonInteractiveDeferredLoadingClientConfig (loadingRules , & clientcmd.ConfigOverrides {})
81
82
config , err := kubeConfig .ClientConfig ()
82
83
if err != nil {
83
- log .Fatal ("initKubeClient: failed creating ClientConfig with" , err )
84
+ log .Printf ("initKubeClient: failed creating ClientConfig with" , err )
84
85
return nil , nil , err
85
86
}
86
87
clientset , err := kubernetes .NewForConfig (config )
87
88
if err != nil {
88
- log .Fatal ("initKubeClient: failed creating Clientset with" , err )
89
+ log .Printf ("initKubeClient: failed creating Clientset with" , err )
89
90
return nil , nil , err
90
91
}
91
92
return clientset , kubeConfig , nil
@@ -110,8 +111,8 @@ func main() {
110
111
111
112
key , err := rsa .GenerateKey (rand .Reader , 1024 )
112
113
if err != nil {
113
- fmt . Println ("Error Generating key" )
114
- log .Fatal ( fmt . Printf ("Error %s" , err ) )
114
+ log . Print ("Error Generating key" )
115
+ log .Printf ("Error %s" , err )
115
116
}
116
117
keyDer := x509 .MarshalPKCS1PrivateKey (key )
117
118
@@ -121,23 +122,23 @@ func main() {
121
122
}
122
123
asn1 , err := asn1 .Marshal (subject .ToRDNSequence ())
123
124
if err != nil {
124
- fmt . Println ("Error marshalling ASN" )
125
- log .Fatal ( fmt . Printf ("Error %s" , err ) )
125
+ log . Print ("Error marshalling ASN" )
126
+ log .Printf ("Error %s" , err )
126
127
}
127
128
csrReq := x509.CertificateRequest {
128
129
RawSubject : asn1 ,
129
130
SignatureAlgorithm : x509 .SHA256WithRSA ,
130
131
}
131
132
bytes , err := x509 .CreateCertificateRequest (rand .Reader , & csrReq , key )
132
133
if err != nil {
133
- fmt . Println ("Error Creating Certificate Request" )
134
- log .Fatal ( fmt . Printf ("Error %s" , err ) )
134
+ log . Print ("Error Creating Certificate Request" )
135
+ log .Printf ("Error %s" , err )
135
136
}
136
137
137
138
clientset , config , err := initKubeClient ()
138
139
if err != nil {
139
140
fmt .Println ("Error initializing Kubernetes client" )
140
- log .Fatal ( fmt . Printf ("Error %s" , err ) )
141
+ log .Printf ("Error %s" , err )
141
142
}
142
143
csr := & certificates.CertificateSigningRequest {
143
144
ObjectMeta : v1.ObjectMeta {
@@ -160,8 +161,8 @@ func main() {
160
161
}
161
162
_ , err = clientset .CertificatesV1 ().CertificateSigningRequests ().Create (context .TODO (), csr , v1.CreateOptions {})
162
163
if err != nil {
163
- fmt . Println ("Error Creating CSR Object. Are you running on a cluste < 1.19? This only works with 1.19+" )
164
- log .Fatal ( fmt . Printf ("Error %s" , err ) )
164
+ log . Print ("Error Creating CSR Object. Are you running on a cluste < 1.19? This only works with 1.19+" )
165
+ log .Printf ("Error %s" , err )
165
166
}
166
167
csr .Status .Conditions = append (csr .Status .Conditions , certificates.CertificateSigningRequestCondition {
167
168
Type : certificates .CertificateApproved ,
@@ -173,21 +174,21 @@ func main() {
173
174
csr , err = clientset .CertificatesV1 ().CertificateSigningRequests ().UpdateApproval (context .Background (), "tempcsr" , csr , v1.UpdateOptions {})
174
175
if err != nil {
175
176
fmt .Println ("Error Approving Certificate" )
176
- log .Fatal ( fmt . Printf ("Error %s" , err ) )
177
+ log .Printf ("Error %s" , err )
177
178
}
178
179
// Give the API server a couple of seconds to issue the cert.
179
180
time .Sleep (2 * time .Second )
180
181
csr , _ = clientset .CertificatesV1 ().CertificateSigningRequests ().Get (context .TODO (), csr .GetName (), v1.GetOptions {})
181
182
pb , _ := pem .Decode (csr .Status .Certificate )
182
183
if pb == nil {
183
- fmt . Println ("Error issuing cert, are you trying this with EKS?" )
184
+ log . Print ("Error issuing cert, are you trying this with EKS?" )
184
185
_ = clientset .CertificatesV1 ().CertificateSigningRequests ().Delete (context .TODO (), csr .GetName (), v1.DeleteOptions {})
185
- log .Fatal (err )
186
+ log .Print (err )
186
187
}
187
188
issued_cert , err := x509 .ParseCertificate (pb .Bytes )
188
189
if err != nil {
189
- fmt . Println ("Error Parsing Certificate" )
190
- log .Fatal (err )
190
+ log . Print ("Error Parsing Certificate" )
191
+ log .Print (err )
191
192
}
192
193
issued_group := "none"
193
194
if issued_cert .Subject .Organization [0 ] != "" {
@@ -197,8 +198,8 @@ func main() {
197
198
198
199
raw , err := config .RawConfig ()
199
200
if err != nil {
200
- fmt . Println ("error getting raw config" )
201
- log .Fatal (err )
201
+ log . Print ("error getting raw config" )
202
+ log .Print (err )
202
203
}
203
204
cluster := raw .Contexts [raw .CurrentContext ].Cluster
204
205
@@ -237,25 +238,25 @@ func main() {
237
238
238
239
dir , err := os .Getwd ()
239
240
if err != nil {
240
- fmt . Println ("Error Getting working directory" )
241
- log .Fatal (err )
241
+ log . Print ("Error Getting working directory" )
242
+ log .Print (err )
242
243
}
243
244
_ , err = os .Create (filepath .Join (dir , * outputFile ))
244
245
if err != nil {
245
- fmt . Println ("Error Creating output file" )
246
- log .Fatal (err )
246
+ log . Print ("Error Creating output file" )
247
+ log .Print (err )
247
248
}
248
249
file , err := os .OpenFile (* outputFile , os .O_APPEND | os .O_WRONLY , os .ModeAppend )
249
250
if err != nil {
250
- fmt . Println ("Error opening output file" )
251
- log .Fatal (err )
251
+ log . Print ("Error opening output file" )
252
+ log .Print (err )
252
253
}
253
254
defer file .Close ()
254
255
e := yaml .NewEncoder (file )
255
256
err = e .Encode (kc )
256
257
if err != nil {
257
- fmt . Println ("Error encoding Kubeconfig YAML" )
258
- log .Fatal (err )
258
+ log . Print ("Error encoding Kubeconfig YAML" )
259
+ log .Print (err )
259
260
}
260
261
clientset .CertificatesV1 ().CertificateSigningRequests ().Delete (context .TODO (), csr .GetName (), v1.DeleteOptions {})
261
262
0 commit comments