Skip to content

Commit 6d6b830

Browse files
add test
Signed-off-by: Yaroslav Borbat <yaroslav.borbat@flant.com>
1 parent 6325625 commit 6d6b830

File tree

3 files changed

+45
-33
lines changed

3 files changed

+45
-33
lines changed

go.mod

-33
Original file line numberDiff line numberDiff line change
@@ -146,36 +146,3 @@ require (
146146
)
147147

148148
go 1.21
149-
150-
replace (
151-
k8s.io/api => k8s.io/api v0.28.6
152-
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.28.6
153-
k8s.io/apimachinery => k8s.io/apimachinery v0.28.6
154-
k8s.io/apiserver => k8s.io/apiserver v0.28.6
155-
k8s.io/cli-runtime => k8s.io/cli-runtime v0.28.6
156-
k8s.io/client-go => k8s.io/client-go v0.28.6
157-
k8s.io/cloud-provider => k8s.io/cloud-provider v0.28.6
158-
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.28.6
159-
k8s.io/code-generator => k8s.io/code-generator v0.28.6
160-
k8s.io/component-base => k8s.io/component-base v0.28.6
161-
k8s.io/component-helpers => k8s.io/component-helpers v0.28.6
162-
k8s.io/controller-manager => k8s.io/controller-manager v0.28.6
163-
k8s.io/cri-api => k8s.io/cri-api v0.28.6
164-
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.28.6
165-
k8s.io/dynamic-resource-allocation => k8s.io/dynamic-resource-allocation v0.28.6
166-
k8s.io/endpointslice => k8s.io/endpointslice v0.28.6
167-
k8s.io/kms => k8s.io/kms v0.28.6
168-
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.28.6
169-
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.28.6
170-
k8s.io/kube-proxy => k8s.io/kube-proxy v0.28.6
171-
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.28.6
172-
k8s.io/kubectl => k8s.io/kubectl v0.28.6
173-
k8s.io/kubelet => k8s.io/kubelet v0.28.6
174-
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.28.6
175-
k8s.io/metrics => k8s.io/metrics v0.28.6
176-
k8s.io/mount-utils => k8s.io/mount-utils v0.28.6
177-
k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.28.6
178-
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.28.6
179-
k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.28.6
180-
k8s.io/sample-controller => k8s.io/sample-controller v0.28.6
181-
)

kubernetes/provider_test.go

+24
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package kubernetes
55

66
import (
77
"context"
8+
"encoding/base64"
89
"errors"
910
"fmt"
1011
"net/url"
@@ -102,6 +103,24 @@ func TestProvider_configure_paths(t *testing.T) {
102103
}
103104
}
104105

106+
func TestProvider_configure_config_data_base64(t *testing.T) {
107+
ctx := context.TODO()
108+
resetEnv := unsetEnv(t)
109+
defer resetEnv()
110+
data, err := os.ReadFile("test-fixtures/kube-config-sa-token.yaml")
111+
if err != nil {
112+
t.Fatal("Cannot read kubeconfig")
113+
}
114+
data64 := base64.StdEncoding.EncodeToString(data)
115+
os.Setenv("KUBE_CONFIG_DATA_BASE64", data64)
116+
rc := terraform.NewResourceConfigRaw(map[string]interface{}{})
117+
p := Provider()
118+
diags := p.Configure(ctx, rc)
119+
if diags.HasError() {
120+
t.Fatal(diags)
121+
}
122+
}
123+
105124
func unsetEnv(t *testing.T) func() {
106125
e := getEnv()
107126

@@ -120,6 +139,7 @@ func unsetEnv(t *testing.T) func() {
120139
"KUBE_INSECURE": e.Insecure,
121140
"KUBE_TLS_SERVER_NAME": e.TLSServerName,
122141
"KUBE_TOKEN": e.Token,
142+
"KUBE_CONFIG_DATA_BASE64": e.ConfigDataBase64,
123143
}
124144

125145
for k := range envVars {
@@ -158,6 +178,9 @@ func getEnv() *currentEnv {
158178
if v := os.Getenv("KUBE_CONFIG_PATH"); v != "" {
159179
e.ConfigPaths = filepath.SplitList(v)
160180
}
181+
if v := os.Getenv("KUBE_CONFIG_DATA_BASE64"); v != "" {
182+
e.ConfigDataBase64 = v
183+
}
161184
return e
162185
}
163186

@@ -482,6 +505,7 @@ func clusterVersionGreaterThanOrEqual(vs string) bool {
482505

483506
type currentEnv struct {
484507
ConfigPath string
508+
ConfigDataBase64 string
485509
ConfigPaths []string
486510
Ctx string
487511
CtxAuthInfo string
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
apiVersion: v1
2+
kind: Config
3+
preferences: {}
4+
clusters:
5+
- cluster:
6+
certificate-authority-data: ZHVtbXk=
7+
server: https://127.0.0.1
8+
name: dummy
9+
10+
current-context: dummy
11+
12+
contexts:
13+
- context:
14+
cluster: dummy
15+
user: dummy
16+
name: dummy
17+
18+
users:
19+
- name: dummy
20+
user:
21+
token: ZHVtbXk=

0 commit comments

Comments
 (0)