Example #1
0
 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'])
Example #2
0
    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])
Example #3
0
    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)
Example #4
0
    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])
Example #5
0
    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)
Example #6
0
 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'])
Example #7
0
 def test_create_service_without_ports(self):
     deploy._process_ports({"name": "spam"})
     self.assertFalse(self.create_obj.called)