Esempio n. 1
0
    def test_hpa_update(self):
        c_nginx = _utils.create_container(name="yo", image="nginx:latest")

        deploy = _utils.create_deployment(name="yo")
        deploy.add_container(c_nginx)
        deploy.desired_replicas = 3

        hpa = _utils.create_hpa(name="yo")
        hpa.min_replicas = 1
        hpa.max_replicas = 10
        hpa.cpu_percent = 50
        hpa.scale_ref = ("Deployment", "yo")

        if _utils.is_reachable(hpa.config):
            deploy.create()
            hpa.create()
            hpa.get()
            self.assertEqual(50, hpa.cpu_percent)
            hpa.cpu_percent = 70
            hpa.min_replicas = 3
            hpa.max_replicas = 5
            hpa.update()
            hpa.get()
            self.assertEqual(70, hpa.cpu_percent)
            self.assertEqual(3, hpa.min_replicas)
            self.assertEqual(5, hpa.max_replicas)
Esempio n. 2
0
    def test_hpa_walkthrough(self):
        """
        https://kubernetes.io/docs/user-guide/horizontal-pod-autoscaling/walkthrough/
        https://github.com/kubernetes/community/blob/master/contributors/design-proposals/horizontal-pod-autoscaler.md
        """

        k8s_dep = _utils.create_deployment(name="php-apache")
        k8s_dep.model = Deployment(_constants.hpa_example_deployment())

        k8s_svc = _utils.create_service(name="php-apache")
        k8s_svc.model = Service(_constants.hpa_example_service())

        k8s_hpa = _utils.create_hpa(name="php-apache")
        k8s_hpa.model = HorizontalPodAutoscaler(
            _constants.hpa_example_autoscaler())

        if _utils.is_reachable(k8s_hpa.config):
            # //--- Step One: Run & expose php-apache server
            k8s_dep.create()
            k8s_svc.create()
            # // --- Step Two: Create Horizontal Pod Autoscaler
            k8s_hpa.create()

        # // --- Step Three: Increase Load
        # $ kubectl run -i --tty load-generator --image=busybox /bin/sh
        # $ while true; do wget -q -O- http://php-apache.default.svc.cluster.local; done
        # watch 'kubectl config current-context; echo; kubectl get deployments; echo; kubectl get replicasets; echo; kubectl get pods; echo; kubectl top nodes; echo; kubectl top pods'

        time.sleep(10)  # wait for 10 secs; set a breakpoint if you need.
Esempio n. 3
0
 def test_from_json(self):
     cfg = _utils.create_config()
     hpa = _utils.create_hpa(config=cfg, name="yo")
     d = hpa.model.serialize()
     j = json.dumps(d)
     k8s = K8sHorizontalPodAutoscaler.from_json(j, cfg)
     self.assertIsInstance(k8s, K8sHorizontalPodAutoscaler)