mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-07 19:23:40 +00:00
Merge pull request #118901 from dims/set-aws-specific-credential-provider-when-running-there
Set AWS specific credential provider when running there
This commit is contained in:
commit
76b2198da1
@ -93,9 +93,9 @@ func prependMemcgNotificationFlag(args string) string {
|
||||
return "--kubelet-flags=--kernel-memcg-notification=true " + args
|
||||
}
|
||||
|
||||
// prependGCPCredentialProviderFlag prepends the flags for enabling
|
||||
// prependCredentialProviderFlag prepends the flags for enabling
|
||||
// a credential provider plugin.
|
||||
func prependGCPCredentialProviderFlag(args, workspace string) string {
|
||||
func prependCredentialProviderFlag(args, workspace string) string {
|
||||
credentialProviderConfig := filepath.Join(workspace, "credential-provider.yaml")
|
||||
featureGateFlag := "--kubelet-flags=--feature-gates=DisableKubeletCloudCredentialProviders=true"
|
||||
configFlag := fmt.Sprintf("--kubelet-flags=--image-credential-provider-config=%s", credentialProviderConfig)
|
||||
@ -115,9 +115,12 @@ func osSpecificActions(args, host, workspace string) (string, error) {
|
||||
return args, setKubeletSELinuxLabels(host, workspace)
|
||||
case strings.Contains(output, "gci"), strings.Contains(output, "cos"):
|
||||
args = prependMemcgNotificationFlag(args)
|
||||
return prependGCPCredentialProviderFlag(args, workspace), nil
|
||||
return prependCredentialProviderFlag(args, workspace), nil
|
||||
case strings.Contains(output, "ubuntu"):
|
||||
args = prependGCPCredentialProviderFlag(args, workspace)
|
||||
args = prependCredentialProviderFlag(args, workspace)
|
||||
return prependMemcgNotificationFlag(args), nil
|
||||
case strings.Contains(output, "amzn"):
|
||||
args = prependCredentialProviderFlag(args, workspace)
|
||||
return prependMemcgNotificationFlag(args), nil
|
||||
}
|
||||
return args, nil
|
||||
|
@ -48,7 +48,7 @@ const cniConfig = `{
|
||||
}
|
||||
`
|
||||
|
||||
const credentialProviderConfig = `kind: CredentialProviderConfig
|
||||
const credentialGCPProviderConfig = `kind: CredentialProviderConfig
|
||||
apiVersion: kubelet.config.k8s.io/v1
|
||||
providers:
|
||||
- name: gcp-credential-provider
|
||||
@ -60,6 +60,19 @@ providers:
|
||||
- "*.pkg.dev"
|
||||
defaultCacheDuration: 1m`
|
||||
|
||||
const credentialAWSProviderConfig = `kind: CredentialProviderConfig
|
||||
apiVersion: kubelet.config.k8s.io/v1
|
||||
providers:
|
||||
- name: ecr-credential-provider
|
||||
apiVersion: credentialprovider.kubelet.k8s.io/v1
|
||||
matchImages:
|
||||
- "*.dkr.ecr.*.amazonaws.com"
|
||||
- "*.dkr.ecr.*.amazonaws.com.cn"
|
||||
- "*.dkr.ecr-fips.*.amazonaws.com"
|
||||
- "*.dkr.ecr.us-iso-east-1.c2s.ic.gov"
|
||||
- "*.dkr.ecr.us-isob-east-1.sc2s.sgov.gov"
|
||||
defaultCacheDuration: 12h`
|
||||
|
||||
func getCNIURL() string {
|
||||
cniArch := "amd64"
|
||||
if builder.IsTargetArchArm64() {
|
||||
@ -102,6 +115,11 @@ func setupCNI(host, workspace string) error {
|
||||
func configureCredentialProvider(host, workspace string) error {
|
||||
klog.V(2).Infof("Configuring kubelet credential provider on %q", host)
|
||||
|
||||
credentialProviderConfig := credentialGCPProviderConfig
|
||||
if GetSSHUser() == "ec2-user" {
|
||||
credentialProviderConfig = credentialAWSProviderConfig
|
||||
}
|
||||
|
||||
cmd := getSSHCommand(" ; ",
|
||||
fmt.Sprintf("echo %s > %s", quote(credentialProviderConfig), filepath.Join(workspace, "credential-provider.yaml")),
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user