mirror of
https://github.com/rancher/rke.git
synced 2025-05-10 09:24:32 +00:00
Use v3 type for addons updateStrategy
This commit is contained in:
parent
8363708320
commit
00f6567714
@ -289,7 +289,10 @@ func (c *Cluster) deployKubeDNS(ctx context.Context, data map[string]interface{}
|
||||
ReverseCIDRs: c.DNS.ReverseCIDRs,
|
||||
StubDomains: c.DNS.StubDomains,
|
||||
NodeSelector: c.DNS.NodeSelector,
|
||||
UpdateStrategy: c.DNS.UpdateStrategy,
|
||||
UpdateStrategy: &appsv1.DeploymentStrategy{
|
||||
Type: c.DNS.UpdateStrategy.Strategy,
|
||||
RollingUpdate: c.DNS.UpdateStrategy.RollingUpdate,
|
||||
},
|
||||
}
|
||||
linearModeBytes, err := json.Marshal(c.DNS.LinearAutoscalerParams)
|
||||
if err != nil {
|
||||
@ -322,7 +325,10 @@ func (c *Cluster) deployCoreDNS(ctx context.Context, data map[string]interface{}
|
||||
UpstreamNameservers: c.DNS.UpstreamNameservers,
|
||||
ReverseCIDRs: c.DNS.ReverseCIDRs,
|
||||
NodeSelector: c.DNS.NodeSelector,
|
||||
UpdateStrategy: c.DNS.UpdateStrategy,
|
||||
UpdateStrategy: &appsv1.DeploymentStrategy{
|
||||
Type: c.DNS.UpdateStrategy.Strategy,
|
||||
RollingUpdate: c.DNS.UpdateStrategy.RollingUpdate,
|
||||
},
|
||||
}
|
||||
linearModeBytes, err := json.Marshal(c.DNS.LinearAutoscalerParams)
|
||||
if err != nil {
|
||||
@ -372,8 +378,11 @@ func (c *Cluster) deployMetricServer(ctx context.Context, data map[string]interf
|
||||
Options: c.Monitoring.Options,
|
||||
NodeSelector: c.Monitoring.NodeSelector,
|
||||
Version: util.GetTagMajorVersion(versionTag),
|
||||
UpdateStrategy: c.Monitoring.UpdateStrategy,
|
||||
Replicas: c.Monitoring.Replicas,
|
||||
UpdateStrategy: &appsv1.DeploymentStrategy{
|
||||
Type: c.Monitoring.UpdateStrategy.Strategy,
|
||||
RollingUpdate: c.Monitoring.UpdateStrategy.RollingUpdate,
|
||||
},
|
||||
Replicas: c.Monitoring.Replicas,
|
||||
}
|
||||
tmplt, err := templates.GetVersionedTemplates(kdm.MetricsServer, data, c.Version)
|
||||
if err != nil {
|
||||
@ -531,7 +540,10 @@ func (c *Cluster) deployIngress(ctx context.Context, data map[string]interface{}
|
||||
ExtraEnvs: c.Ingress.ExtraEnvs,
|
||||
ExtraVolumes: c.Ingress.ExtraVolumes,
|
||||
ExtraVolumeMounts: c.Ingress.ExtraVolumeMounts,
|
||||
UpdateStrategy: c.Ingress.UpdateStrategy,
|
||||
UpdateStrategy: &appsv1.DaemonSetUpdateStrategy{
|
||||
Type: c.Ingress.UpdateStrategy.Strategy,
|
||||
RollingUpdate: c.Ingress.UpdateStrategy.RollingUpdate,
|
||||
},
|
||||
}
|
||||
// since nginx ingress controller 0.16.0, it can be run as non-root and doesn't require privileged anymore.
|
||||
// So we can use securityContext instead of setting privileges via initContainer.
|
||||
@ -649,7 +661,12 @@ func (c *Cluster) deployNodelocal(ctx context.Context, data map[string]interface
|
||||
ClusterDNSServer: c.ClusterDNSServer,
|
||||
IPAddress: c.DNS.Nodelocal.IPAddress,
|
||||
NodeSelector: c.DNS.Nodelocal.NodeSelector,
|
||||
UpdateStrategy: c.DNS.Nodelocal.UpdateStrategy,
|
||||
}
|
||||
if c.DNS.Nodelocal.UpdateStrategy != nil {
|
||||
NodelocalConfig.UpdateStrategy = &appsv1.DaemonSetUpdateStrategy{
|
||||
Type: c.DNS.Nodelocal.UpdateStrategy.Strategy,
|
||||
RollingUpdate: c.DNS.Nodelocal.UpdateStrategy.RollingUpdate,
|
||||
}
|
||||
}
|
||||
tmplt, err := templates.GetVersionedTemplates(kdm.Nodelocal, data, c.Version)
|
||||
if err != nil {
|
||||
|
@ -27,7 +27,6 @@ import (
|
||||
"github.com/sirupsen/logrus"
|
||||
"golang.org/x/sync/errgroup"
|
||||
"gopkg.in/yaml.v2"
|
||||
appsv1 "k8s.io/api/apps/v1"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime/serializer"
|
||||
@ -517,25 +516,26 @@ func parseIngressConfig(clusterFile string, rkeConfig *v3.RancherKubernetesEngin
|
||||
return nil
|
||||
}
|
||||
|
||||
func parseDaemonSetUpdateStrategy(updateStrategyField interface{}) (*appsv1.DaemonSetUpdateStrategy, error) {
|
||||
func parseDaemonSetUpdateStrategy(updateStrategyField interface{}) (*v3.DaemonSetUpdateStrategy, error) {
|
||||
updateStrategyBytes, err := json.Marshal(updateStrategyField)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("[parseDaemonSetUpdateStrategy] error marshalling updateStrategy: %v", err)
|
||||
}
|
||||
var updateStrategy *appsv1.DaemonSetUpdateStrategy
|
||||
var updateStrategy *v3.DaemonSetUpdateStrategy
|
||||
err = json.Unmarshal(updateStrategyBytes, &updateStrategy)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("[parseIngressUpdateStrategy] error unmarshaling updateStrategy: %v", err)
|
||||
}
|
||||
|
||||
return updateStrategy, nil
|
||||
}
|
||||
|
||||
func parseDeploymentUpdateStrategy(updateStrategyField interface{}) (*appsv1.DeploymentStrategy, error) {
|
||||
func parseDeploymentUpdateStrategy(updateStrategyField interface{}) (*v3.DeploymentStrategy, error) {
|
||||
updateStrategyBytes, err := json.Marshal(updateStrategyField)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("[parseDeploymentUpdateStrategy] error marshalling updateStrategy: %v", err)
|
||||
}
|
||||
var updateStrategy *appsv1.DeploymentStrategy
|
||||
var updateStrategy *v3.DeploymentStrategy
|
||||
err = json.Unmarshal(updateStrategyBytes, &updateStrategy)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("[parseDeploymentUpdateStrategy] error unmarshaling updateStrategy: %v", err)
|
||||
|
@ -95,12 +95,12 @@ const (
|
||||
var (
|
||||
DefaultDaemonSetMaxUnavailable = intstr.FromInt(1)
|
||||
DefaultDeploymentUpdateStrategyParams = intstr.FromString("25%")
|
||||
DefaultDaemonSetUpdateStrategy = appsv1.DaemonSetUpdateStrategy{
|
||||
Type: appsv1.RollingUpdateDaemonSetStrategyType,
|
||||
DefaultDaemonSetUpdateStrategy = v3.DaemonSetUpdateStrategy{
|
||||
Strategy: appsv1.RollingUpdateDaemonSetStrategyType,
|
||||
RollingUpdate: &appsv1.RollingUpdateDaemonSet{MaxUnavailable: &DefaultDaemonSetMaxUnavailable},
|
||||
}
|
||||
DefaultDeploymentUpdateStrategy = appsv1.DeploymentStrategy{
|
||||
Type: appsv1.RollingUpdateDeploymentStrategyType,
|
||||
DefaultDeploymentUpdateStrategy = v3.DeploymentStrategy{
|
||||
Strategy: appsv1.RollingUpdateDeploymentStrategyType,
|
||||
RollingUpdate: &appsv1.RollingUpdateDeployment{
|
||||
MaxUnavailable: &DefaultDeploymentUpdateStrategyParams,
|
||||
MaxSurge: &DefaultDeploymentUpdateStrategyParams,
|
||||
@ -629,8 +629,8 @@ func (c *Cluster) setAddonsDefaults() {
|
||||
}
|
||||
}
|
||||
|
||||
func setDaemonsetAddonDefaults(updateStrategy *appsv1.DaemonSetUpdateStrategy) *appsv1.DaemonSetUpdateStrategy {
|
||||
if updateStrategy != nil && updateStrategy.Type != appsv1.RollingUpdateDaemonSetStrategyType {
|
||||
func setDaemonsetAddonDefaults(updateStrategy *v3.DaemonSetUpdateStrategy) *v3.DaemonSetUpdateStrategy {
|
||||
if updateStrategy != nil && updateStrategy.Strategy != appsv1.RollingUpdateDaemonSetStrategyType {
|
||||
return updateStrategy
|
||||
}
|
||||
if updateStrategy == nil || updateStrategy.RollingUpdate == nil || updateStrategy.RollingUpdate.MaxUnavailable == nil {
|
||||
@ -639,8 +639,8 @@ func setDaemonsetAddonDefaults(updateStrategy *appsv1.DaemonSetUpdateStrategy) *
|
||||
return updateStrategy
|
||||
}
|
||||
|
||||
func setDeploymentAddonDefaults(updateStrategy *appsv1.DeploymentStrategy) *appsv1.DeploymentStrategy {
|
||||
if updateStrategy != nil && updateStrategy.Type != appsv1.RollingUpdateDeploymentStrategyType {
|
||||
func setDeploymentAddonDefaults(updateStrategy *v3.DeploymentStrategy) *v3.DeploymentStrategy {
|
||||
if updateStrategy != nil && updateStrategy.Strategy != appsv1.RollingUpdateDeploymentStrategyType {
|
||||
return updateStrategy
|
||||
}
|
||||
if updateStrategy == nil || updateStrategy.RollingUpdate == nil {
|
||||
@ -655,19 +655,19 @@ func setDeploymentAddonDefaults(updateStrategy *appsv1.DeploymentStrategy) *apps
|
||||
return updateStrategy
|
||||
}
|
||||
|
||||
func setDNSDeploymentAddonDefaults(updateStrategy *appsv1.DeploymentStrategy, dnsProvider string) *appsv1.DeploymentStrategy {
|
||||
func setDNSDeploymentAddonDefaults(updateStrategy *v3.DeploymentStrategy, dnsProvider string) *v3.DeploymentStrategy {
|
||||
var (
|
||||
coreDNSMaxUnavailable, coreDNSMaxSurge = intstr.FromInt(1), intstr.FromInt(0)
|
||||
kubeDNSMaxSurge, kubeDNSMaxUnavailable = intstr.FromString("10%"), intstr.FromInt(0)
|
||||
)
|
||||
if updateStrategy != nil && updateStrategy.Type != appsv1.RollingUpdateDeploymentStrategyType {
|
||||
if updateStrategy != nil && updateStrategy.Strategy != appsv1.RollingUpdateDeploymentStrategyType {
|
||||
return updateStrategy
|
||||
}
|
||||
switch dnsProvider {
|
||||
case CoreDNSProvider:
|
||||
if updateStrategy == nil || updateStrategy.RollingUpdate == nil {
|
||||
return &appsv1.DeploymentStrategy{
|
||||
Type: appsv1.RollingUpdateDeploymentStrategyType,
|
||||
return &v3.DeploymentStrategy{
|
||||
Strategy: appsv1.RollingUpdateDeploymentStrategyType,
|
||||
RollingUpdate: &appsv1.RollingUpdateDeployment{
|
||||
MaxUnavailable: &coreDNSMaxUnavailable,
|
||||
MaxSurge: &coreDNSMaxSurge,
|
||||
@ -679,8 +679,8 @@ func setDNSDeploymentAddonDefaults(updateStrategy *appsv1.DeploymentStrategy, dn
|
||||
}
|
||||
case KubeDNSProvider:
|
||||
if updateStrategy == nil || updateStrategy.RollingUpdate == nil {
|
||||
return &appsv1.DeploymentStrategy{
|
||||
Type: appsv1.RollingUpdateDeploymentStrategyType,
|
||||
return &v3.DeploymentStrategy{
|
||||
Strategy: appsv1.RollingUpdateDeploymentStrategyType,
|
||||
RollingUpdate: &appsv1.RollingUpdateDeployment{
|
||||
MaxUnavailable: &kubeDNSMaxUnavailable,
|
||||
MaxSurge: &kubeDNSMaxSurge,
|
||||
|
@ -18,6 +18,7 @@ import (
|
||||
"github.com/rancher/types/apis/management.cattle.io/v3"
|
||||
"github.com/sirupsen/logrus"
|
||||
"golang.org/x/sync/errgroup"
|
||||
appsv1 "k8s.io/api/apps/v1"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -177,7 +178,10 @@ func (c *Cluster) doFlannelDeploy(ctx context.Context, data map[string]interface
|
||||
RBACConfig: c.Authorization.Mode,
|
||||
ClusterVersion: util.GetTagMajorVersion(c.Version),
|
||||
NodeSelector: c.Network.NodeSelector,
|
||||
UpdateStrategy: c.Network.UpdateStrategy,
|
||||
UpdateStrategy: &appsv1.DaemonSetUpdateStrategy{
|
||||
Type: c.Network.UpdateStrategy.Strategy,
|
||||
RollingUpdate: c.Network.UpdateStrategy.RollingUpdate,
|
||||
},
|
||||
}
|
||||
pluginYaml, err := c.getNetworkPluginManifest(flannelConfig, data)
|
||||
if err != nil {
|
||||
@ -201,7 +205,10 @@ func (c *Cluster) doCalicoDeploy(ctx context.Context, data map[string]interface{
|
||||
RBACConfig: c.Authorization.Mode,
|
||||
NodeSelector: c.Network.NodeSelector,
|
||||
MTU: c.Network.MTU,
|
||||
UpdateStrategy: c.Network.UpdateStrategy,
|
||||
UpdateStrategy: &appsv1.DaemonSetUpdateStrategy{
|
||||
Type: c.Network.UpdateStrategy.Strategy,
|
||||
RollingUpdate: c.Network.UpdateStrategy.RollingUpdate,
|
||||
},
|
||||
FlexVolPluginDir: c.Network.Options[CalicoFlexVolPluginDirectory],
|
||||
}
|
||||
pluginYaml, err := c.getNetworkPluginManifest(calicoConfig, data)
|
||||
@ -240,9 +247,12 @@ func (c *Cluster) doCanalDeploy(ctx context.Context, data map[string]interface{}
|
||||
"VNI": flannelVni,
|
||||
"Port": flannelPort,
|
||||
},
|
||||
NodeSelector: c.Network.NodeSelector,
|
||||
MTU: c.Network.MTU,
|
||||
UpdateStrategy: c.Network.UpdateStrategy,
|
||||
NodeSelector: c.Network.NodeSelector,
|
||||
MTU: c.Network.MTU,
|
||||
UpdateStrategy: &appsv1.DaemonSetUpdateStrategy{
|
||||
Type: c.Network.UpdateStrategy.Strategy,
|
||||
RollingUpdate: c.Network.UpdateStrategy.RollingUpdate,
|
||||
},
|
||||
FlexVolPluginDir: c.Network.Options[CanalFlexVolPluginDirectory],
|
||||
}
|
||||
pluginYaml, err := c.getNetworkPluginManifest(canalConfig, data)
|
||||
@ -262,7 +272,10 @@ func (c *Cluster) doWeaveDeploy(ctx context.Context, data map[string]interface{}
|
||||
RBACConfig: c.Authorization.Mode,
|
||||
NodeSelector: c.Network.NodeSelector,
|
||||
MTU: c.Network.MTU,
|
||||
UpdateStrategy: c.Network.UpdateStrategy,
|
||||
UpdateStrategy: &appsv1.DaemonSetUpdateStrategy{
|
||||
Type: c.Network.UpdateStrategy.Strategy,
|
||||
RollingUpdate: c.Network.UpdateStrategy.RollingUpdate,
|
||||
},
|
||||
}
|
||||
pluginYaml, err := c.getNetworkPluginManifest(weaveConfig, data)
|
||||
if err != nil {
|
||||
|
Loading…
Reference in New Issue
Block a user