Skip to content

Commit

Permalink
fix(aws): support v1.27 and newer cloud controller manager for aws pr…
Browse files Browse the repository at this point in the history
…ovider
  • Loading branch information
JacieChao committed Jul 5, 2024
1 parent 9ca6fb0 commit 4b45fcc
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 12 deletions.
14 changes: 7 additions & 7 deletions pkg/cluster/base.go
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ func (p *ProviderBase) GetCommonConfig(sshFunc func() *types.SSH) (map[string]sc
}

// InitCluster init K3S cluster.
func (p *ProviderBase) InitCluster(options interface{}, deployPlugins func() []string,
func (p *ProviderBase) InitCluster(options interface{}, deployCCM func() []string,
cloudInstanceFunc func(ssh *types.SSH) (*types.Cluster, error), customInstallK3s func() (string, string, error), rollbackInstance func(ids []string) error) (er error) {
logFile, err := common.GetLogFile(p.ContextName)
if err != nil {
Expand Down Expand Up @@ -427,7 +427,7 @@ func (p *ProviderBase) InitCluster(options interface{}, deployPlugins func() []s

if customInstallK3s == nil {
// use install scripts to initialize K3s cluster.
if err = p.InitK3sCluster(c); err != nil {
if err = p.InitK3sCluster(c, deployCCM); err != nil {
return err
}
} else {
Expand All @@ -450,11 +450,11 @@ func (p *ProviderBase) InitCluster(options interface{}, deployPlugins func() []s
}

cmds := []string{}
if deployPlugins != nil {
// install additional manifests to the current cluster.
extraManifests := deployPlugins()
cmds = append(cmds, extraManifests...)
}
//if deployCCM != nil {
// // install additional manifests to the current cluster.
// extraManifests := deployCCM()
// cmds = append(cmds, extraManifests...)
//}

if p.Manifests != "" {
deployCmd, err := p.GetCustomManifests()
Expand Down
13 changes: 10 additions & 3 deletions pkg/cluster/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ var (
)

// InitK3sCluster initial K3S cluster.
func (p *ProviderBase) InitK3sCluster(cluster *types.Cluster) error {
func (p *ProviderBase) InitK3sCluster(cluster *types.Cluster, deployCCM func() []string) error {
p.Logger.Infof("[%s] executing init k3s cluster logic...", p.Provider)

provider, err := providers.GetProvider(p.Provider)
Expand Down Expand Up @@ -93,7 +93,7 @@ func (p *ProviderBase) InitK3sCluster(cluster *types.Cluster) error {
}
}

err = p.validateClusterConfig(cluster, provider, publicIP, pkg, firstControl, firstWorker)
err = p.validateClusterConfig(cluster, provider, publicIP, pkg, firstControl, firstWorker, deployCCM)
if err != nil {
return err
}
Expand Down Expand Up @@ -909,11 +909,18 @@ func (p *ProviderBase) handleDataStoreCertificate(n *types.Node, c *types.Cluste
return err
}

func (p *ProviderBase) validateClusterConfig(cluster *types.Cluster, provider providers.Provider, publicIP string, pkg *common.Package, firstControl, firstWorker types.Node) error {
func (p *ProviderBase) validateClusterConfig(cluster *types.Cluster, provider providers.Provider, publicIP string, pkg *common.Package, firstControl, firstWorker types.Node, deployCCM func() []string) error {
p.Logger.Infof("[%s] initialize control node...", p.Provider)
if err := p.initControlNode(cluster, provider, publicIP, pkg, firstControl, true); err != nil {
return err
}
if deployCCM != nil {
extraManifests := deployCCM()
err := p.DeployExtraManifest(cluster, extraManifests)
if err != nil {
return err
}
}
p.Logger.Infof("[%s] successfully initialize the first control node", p.Provider)

if len(firstWorker.PublicIPAddress) <= 0 && firstWorker.InstanceID == "" {
Expand Down
10 changes: 8 additions & 2 deletions pkg/providers/aws/aws.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,10 @@ var (
// the version according to this docs.
// The map key should be semver constraint and the value is the aws ccm version
ccmVersionMap = map[string]string{
">= 1.27": "v1.27.1",
">= 1.30": "v1.30.1",
"~1.29": "v1.29.3",
"~1.28": "v1.28.1",
"~1.27": "v1.27.1",
"~1.26": "v1.26.1",
"~1.25": "v1.25.3",
"~1.24": "v1.24.4",
Expand All @@ -63,7 +66,10 @@ var (
}
// extra args for ccm with the k8s version
ccmExtraArgs = map[string][]string{
">= 1.21": {"--use-service-account-credentials=true"},
">= 1.21": {
"--use-service-account-credentials=true",
"--configure-cloud-routes=false",
},
}
ccmTemplate = template.Must(template.New("aws-ccm").Parse(amazonCCMTmpl))
)
Expand Down

0 comments on commit 4b45fcc

Please sign in to comment.