/
kubeConfig.go
72 lines (59 loc) · 1.95 KB
/
kubeConfig.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*
Copyright 2018 Sysdig.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package kubernetes
type KubeConf struct {
ApiVersion string `yaml:"apiVersion"`
Clusters []Cluster `yaml:"clusters"`
Contexts []Context `yaml:"contexts"`
CurrentContext string `yaml:"current-context"`
Kind string `yaml:"kind"`
Users []User `yaml:"users"`
}
type Cluster struct {
Data ClusterData `yaml:"cluster"`
Name string `yaml:"name"`
}
type ClusterData struct {
CertificateAuthorityDataStr string `yaml:"certificate-authority-data"`
CertificateAuthorityData []byte
Server string `yaml:"server"`
}
type Context struct {
Data ContextData `yaml:"context"`
Name string `yaml:"name"`
}
type ContextData struct {
Cluster string `yaml:"cluster"`
User string `yaml:"user"`
}
type User struct {
Name string `yaml:"name"`
Data UserData `yaml:"user"`
AuthProvider AuthProvider `yaml:"auth-provider"`
}
type UserData struct {
ClientCertificateDataStr string `yaml:"client-certificate-data"`
ClientCertificateData []byte
ClientKeyDataStr string `yaml:"client-key-data"`
ClientKeyData []byte
}
type AuthProvider struct {
Config AuthProviderConfig `yaml:"config"`
Name string `yaml:"name"`
}
type AuthProviderConfig struct {
CmdArgs string `yaml:"cmd-args"`
CmdPath string `yaml:"cmd-path"`
ExpiryKey string `yaml:"expiry-key"`
TokenKey string `yaml:"token-key"`
}