Commit 6ec1c9e3 authored by Jack Greenfield's avatar Jack Greenfield

Merge pull request #500 from jackgr/deployment

More tweaks to enable end to end deployment
parents c69ed291 0b3f545b
...@@ -756,44 +756,16 @@ func TestReplicatedService(t *testing.T) { ...@@ -756,44 +756,16 @@ func TestReplicatedService(t *testing.T) {
&expansion.ServiceResponse{ &expansion.ServiceResponse{
Resources: []interface{}{ Resources: []interface{}{
map[string]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", "name": "test_invocation-rc",
"properties": map[string]interface{}{ "properties": map[string]interface{}{
"kind": "ReplicationController",
"apiVersion": "v1", "apiVersion": "v1",
"namespace": "default", "kind": "ReplicationController",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "test_invocation-rc",
"labels": map[string]interface{}{ "labels": map[string]interface{}{
"name": "test_invocation-rc", "name": "test_invocation-rc",
}, },
"name": "test_invocation-rc",
"namespace": "default",
}, },
"spec": map[string]interface{}{ "spec": map[string]interface{}{
"replicas": 3.0, "replicas": 3.0,
...@@ -824,6 +796,34 @@ func TestReplicatedService(t *testing.T) { ...@@ -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",
}, },
}, },
}, },
......
...@@ -40,15 +40,15 @@ func parseProperties(kvstr string) (map[string]interface{}, error) { ...@@ -40,15 +40,15 @@ func parseProperties(kvstr string) (map[string]interface{}, error) {
// Allow for "k=v, k=v" // Allow for "k=v, k=v"
p = strings.TrimSpace(p) p = strings.TrimSpace(p)
pair := strings.Split(p, "=") pair := strings.Split(p, "=")
if len(pair) == 1 { if len(pair) < 2 {
return properties, errInvalidProperty return properties, errInvalidProperty
} }
// If the value looks int-like, convert it. // If the value looks int-like, convert it.
if i, err := strconv.Atoi(pair[1]); err == nil { if i, err := strconv.Atoi(pair[1]); err == nil {
properties[pair[0]] = pair[1]
} else {
properties[pair[0]] = i properties[pair[0]] = i
} else {
properties[pair[0]] = pair[1]
} }
} }
......
...@@ -37,20 +37,20 @@ def GenerateConfig(context): ...@@ -37,20 +37,20 @@ def GenerateConfig(context):
service = { service = {
'name': service_name, 'name': service_name,
'type': service_type,
'properties': { 'properties': {
'apiVersion': 'v1', 'apiVersion': 'v1',
'kind': 'Service', 'kind': 'Service',
'namespace': namespace,
'metadata': { 'metadata': {
'name': service_name,
'labels': GenerateLabels(context, service_name), 'labels': GenerateLabels(context, service_name),
'name': service_name,
'namespace': namespace,
}, },
'spec': { 'spec': {
'ports': [GenerateServicePorts(context, container_name)], 'ports': [GenerateServicePorts(context, container_name)],
'selector': GenerateLabels(context, name) 'selector': GenerateLabels(context, name)
} }
} },
'type': service_type,
} }
set_up_external_lb = context.properties.get('external_service', None) set_up_external_lb = context.properties.get('external_service', None)
if set_up_external_lb: if set_up_external_lb:
...@@ -58,7 +58,6 @@ def GenerateConfig(context): ...@@ -58,7 +58,6 @@ def GenerateConfig(context):
cluster_ip = context.properties.get('cluster_ip', None) cluster_ip = context.properties.get('cluster_ip', None)
if cluster_ip: if cluster_ip:
service['properties']['spec']['clusterIP'] = cluster_ip service['properties']['spec']['clusterIP'] = cluster_ip
config['resources'].append(service)
rc = { rc = {
'name': rc_name, 'name': rc_name,
...@@ -66,10 +65,10 @@ def GenerateConfig(context): ...@@ -66,10 +65,10 @@ def GenerateConfig(context):
'properties': { 'properties': {
'apiVersion': 'v1', 'apiVersion': 'v1',
'kind': 'ReplicationController', 'kind': 'ReplicationController',
'namespace': namespace,
'metadata': { 'metadata': {
'name': rc_name,
'labels': GenerateLabels(context, rc_name), 'labels': GenerateLabels(context, rc_name),
'name': rc_name,
'namespace': namespace,
}, },
'spec': { 'spec': {
'replicas': context.properties['replicas'], 'replicas': context.properties['replicas'],
...@@ -82,8 +81,8 @@ def GenerateConfig(context): ...@@ -82,8 +81,8 @@ def GenerateConfig(context):
'containers': [ 'containers': [
{ {
'env': GenerateEnv(context), 'env': GenerateEnv(context),
'name': container_name,
'image': context.properties['image'], 'image': context.properties['image'],
'name': container_name,
'ports': [ 'ports': [
{ {
'name': container_name, 'name': container_name,
...@@ -121,6 +120,7 @@ def GenerateConfig(context): ...@@ -121,6 +120,7 @@ def GenerateConfig(context):
} }
config['resources'].append(rc) config['resources'].append(rc)
config['resources'].append(service)
return yaml.dump(config) return yaml.dump(config)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment