mirror of
https://github.com/rancher/rke.git
synced 2025-08-17 14:27:01 +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,
|
ReverseCIDRs: c.DNS.ReverseCIDRs,
|
||||||
StubDomains: c.DNS.StubDomains,
|
StubDomains: c.DNS.StubDomains,
|
||||||
NodeSelector: c.DNS.NodeSelector,
|
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)
|
linearModeBytes, err := json.Marshal(c.DNS.LinearAutoscalerParams)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -322,7 +325,10 @@ func (c *Cluster) deployCoreDNS(ctx context.Context, data map[string]interface{}
|
|||||||
UpstreamNameservers: c.DNS.UpstreamNameservers,
|
UpstreamNameservers: c.DNS.UpstreamNameservers,
|
||||||
ReverseCIDRs: c.DNS.ReverseCIDRs,
|
ReverseCIDRs: c.DNS.ReverseCIDRs,
|
||||||
NodeSelector: c.DNS.NodeSelector,
|
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)
|
linearModeBytes, err := json.Marshal(c.DNS.LinearAutoscalerParams)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -372,7 +378,10 @@ func (c *Cluster) deployMetricServer(ctx context.Context, data map[string]interf
|
|||||||
Options: c.Monitoring.Options,
|
Options: c.Monitoring.Options,
|
||||||
NodeSelector: c.Monitoring.NodeSelector,
|
NodeSelector: c.Monitoring.NodeSelector,
|
||||||
Version: util.GetTagMajorVersion(versionTag),
|
Version: util.GetTagMajorVersion(versionTag),
|
||||||
UpdateStrategy: c.Monitoring.UpdateStrategy,
|
UpdateStrategy: &appsv1.DeploymentStrategy{
|
||||||
|
Type: c.Monitoring.UpdateStrategy.Strategy,
|
||||||
|
RollingUpdate: c.Monitoring.UpdateStrategy.RollingUpdate,
|
||||||
|
},
|
||||||
Replicas: c.Monitoring.Replicas,
|
Replicas: c.Monitoring.Replicas,
|
||||||
}
|
}
|
||||||
tmplt, err := templates.GetVersionedTemplates(kdm.MetricsServer, data, c.Version)
|
tmplt, err := templates.GetVersionedTemplates(kdm.MetricsServer, data, c.Version)
|
||||||
@ -531,7 +540,10 @@ func (c *Cluster) deployIngress(ctx context.Context, data map[string]interface{}
|
|||||||
ExtraEnvs: c.Ingress.ExtraEnvs,
|
ExtraEnvs: c.Ingress.ExtraEnvs,
|
||||||
ExtraVolumes: c.Ingress.ExtraVolumes,
|
ExtraVolumes: c.Ingress.ExtraVolumes,
|
||||||
ExtraVolumeMounts: c.Ingress.ExtraVolumeMounts,
|
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.
|
// 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.
|
// 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,
|
ClusterDNSServer: c.ClusterDNSServer,
|
||||||
IPAddress: c.DNS.Nodelocal.IPAddress,
|
IPAddress: c.DNS.Nodelocal.IPAddress,
|
||||||
NodeSelector: c.DNS.Nodelocal.NodeSelector,
|
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)
|
tmplt, err := templates.GetVersionedTemplates(kdm.Nodelocal, data, c.Version)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -27,7 +27,6 @@ import (
|
|||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
"golang.org/x/sync/errgroup"
|
"golang.org/x/sync/errgroup"
|
||||||
"gopkg.in/yaml.v2"
|
"gopkg.in/yaml.v2"
|
||||||
appsv1 "k8s.io/api/apps/v1"
|
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/runtime/serializer"
|
"k8s.io/apimachinery/pkg/runtime/serializer"
|
||||||
@ -517,25 +516,26 @@ func parseIngressConfig(clusterFile string, rkeConfig *v3.RancherKubernetesEngin
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseDaemonSetUpdateStrategy(updateStrategyField interface{}) (*appsv1.DaemonSetUpdateStrategy, error) {
|
func parseDaemonSetUpdateStrategy(updateStrategyField interface{}) (*v3.DaemonSetUpdateStrategy, error) {
|
||||||
updateStrategyBytes, err := json.Marshal(updateStrategyField)
|
updateStrategyBytes, err := json.Marshal(updateStrategyField)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("[parseDaemonSetUpdateStrategy] error marshalling updateStrategy: %v", err)
|
return nil, fmt.Errorf("[parseDaemonSetUpdateStrategy] error marshalling updateStrategy: %v", err)
|
||||||
}
|
}
|
||||||
var updateStrategy *appsv1.DaemonSetUpdateStrategy
|
var updateStrategy *v3.DaemonSetUpdateStrategy
|
||||||
err = json.Unmarshal(updateStrategyBytes, &updateStrategy)
|
err = json.Unmarshal(updateStrategyBytes, &updateStrategy)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("[parseIngressUpdateStrategy] error unmarshaling updateStrategy: %v", err)
|
return nil, fmt.Errorf("[parseIngressUpdateStrategy] error unmarshaling updateStrategy: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return updateStrategy, nil
|
return updateStrategy, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseDeploymentUpdateStrategy(updateStrategyField interface{}) (*appsv1.DeploymentStrategy, error) {
|
func parseDeploymentUpdateStrategy(updateStrategyField interface{}) (*v3.DeploymentStrategy, error) {
|
||||||
updateStrategyBytes, err := json.Marshal(updateStrategyField)
|
updateStrategyBytes, err := json.Marshal(updateStrategyField)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("[parseDeploymentUpdateStrategy] error marshalling updateStrategy: %v", err)
|
return nil, fmt.Errorf("[parseDeploymentUpdateStrategy] error marshalling updateStrategy: %v", err)
|
||||||
}
|
}
|
||||||
var updateStrategy *appsv1.DeploymentStrategy
|
var updateStrategy *v3.DeploymentStrategy
|
||||||
err = json.Unmarshal(updateStrategyBytes, &updateStrategy)
|
err = json.Unmarshal(updateStrategyBytes, &updateStrategy)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("[parseDeploymentUpdateStrategy] error unmarshaling updateStrategy: %v", err)
|
return nil, fmt.Errorf("[parseDeploymentUpdateStrategy] error unmarshaling updateStrategy: %v", err)
|
||||||
|
@ -95,12 +95,12 @@ const (
|
|||||||
var (
|
var (
|
||||||
DefaultDaemonSetMaxUnavailable = intstr.FromInt(1)
|
DefaultDaemonSetMaxUnavailable = intstr.FromInt(1)
|
||||||
DefaultDeploymentUpdateStrategyParams = intstr.FromString("25%")
|
DefaultDeploymentUpdateStrategyParams = intstr.FromString("25%")
|
||||||
DefaultDaemonSetUpdateStrategy = appsv1.DaemonSetUpdateStrategy{
|
DefaultDaemonSetUpdateStrategy = v3.DaemonSetUpdateStrategy{
|
||||||
Type: appsv1.RollingUpdateDaemonSetStrategyType,
|
Strategy: appsv1.RollingUpdateDaemonSetStrategyType,
|
||||||
RollingUpdate: &appsv1.RollingUpdateDaemonSet{MaxUnavailable: &DefaultDaemonSetMaxUnavailable},
|
RollingUpdate: &appsv1.RollingUpdateDaemonSet{MaxUnavailable: &DefaultDaemonSetMaxUnavailable},
|
||||||
}
|
}
|
||||||
DefaultDeploymentUpdateStrategy = appsv1.DeploymentStrategy{
|
DefaultDeploymentUpdateStrategy = v3.DeploymentStrategy{
|
||||||
Type: appsv1.RollingUpdateDeploymentStrategyType,
|
Strategy: appsv1.RollingUpdateDeploymentStrategyType,
|
||||||
RollingUpdate: &appsv1.RollingUpdateDeployment{
|
RollingUpdate: &appsv1.RollingUpdateDeployment{
|
||||||
MaxUnavailable: &DefaultDeploymentUpdateStrategyParams,
|
MaxUnavailable: &DefaultDeploymentUpdateStrategyParams,
|
||||||
MaxSurge: &DefaultDeploymentUpdateStrategyParams,
|
MaxSurge: &DefaultDeploymentUpdateStrategyParams,
|
||||||
@ -629,8 +629,8 @@ func (c *Cluster) setAddonsDefaults() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func setDaemonsetAddonDefaults(updateStrategy *appsv1.DaemonSetUpdateStrategy) *appsv1.DaemonSetUpdateStrategy {
|
func setDaemonsetAddonDefaults(updateStrategy *v3.DaemonSetUpdateStrategy) *v3.DaemonSetUpdateStrategy {
|
||||||
if updateStrategy != nil && updateStrategy.Type != appsv1.RollingUpdateDaemonSetStrategyType {
|
if updateStrategy != nil && updateStrategy.Strategy != appsv1.RollingUpdateDaemonSetStrategyType {
|
||||||
return updateStrategy
|
return updateStrategy
|
||||||
}
|
}
|
||||||
if updateStrategy == nil || updateStrategy.RollingUpdate == nil || updateStrategy.RollingUpdate.MaxUnavailable == nil {
|
if updateStrategy == nil || updateStrategy.RollingUpdate == nil || updateStrategy.RollingUpdate.MaxUnavailable == nil {
|
||||||
@ -639,8 +639,8 @@ func setDaemonsetAddonDefaults(updateStrategy *appsv1.DaemonSetUpdateStrategy) *
|
|||||||
return updateStrategy
|
return updateStrategy
|
||||||
}
|
}
|
||||||
|
|
||||||
func setDeploymentAddonDefaults(updateStrategy *appsv1.DeploymentStrategy) *appsv1.DeploymentStrategy {
|
func setDeploymentAddonDefaults(updateStrategy *v3.DeploymentStrategy) *v3.DeploymentStrategy {
|
||||||
if updateStrategy != nil && updateStrategy.Type != appsv1.RollingUpdateDeploymentStrategyType {
|
if updateStrategy != nil && updateStrategy.Strategy != appsv1.RollingUpdateDeploymentStrategyType {
|
||||||
return updateStrategy
|
return updateStrategy
|
||||||
}
|
}
|
||||||
if updateStrategy == nil || updateStrategy.RollingUpdate == nil {
|
if updateStrategy == nil || updateStrategy.RollingUpdate == nil {
|
||||||
@ -655,19 +655,19 @@ func setDeploymentAddonDefaults(updateStrategy *appsv1.DeploymentStrategy) *apps
|
|||||||
return updateStrategy
|
return updateStrategy
|
||||||
}
|
}
|
||||||
|
|
||||||
func setDNSDeploymentAddonDefaults(updateStrategy *appsv1.DeploymentStrategy, dnsProvider string) *appsv1.DeploymentStrategy {
|
func setDNSDeploymentAddonDefaults(updateStrategy *v3.DeploymentStrategy, dnsProvider string) *v3.DeploymentStrategy {
|
||||||
var (
|
var (
|
||||||
coreDNSMaxUnavailable, coreDNSMaxSurge = intstr.FromInt(1), intstr.FromInt(0)
|
coreDNSMaxUnavailable, coreDNSMaxSurge = intstr.FromInt(1), intstr.FromInt(0)
|
||||||
kubeDNSMaxSurge, kubeDNSMaxUnavailable = intstr.FromString("10%"), 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
|
return updateStrategy
|
||||||
}
|
}
|
||||||
switch dnsProvider {
|
switch dnsProvider {
|
||||||
case CoreDNSProvider:
|
case CoreDNSProvider:
|
||||||
if updateStrategy == nil || updateStrategy.RollingUpdate == nil {
|
if updateStrategy == nil || updateStrategy.RollingUpdate == nil {
|
||||||
return &appsv1.DeploymentStrategy{
|
return &v3.DeploymentStrategy{
|
||||||
Type: appsv1.RollingUpdateDeploymentStrategyType,
|
Strategy: appsv1.RollingUpdateDeploymentStrategyType,
|
||||||
RollingUpdate: &appsv1.RollingUpdateDeployment{
|
RollingUpdate: &appsv1.RollingUpdateDeployment{
|
||||||
MaxUnavailable: &coreDNSMaxUnavailable,
|
MaxUnavailable: &coreDNSMaxUnavailable,
|
||||||
MaxSurge: &coreDNSMaxSurge,
|
MaxSurge: &coreDNSMaxSurge,
|
||||||
@ -679,8 +679,8 @@ func setDNSDeploymentAddonDefaults(updateStrategy *appsv1.DeploymentStrategy, dn
|
|||||||
}
|
}
|
||||||
case KubeDNSProvider:
|
case KubeDNSProvider:
|
||||||
if updateStrategy == nil || updateStrategy.RollingUpdate == nil {
|
if updateStrategy == nil || updateStrategy.RollingUpdate == nil {
|
||||||
return &appsv1.DeploymentStrategy{
|
return &v3.DeploymentStrategy{
|
||||||
Type: appsv1.RollingUpdateDeploymentStrategyType,
|
Strategy: appsv1.RollingUpdateDeploymentStrategyType,
|
||||||
RollingUpdate: &appsv1.RollingUpdateDeployment{
|
RollingUpdate: &appsv1.RollingUpdateDeployment{
|
||||||
MaxUnavailable: &kubeDNSMaxUnavailable,
|
MaxUnavailable: &kubeDNSMaxUnavailable,
|
||||||
MaxSurge: &kubeDNSMaxSurge,
|
MaxSurge: &kubeDNSMaxSurge,
|
||||||
|
@ -18,6 +18,7 @@ import (
|
|||||||
"github.com/rancher/types/apis/management.cattle.io/v3"
|
"github.com/rancher/types/apis/management.cattle.io/v3"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
"golang.org/x/sync/errgroup"
|
"golang.org/x/sync/errgroup"
|
||||||
|
appsv1 "k8s.io/api/apps/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -177,7 +178,10 @@ func (c *Cluster) doFlannelDeploy(ctx context.Context, data map[string]interface
|
|||||||
RBACConfig: c.Authorization.Mode,
|
RBACConfig: c.Authorization.Mode,
|
||||||
ClusterVersion: util.GetTagMajorVersion(c.Version),
|
ClusterVersion: util.GetTagMajorVersion(c.Version),
|
||||||
NodeSelector: c.Network.NodeSelector,
|
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)
|
pluginYaml, err := c.getNetworkPluginManifest(flannelConfig, data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -201,7 +205,10 @@ func (c *Cluster) doCalicoDeploy(ctx context.Context, data map[string]interface{
|
|||||||
RBACConfig: c.Authorization.Mode,
|
RBACConfig: c.Authorization.Mode,
|
||||||
NodeSelector: c.Network.NodeSelector,
|
NodeSelector: c.Network.NodeSelector,
|
||||||
MTU: c.Network.MTU,
|
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],
|
FlexVolPluginDir: c.Network.Options[CalicoFlexVolPluginDirectory],
|
||||||
}
|
}
|
||||||
pluginYaml, err := c.getNetworkPluginManifest(calicoConfig, data)
|
pluginYaml, err := c.getNetworkPluginManifest(calicoConfig, data)
|
||||||
@ -242,7 +249,10 @@ func (c *Cluster) doCanalDeploy(ctx context.Context, data map[string]interface{}
|
|||||||
},
|
},
|
||||||
NodeSelector: c.Network.NodeSelector,
|
NodeSelector: c.Network.NodeSelector,
|
||||||
MTU: c.Network.MTU,
|
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[CanalFlexVolPluginDirectory],
|
FlexVolPluginDir: c.Network.Options[CanalFlexVolPluginDirectory],
|
||||||
}
|
}
|
||||||
pluginYaml, err := c.getNetworkPluginManifest(canalConfig, data)
|
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,
|
RBACConfig: c.Authorization.Mode,
|
||||||
NodeSelector: c.Network.NodeSelector,
|
NodeSelector: c.Network.NodeSelector,
|
||||||
MTU: c.Network.MTU,
|
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)
|
pluginYaml, err := c.getNetworkPluginManifest(weaveConfig, data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user