add kubectl config
This commit is contained in:
@@ -21,47 +21,50 @@ import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
|
||||
"gopkg.in/v2/yaml"
|
||||
"github.com/ghodss/yaml"
|
||||
|
||||
clientcmdapi "github.com/GoogleCloudPlatform/kubernetes/pkg/client/clientcmd/api"
|
||||
clientcmdlatest "github.com/GoogleCloudPlatform/kubernetes/pkg/client/clientcmd/api/latest"
|
||||
)
|
||||
|
||||
var (
|
||||
testConfigAlfa = Config{
|
||||
AuthInfos: map[string]AuthInfo{
|
||||
testConfigAlfa = clientcmdapi.Config{
|
||||
AuthInfos: map[string]clientcmdapi.AuthInfo{
|
||||
"red-user": {Token: "red-token"}},
|
||||
Clusters: map[string]Cluster{
|
||||
Clusters: map[string]clientcmdapi.Cluster{
|
||||
"cow-cluster": {Server: "http://cow.org:8080"}},
|
||||
Contexts: map[string]Context{
|
||||
Contexts: map[string]clientcmdapi.Context{
|
||||
"federal-context": {AuthInfo: "red-user", Cluster: "cow-cluster", Namespace: "hammer-ns"}},
|
||||
}
|
||||
testConfigBravo = Config{
|
||||
AuthInfos: map[string]AuthInfo{
|
||||
testConfigBravo = clientcmdapi.Config{
|
||||
AuthInfos: map[string]clientcmdapi.AuthInfo{
|
||||
"black-user": {Token: "black-token"}},
|
||||
Clusters: map[string]Cluster{
|
||||
Clusters: map[string]clientcmdapi.Cluster{
|
||||
"pig-cluster": {Server: "http://pig.org:8080"}},
|
||||
Contexts: map[string]Context{
|
||||
Contexts: map[string]clientcmdapi.Context{
|
||||
"queen-anne-context": {AuthInfo: "black-user", Cluster: "pig-cluster", Namespace: "saw-ns"}},
|
||||
}
|
||||
testConfigCharlie = Config{
|
||||
AuthInfos: map[string]AuthInfo{
|
||||
testConfigCharlie = clientcmdapi.Config{
|
||||
AuthInfos: map[string]clientcmdapi.AuthInfo{
|
||||
"green-user": {Token: "green-token"}},
|
||||
Clusters: map[string]Cluster{
|
||||
Clusters: map[string]clientcmdapi.Cluster{
|
||||
"horse-cluster": {Server: "http://horse.org:8080"}},
|
||||
Contexts: map[string]Context{
|
||||
Contexts: map[string]clientcmdapi.Context{
|
||||
"shaker-context": {AuthInfo: "green-user", Cluster: "horse-cluster", Namespace: "chisel-ns"}},
|
||||
}
|
||||
testConfigDelta = Config{
|
||||
AuthInfos: map[string]AuthInfo{
|
||||
testConfigDelta = clientcmdapi.Config{
|
||||
AuthInfos: map[string]clientcmdapi.AuthInfo{
|
||||
"blue-user": {Token: "blue-token"}},
|
||||
Clusters: map[string]Cluster{
|
||||
Clusters: map[string]clientcmdapi.Cluster{
|
||||
"chicken-cluster": {Server: "http://chicken.org:8080"}},
|
||||
Contexts: map[string]Context{
|
||||
Contexts: map[string]clientcmdapi.Context{
|
||||
"gothic-context": {AuthInfo: "blue-user", Cluster: "chicken-cluster", Namespace: "plane-ns"}},
|
||||
}
|
||||
testConfigConflictAlfa = Config{
|
||||
AuthInfos: map[string]AuthInfo{
|
||||
testConfigConflictAlfa = clientcmdapi.Config{
|
||||
AuthInfos: map[string]clientcmdapi.AuthInfo{
|
||||
"red-user": {Token: "a-different-red-token"},
|
||||
"yellow-user": {Token: "yellow-token"}},
|
||||
Clusters: map[string]Cluster{
|
||||
Clusters: map[string]clientcmdapi.Cluster{
|
||||
"cow-cluster": {Server: "http://a-different-cow.org:8080", InsecureSkipTLSVerify: true},
|
||||
"donkey-cluster": {Server: "http://donkey.org:8080", InsecureSkipTLSVerify: true}},
|
||||
CurrentContext: "federal-context",
|
||||
@@ -84,31 +87,42 @@ func ExampleMergingSomeWithConflict() {
|
||||
|
||||
mergedConfig, err := loadingRules.Load()
|
||||
|
||||
output, err := yaml.Marshal(mergedConfig)
|
||||
json, err := clientcmdlatest.Codec.Encode(mergedConfig)
|
||||
if err != nil {
|
||||
fmt.Printf("Unexpected error: %v", err)
|
||||
}
|
||||
output, err := yaml.JSONToYAML(json)
|
||||
if err != nil {
|
||||
fmt.Printf("Unexpected error: %v", err)
|
||||
}
|
||||
|
||||
fmt.Printf("%v", string(output))
|
||||
// Output:
|
||||
// preferences: {}
|
||||
// apiVersion: v1
|
||||
// clusters:
|
||||
// cow-cluster:
|
||||
// - cluster:
|
||||
// server: http://cow.org:8080
|
||||
// donkey-cluster:
|
||||
// server: http://donkey.org:8080
|
||||
// name: cow-cluster
|
||||
// - cluster:
|
||||
// insecure-skip-tls-verify: true
|
||||
// users:
|
||||
// red-user:
|
||||
// token: red-token
|
||||
// yellow-user:
|
||||
// token: yellow-token
|
||||
// server: http://donkey.org:8080
|
||||
// name: donkey-cluster
|
||||
// contexts:
|
||||
// federal-context:
|
||||
// - context:
|
||||
// cluster: cow-cluster
|
||||
// user: red-user
|
||||
// namespace: hammer-ns
|
||||
// user: red-user
|
||||
// name: federal-context
|
||||
// current-context: federal-context
|
||||
// kind: Config
|
||||
// preferences: {}
|
||||
// users:
|
||||
// - name: red-user
|
||||
// user:
|
||||
// token: red-token
|
||||
// - name: yellow-user
|
||||
// user:
|
||||
// token: yellow-token
|
||||
}
|
||||
|
||||
func ExampleMergingEverythingNoConflicts() {
|
||||
@@ -135,48 +149,66 @@ func ExampleMergingEverythingNoConflicts() {
|
||||
|
||||
mergedConfig, err := loadingRules.Load()
|
||||
|
||||
output, err := yaml.Marshal(mergedConfig)
|
||||
json, err := clientcmdlatest.Codec.Encode(mergedConfig)
|
||||
if err != nil {
|
||||
fmt.Printf("Unexpected error: %v", err)
|
||||
}
|
||||
output, err := yaml.JSONToYAML(json)
|
||||
if err != nil {
|
||||
fmt.Printf("Unexpected error: %v", err)
|
||||
}
|
||||
|
||||
fmt.Printf("%v", string(output))
|
||||
// Output:
|
||||
// preferences: {}
|
||||
// apiVersion: v1
|
||||
// clusters:
|
||||
// chicken-cluster:
|
||||
// - cluster:
|
||||
// server: http://chicken.org:8080
|
||||
// cow-cluster:
|
||||
// name: chicken-cluster
|
||||
// - cluster:
|
||||
// server: http://cow.org:8080
|
||||
// horse-cluster:
|
||||
// name: cow-cluster
|
||||
// - cluster:
|
||||
// server: http://horse.org:8080
|
||||
// pig-cluster:
|
||||
// name: horse-cluster
|
||||
// - cluster:
|
||||
// server: http://pig.org:8080
|
||||
// users:
|
||||
// black-user:
|
||||
// token: black-token
|
||||
// blue-user:
|
||||
// token: blue-token
|
||||
// green-user:
|
||||
// token: green-token
|
||||
// red-user:
|
||||
// token: red-token
|
||||
// name: pig-cluster
|
||||
// contexts:
|
||||
// federal-context:
|
||||
// - context:
|
||||
// cluster: cow-cluster
|
||||
// user: red-user
|
||||
// namespace: hammer-ns
|
||||
// gothic-context:
|
||||
// user: red-user
|
||||
// name: federal-context
|
||||
// - context:
|
||||
// cluster: chicken-cluster
|
||||
// user: blue-user
|
||||
// namespace: plane-ns
|
||||
// queen-anne-context:
|
||||
// user: blue-user
|
||||
// name: gothic-context
|
||||
// - context:
|
||||
// cluster: pig-cluster
|
||||
// user: black-user
|
||||
// namespace: saw-ns
|
||||
// shaker-context:
|
||||
// user: black-user
|
||||
// name: queen-anne-context
|
||||
// - context:
|
||||
// cluster: horse-cluster
|
||||
// user: green-user
|
||||
// namespace: chisel-ns
|
||||
// user: green-user
|
||||
// name: shaker-context
|
||||
// current-context: ""
|
||||
// kind: Config
|
||||
// preferences: {}
|
||||
// users:
|
||||
// - name: black-user
|
||||
// user:
|
||||
// token: black-token
|
||||
// - name: blue-user
|
||||
// user:
|
||||
// token: blue-token
|
||||
// - name: green-user
|
||||
// user:
|
||||
// token: green-token
|
||||
// - name: red-user
|
||||
// user:
|
||||
// token: red-token
|
||||
}
|
||||
|
Reference in New Issue
Block a user