diff --git a/cmd/expandybird/expander/expander_test.go b/cmd/expandybird/expander/expander_test.go index 337318fb4..52336d8e3 100644 --- a/cmd/expandybird/expander/expander_test.go +++ b/cmd/expandybird/expander/expander_test.go @@ -756,44 +756,16 @@ func TestReplicatedService(t *testing.T) { &expansion.ServiceResponse{ Resources: []interface{}{ map[string]interface{}{ - "type": "Service", - "name": "test_invocation-service", - "properties": map[string]interface{}{ - "kind": "Service", - "apiVersion": "v1", - "namespace": "default", - "metadata": map[string]interface{}{ - "name": "test_invocation-service", - "labels": map[string]interface{}{ - "name": "test_invocation-service", - }, - }, - "spec": map[string]interface{}{ - "ports": []interface{}{ - map[string]interface{}{ - "name": "test_invocation", - "port": 1234.0, - "targetPort": 1234.0, - }, - }, - "selector": map[string]interface{}{ - "name": "test_invocation", - }, - }, - }, - }, - map[string]interface{}{ - "type": "ReplicationController", "name": "test_invocation-rc", "properties": map[string]interface{}{ - "kind": "ReplicationController", "apiVersion": "v1", - "namespace": "default", + "kind": "ReplicationController", "metadata": map[string]interface{}{ - "name": "test_invocation-rc", "labels": map[string]interface{}{ "name": "test_invocation-rc", }, + "name": "test_invocation-rc", + "namespace": "default", }, "spec": map[string]interface{}{ "replicas": 3.0, @@ -824,6 +796,34 @@ func TestReplicatedService(t *testing.T) { }, }, }, + "type": "ReplicationController", + }, + map[string]interface{}{ + "name": "test_invocation-service", + "properties": map[string]interface{}{ + "apiVersion": "v1", + "kind": "Service", + "metadata": map[string]interface{}{ + "labels": map[string]interface{}{ + "name": "test_invocation-service", + }, + "name": "test_invocation-service", + "namespace": "default", + }, + "spec": map[string]interface{}{ + "ports": []interface{}{ + map[string]interface{}{ + "name": "test_invocation", + "port": 1234.0, + "targetPort": 1234.0, + }, + }, + "selector": map[string]interface{}{ + "name": "test_invocation", + }, + }, + }, + "type": "Service", }, }, }, diff --git a/cmd/helm/properties.go b/cmd/helm/properties.go index 3e58352de..df8797f78 100644 --- a/cmd/helm/properties.go +++ b/cmd/helm/properties.go @@ -40,15 +40,15 @@ func parseProperties(kvstr string) (map[string]interface{}, error) { // Allow for "k=v, k=v" p = strings.TrimSpace(p) pair := strings.Split(p, "=") - if len(pair) == 1 { + if len(pair) < 2 { return properties, errInvalidProperty } // If the value looks int-like, convert it. if i, err := strconv.Atoi(pair[1]); err == nil { - properties[pair[0]] = pair[1] - } else { properties[pair[0]] = i + } else { + properties[pair[0]] = pair[1] } } diff --git a/examples/charts/replicatedservice-3.tgz b/examples/charts/replicatedservice-3.tgz index adc9cf39b..ebbcc1802 100644 Binary files a/examples/charts/replicatedservice-3.tgz and b/examples/charts/replicatedservice-3.tgz differ diff --git a/examples/charts/replicatedservice/templates/replicatedservice.py b/examples/charts/replicatedservice/templates/replicatedservice.py index 7d20e3015..73fc6203d 100644 --- a/examples/charts/replicatedservice/templates/replicatedservice.py +++ b/examples/charts/replicatedservice/templates/replicatedservice.py @@ -37,20 +37,20 @@ def GenerateConfig(context): service = { 'name': service_name, - 'type': service_type, 'properties': { 'apiVersion': 'v1', 'kind': 'Service', - 'namespace': namespace, 'metadata': { - 'name': service_name, 'labels': GenerateLabels(context, service_name), + 'name': service_name, + 'namespace': namespace, }, 'spec': { 'ports': [GenerateServicePorts(context, container_name)], 'selector': GenerateLabels(context, name) } - } + }, + 'type': service_type, } set_up_external_lb = context.properties.get('external_service', None) if set_up_external_lb: @@ -58,7 +58,6 @@ def GenerateConfig(context): cluster_ip = context.properties.get('cluster_ip', None) if cluster_ip: service['properties']['spec']['clusterIP'] = cluster_ip - config['resources'].append(service) rc = { 'name': rc_name, @@ -66,10 +65,10 @@ def GenerateConfig(context): 'properties': { 'apiVersion': 'v1', 'kind': 'ReplicationController', - 'namespace': namespace, 'metadata': { - 'name': rc_name, 'labels': GenerateLabels(context, rc_name), + 'name': rc_name, + 'namespace': namespace, }, 'spec': { 'replicas': context.properties['replicas'], @@ -82,8 +81,8 @@ def GenerateConfig(context): 'containers': [ { 'env': GenerateEnv(context), - 'name': container_name, 'image': context.properties['image'], + 'name': container_name, 'ports': [ { 'name': container_name, @@ -121,6 +120,7 @@ def GenerateConfig(context): } config['resources'].append(rc) + config['resources'].append(service) return yaml.dump(config)