forked from rook/rook
rgw: gateway deployment strategy rolling on Pacific
When the strategy type of deployment is Recreate, from the moment the end is started until the new pod is normally running, there is no pod in the kubernetes service endpoints, so it goes to the service unavailable state. Therefore, it is necessary to change it to `type: RollingUpdate` instead of `type: Recreate` so that rolling updates can be made without downtime. Before Pacific, creating a deployment as much as the instance was okay, but after Pacific, the replicas was increased in one deployment, so rolling updates were set up one by one as in the previous version. Signed-off-by: micalgenus <micalgenus@gmail.com>
This commit is contained in:
@@ -61,9 +61,19 @@ func (c *clusterConfig) createDeployment(rgwConfig *rgwConfig) (*apps.Deployment
|
||||
return nil, err
|
||||
}
|
||||
replicas := int32(1)
|
||||
// On Pacific, we can use the same keyring and have dedicated rgw instances reflected in the service map
|
||||
strategy := apps.DeploymentStrategy{
|
||||
Type: apps.RecreateDeploymentStrategyType,
|
||||
}
|
||||
if c.clusterInfo.CephVersion.IsAtLeastPacific() {
|
||||
// On Pacific, we can use the same keyring and have dedicated rgw instances reflected in the service map
|
||||
replicas = c.store.Spec.Gateway.Instances
|
||||
|
||||
// On Pacific, rgw gateway deployments rolling update
|
||||
strategy.Type = apps.RollingUpdateDeploymentStrategyType
|
||||
strategy.RollingUpdate = &apps.RollingUpdateDeployment{
|
||||
MaxUnavailable: &intstr.IntOrString{IntVal: int32(1)},
|
||||
MaxSurge: &intstr.IntOrString{IntVal: int32(0)},
|
||||
}
|
||||
}
|
||||
d := &apps.Deployment{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
@@ -77,9 +87,7 @@ func (c *clusterConfig) createDeployment(rgwConfig *rgwConfig) (*apps.Deployment
|
||||
},
|
||||
Template: pod,
|
||||
Replicas: &replicas,
|
||||
Strategy: apps.DeploymentStrategy{
|
||||
Type: apps.RecreateDeploymentStrategyType,
|
||||
},
|
||||
Strategy: strategy,
|
||||
},
|
||||
}
|
||||
k8sutil.AddRookVersionLabelToDeployment(d)
|
||||
|
||||
Reference in New Issue
Block a user