@@ -2,6 +2,7 @@ package client
22
33import (
44 "context"
5+ "crypto/tls"
56 "fmt"
67 "net/http"
78 "strings"
@@ -27,13 +28,14 @@ func NewStackStateClient(ctx context.Context,
2728 adminApiPath string ,
2829 apiToken string ,
2930 serviceToken string ,
30- k8sServiceAccountToken string ) (StackStateClient , context.Context ) {
31+ k8sServiceAccountToken string ,
32+ skipSSL bool ) (StackStateClient , context.Context ) {
3133 userAgent := fmt .Sprintf ("StackStateCLI/%s" , version )
3234 apiURL := combineURLandPath (url , apiPath )
33- client , clientAuth := NewApiClient (isVerbose , pr , userAgent , apiURL , apiToken , serviceToken , k8sServiceAccountToken )
35+ client , clientAuth := NewApiClient (ctx , isVerbose , pr , userAgent , apiURL , apiToken , serviceToken , k8sServiceAccountToken , skipSSL )
3436
3537 adminApiURL := combineURLandPath (url , adminApiPath )
36- adminClient , adminAuth := NewAdminApiClient (isVerbose , pr , userAgent , adminApiURL , apiToken , serviceToken , k8sServiceAccountToken )
38+ adminClient , adminAuth := NewAdminApiClient (ctx , isVerbose , pr , userAgent , adminApiURL , apiToken , serviceToken , k8sServiceAccountToken , skipSSL )
3739
3840 withClient := context .WithValue (
3941 ctx ,
@@ -57,15 +59,21 @@ func NewStackStateClient(ctx context.Context,
5759
5860//nolint:dupl
5961func NewApiClient (
62+ ctx context.Context ,
6063 isVerbose bool ,
6164 pr printer.Printer ,
6265 userAgent string ,
6366 apiURL string ,
6467 apiToken string ,
6568 serviceToken string ,
6669 k8sServiceAccountToken string ,
70+ skipSSL bool ,
6771) (* stackstate_api.APIClient , map [string ]stackstate_api.APIKey ) {
6872 configuration := stackstate_api .NewConfiguration ()
73+ if skipSSL {
74+ configuration .HTTPClient = insecureHttpClient (ctx )
75+ }
76+
6977 configuration .UserAgent = userAgent
7078 configuration .Servers [0 ] = stackstate_api.ServerConfiguration {
7179 URL : apiURL ,
@@ -108,15 +116,20 @@ func NewApiClient(
108116
109117//nolint:dupl
110118func NewAdminApiClient (
119+ ctx context.Context ,
111120 isVerbose bool ,
112121 pr printer.Printer ,
113122 userAgent string ,
114123 apiURL string ,
115124 apiToken string ,
116125 serviceToken string ,
117126 k8sServiceAccountToken string ,
127+ skipSSL bool ,
118128) (* stackstate_admin_api.APIClient , map [string ]stackstate_admin_api.APIKey ) {
119129 configuration := stackstate_admin_api .NewConfiguration ()
130+ if skipSSL {
131+ configuration .HTTPClient = insecureHttpClient (ctx )
132+ }
120133 configuration .UserAgent = userAgent
121134 configuration .Servers [0 ] = stackstate_admin_api.ServerConfiguration {
122135 URL : apiURL ,
@@ -157,6 +170,15 @@ func NewAdminApiClient(
157170 return client , auth
158171}
159172
173+ func insecureHttpClient (ctx context.Context ) * http.Client {
174+ log .Ctx (ctx ).Warn ().Msg ("Using insecure HTTP client" )
175+ return & http.Client {
176+ Transport : & http.Transport {
177+ TLSClientConfig : & tls.Config {InsecureSkipVerify : true }, //nolint:gosec
178+ },
179+ }
180+ }
181+
160182type StdStackStateClient struct {
161183 client * stackstate_api.APIClient
162184 adminClient * stackstate_admin_api.APIClient
0 commit comments