Add support for binary file in configmap

This commit is contained in:
Lukasz Zajaczkowski
2016-09-23 13:48:32 +02:00
committed by Davanum Srinivas
parent 5f6e12793b
commit 7e158fb4f6
9 changed files with 222 additions and 44 deletions

View File

@@ -41,7 +41,8 @@ func TestConfigMapGenerate(t *testing.T) {
ObjectMeta: metav1.ObjectMeta{
Name: "foo",
},
Data: map[string]string{},
Data: map[string]string{},
BinaryData: map[string][]byte{},
},
expectErr: false,
},
@@ -54,7 +55,8 @@ func TestConfigMapGenerate(t *testing.T) {
ObjectMeta: metav1.ObjectMeta{
Name: "foo-867km9574f",
},
Data: map[string]string{},
Data: map[string]string{},
BinaryData: map[string][]byte{},
},
expectErr: false,
},
@@ -67,7 +69,8 @@ func TestConfigMapGenerate(t *testing.T) {
ObjectMeta: metav1.ObjectMeta{
Name: "foo",
},
Data: map[string]string{},
Data: map[string]string{},
BinaryData: map[string][]byte{},
},
expectErr: false,
},
@@ -81,7 +84,8 @@ func TestConfigMapGenerate(t *testing.T) {
ObjectMeta: metav1.ObjectMeta{
Name: "foo-867km9574f",
},
Data: map[string]string{},
Data: map[string]string{},
BinaryData: map[string][]byte{},
},
expectErr: false,
},
@@ -98,6 +102,7 @@ func TestConfigMapGenerate(t *testing.T) {
"key1": "value1",
"key2": "value2",
},
BinaryData: map[string][]byte{},
},
expectErr: false,
},
@@ -115,6 +120,7 @@ func TestConfigMapGenerate(t *testing.T) {
"key1": "value1",
"key2": "value2",
},
BinaryData: map[string][]byte{},
},
expectErr: false,
},
@@ -139,6 +145,36 @@ func TestConfigMapGenerate(t *testing.T) {
},
expectErr: true,
},
{
setup: setupBinaryFile([]byte{0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64}),
params: map[string]interface{}{
"name": "foo",
"from-file": []string{"foo1"},
},
expected: &v1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: "foo",
},
Data: map[string]string{"foo1": "hello world"},
BinaryData: map[string][]byte{},
},
expectErr: false,
},
{
setup: setupBinaryFile([]byte{0xff, 0xfd}),
params: map[string]interface{}{
"name": "foo",
"from-file": []string{"foo1"},
},
expected: &v1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: "foo",
},
Data: map[string]string{},
BinaryData: map[string][]byte{"foo1": {0xff, 0xfd}},
},
expectErr: false,
},
{
params: map[string]interface{}{
"name": "foo",
@@ -151,6 +187,7 @@ func TestConfigMapGenerate(t *testing.T) {
Data: map[string]string{
"key1": "=value1",
},
BinaryData: map[string][]byte{},
},
expectErr: false,
},
@@ -167,6 +204,7 @@ func TestConfigMapGenerate(t *testing.T) {
Data: map[string]string{
"key1": "=value1",
},
BinaryData: map[string][]byte{},
},
expectErr: false,
},
@@ -184,6 +222,7 @@ func TestConfigMapGenerate(t *testing.T) {
"key1": "value1",
"key2": "value2",
},
BinaryData: map[string][]byte{},
},
expectErr: false,
},
@@ -202,6 +241,7 @@ func TestConfigMapGenerate(t *testing.T) {
"key1": "value1",
"key2": "value2",
},
BinaryData: map[string][]byte{},
},
expectErr: false,
},
@@ -223,6 +263,7 @@ func TestConfigMapGenerate(t *testing.T) {
"g_key1": "1",
"g_key2": "",
},
BinaryData: map[string][]byte{},
},
expectErr: false,
},
@@ -245,6 +286,7 @@ func TestConfigMapGenerate(t *testing.T) {
"g_key1": "1",
"g_key2": "",
},
BinaryData: map[string][]byte{},
},
expectErr: false,
},
@@ -277,6 +319,7 @@ func TestConfigMapGenerate(t *testing.T) {
Data: map[string]string{
"key1": " value1",
},
BinaryData: map[string][]byte{},
},
expectErr: false,
},
@@ -294,6 +337,7 @@ func TestConfigMapGenerate(t *testing.T) {
Data: map[string]string{
"key1": " value1",
},
BinaryData: map[string][]byte{},
},
expectErr: false,
},
@@ -335,3 +379,15 @@ func setupEnvFile(lines ...string) func(*testing.T, map[string]interface{}) func
}
}
}
func setupBinaryFile(data []byte) func(*testing.T, map[string]interface{}) func() {
return func(t *testing.T, params map[string]interface{}) func() {
tmp, _ := ioutil.TempDir("", "")
f := tmp + "/foo1"
ioutil.WriteFile(f, data, 0644)
params["from-file"] = []string{f}
return func() {
os.Remove(f)
}
}
}