add kubectl config

This commit is contained in:
deads2k
2014-12-17 08:03:03 -05:00
parent de2e298fa9
commit b51a717f6e
28 changed files with 2289 additions and 270 deletions

View File

@@ -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
}