Exemplo n.º 1
0
 def test_get_deployment_strategy(self):
     with mock.patch(
             'paasta_tools.kubernetes_tools.KubernetesDeploymentConfig.get_bounce_method',
             autospec=True,
             return_value='RollingUpdate',
     ) as mock_get_bounce_method:
         assert self.deployment.get_deployment_strategy_config(
         ) == V1DeploymentStrategy(
             type='RollingUpdate',
             rolling_update=V1RollingUpdateDeployment(
                 max_surge='100%',
                 max_unavailable='0%',
             ),
         )
         mock_get_bounce_method.return_value = 'Recreate'
         assert self.deployment.get_deployment_strategy_config(
         ) == V1DeploymentStrategy(type='Recreate', )
Exemplo n.º 2
0
    def get_deployment_strategy_config(self) -> V1DeploymentStrategy:
        strategy_type = self.get_bounce_method()
        rolling_update: Optional[V1RollingUpdateDeployment]
        if strategy_type == 'RollingUpdate':
            # this translates bounce_margin to k8s speak maxUnavailable
            # for now we keep max_surge 100% but we could customise later
            rolling_update = V1RollingUpdateDeployment(
                max_surge='100%',
                max_unavailable="{}%".format(int((1 - self.get_bounce_margin_factor()) * 100)),
            )
        else:
            rolling_update = None

        strategy = V1DeploymentStrategy(
            type=strategy_type,
            rolling_update=rolling_update,
        )
        return strategy