mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-08 03:33:56 +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
|
return "--kubelet-flags=--kernel-memcg-notification=true " + args
|
||||||
}
|
}
|
||||||
|
|
||||||
// prependGCPCredentialProviderFlag prepends the flags for enabling
|
// prependCredentialProviderFlag prepends the flags for enabling
|
||||||
// a credential provider plugin.
|
// a credential provider plugin.
|
||||||
func prependGCPCredentialProviderFlag(args, workspace string) string {
|
func prependCredentialProviderFlag(args, workspace string) string {
|
||||||
credentialProviderConfig := filepath.Join(workspace, "credential-provider.yaml")
|
credentialProviderConfig := filepath.Join(workspace, "credential-provider.yaml")
|
||||||
featureGateFlag := "--kubelet-flags=--feature-gates=DisableKubeletCloudCredentialProviders=true"
|
featureGateFlag := "--kubelet-flags=--feature-gates=DisableKubeletCloudCredentialProviders=true"
|
||||||
configFlag := fmt.Sprintf("--kubelet-flags=--image-credential-provider-config=%s", credentialProviderConfig)
|
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)
|
return args, setKubeletSELinuxLabels(host, workspace)
|
||||||
case strings.Contains(output, "gci"), strings.Contains(output, "cos"):
|
case strings.Contains(output, "gci"), strings.Contains(output, "cos"):
|
||||||
args = prependMemcgNotificationFlag(args)
|
args = prependMemcgNotificationFlag(args)
|
||||||
return prependGCPCredentialProviderFlag(args, workspace), nil
|
return prependCredentialProviderFlag(args, workspace), nil
|
||||||
case strings.Contains(output, "ubuntu"):
|
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 prependMemcgNotificationFlag(args), nil
|
||||||
}
|
}
|
||||||
return 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
|
apiVersion: kubelet.config.k8s.io/v1
|
||||||
providers:
|
providers:
|
||||||
- name: gcp-credential-provider
|
- name: gcp-credential-provider
|
||||||
@ -60,6 +60,19 @@ providers:
|
|||||||
- "*.pkg.dev"
|
- "*.pkg.dev"
|
||||||
defaultCacheDuration: 1m`
|
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 {
|
func getCNIURL() string {
|
||||||
cniArch := "amd64"
|
cniArch := "amd64"
|
||||||
if builder.IsTargetArchArm64() {
|
if builder.IsTargetArchArm64() {
|
||||||
@ -102,6 +115,11 @@ func setupCNI(host, workspace string) error {
|
|||||||
func configureCredentialProvider(host, workspace string) error {
|
func configureCredentialProvider(host, workspace string) error {
|
||||||
klog.V(2).Infof("Configuring kubelet credential provider on %q", host)
|
klog.V(2).Infof("Configuring kubelet credential provider on %q", host)
|
||||||
|
|
||||||
|
credentialProviderConfig := credentialGCPProviderConfig
|
||||||
|
if GetSSHUser() == "ec2-user" {
|
||||||
|
credentialProviderConfig = credentialAWSProviderConfig
|
||||||
|
}
|
||||||
|
|
||||||
cmd := getSSHCommand(" ; ",
|
cmd := getSSHCommand(" ; ",
|
||||||
fmt.Sprintf("echo %s > %s", quote(credentialProviderConfig), filepath.Join(workspace, "credential-provider.yaml")),
|
fmt.Sprintf("echo %s > %s", quote(credentialProviderConfig), filepath.Join(workspace, "credential-provider.yaml")),
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user