def test_create_service_with_annotations(self): self.conf.configs._merge({'ingress': {'enabled': False}}) service = { "name": "foo", "annotations": { 'service': { "bla": "ble", "foo": "boo" } }, "ports": [{ "cont": 1111 }, { "cont": "2222" }, { "cont": 3333, "node": 30000 }, { "cont": "4444", "node": "33333" }] } objects = list(deploy._process_ports(service)) self.assertEqual({ 'bla': 'ble', 'foo': 'boo' }, objects[0]['metadata']['annotations'])
def test_create_ingress(self): self.conf.configs._merge( {'ingress': { 'enabled': True, 'domain': 'test' }}) service = { "name": "foo", "ports": [{ "cont": 1111, "ingress": "bar" }, { "cont": 3333, "node": 30000, "ingress": "eggs" }] } ingress_k8s_obj = { 'kind': 'Ingress', 'spec': { 'rules': [{ 'host': 'bar.test', 'http': { 'paths': [{ 'backend': { 'serviceName': 'foo', 'servicePort': 1111 } }] } }, { 'host': 'eggs.test', 'http': { 'paths': [{ 'backend': { 'serviceName': 'foo', 'servicePort': 3333 } }] } }] }, 'apiVersion': 'extensions/v1beta1', 'metadata': { 'name': 'foo' } } objects = list(deploy._process_ports(service)) self.assertEqual(2, len(objects)) self.assertEqual(ingress_k8s_obj, objects[1])
def test_create_service(self): self.conf.configs._merge({'ingress': {'enabled': False}}) service = { "name": "foo", "ports": [{ "cont": 1111 }, { "cont": "2222" }, { "cont": 3333, "node": 30000 }, { "cont": "4444", "node": "33333" }] } service_k8s_obj = """ apiVersion: v1 kind: Service metadata: labels: ccp: "true" name: foo spec: ports: - name: "1111" port: 1111 protocol: TCP targetPort: 1111 - name: "2222" port: 2222 protocol: TCP targetPort: 2222 - name: "3333" nodePort: 30000 port: 3333 protocol: TCP targetPort: 3333 - name: "4444" nodePort: 33333 port: 4444 protocol: TCP targetPort: 4444 selector: app: foo type: NodePort""" objects = list(deploy._process_ports(service)) self.assertEqual([yaml.load(service_k8s_obj)], objects)
def test_create_ingress(self): self.conf.configs._merge({'ingress': {'enabled': True, 'domain': 'test'}}) service = { "name": "foo", "ports": [ {"cont": 1111, "ingress": "bar"}, {"cont": 3333, "node": 30000, "ingress": "eggs"} ] } ingress_k8s_obj = { 'kind': 'Ingress', 'spec': { 'rules': [{ 'host': 'bar.test', 'http': { 'paths': [{ 'backend': { 'serviceName': 'foo', 'servicePort': 1111} }] } }, { 'host': 'eggs.test', 'http': { 'paths': [{ 'backend': { 'serviceName': 'foo', 'servicePort': 3333} }] } }] }, 'apiVersion': 'extensions/v1beta1', 'metadata': { 'name': 'foo' } } objects = list(deploy._process_ports(service)) self.assertEqual(2, len(objects)) self.assertEqual(ingress_k8s_obj, objects[1])
def test_create_service(self): self.conf.configs._merge({'ingress': {'enabled': False}}) service = { "name": "foo", "ports": [ {"cont": 1111}, {"cont": "2222"}, {"cont": 3333, "node": 30000}, {"cont": "4444", "node": "33333"} ] } service_k8s_obj = """ apiVersion: v1 kind: Service metadata: labels: ccp: "true" name: foo spec: ports: - name: "1111" port: 1111 protocol: TCP targetPort: 1111 - name: "2222" port: 2222 protocol: TCP targetPort: 2222 - name: "3333" nodePort: 30000 port: 3333 protocol: TCP targetPort: 3333 - name: "4444" nodePort: 33333 port: 4444 protocol: TCP targetPort: 4444 selector: app: foo type: NodePort""" objects = list(deploy._process_ports(service)) self.assertEqual([yaml.load(service_k8s_obj)], objects)
def test_create_service_with_annotations(self): self.conf.configs._merge({'ingress': {'enabled': False}}) service = { "name": "foo", "annotations": {'service': {"bla": "ble", "foo": "boo"}}, "ports": [ {"cont": 1111}, {"cont": "2222"}, {"cont": 3333, "node": 30000}, {"cont": "4444", "node": "33333"} ] } objects = list(deploy._process_ports(service)) self.assertEqual( {'bla': 'ble', 'foo': 'boo'}, objects[0]['metadata']['annotations'])
def test_create_service_without_ports(self): deploy._process_ports({"name": "spam"}) self.assertFalse(self.create_obj.called)