ea02b579d6
Signed-off-by: Sam Alba <sam.alba@gmail.com>
60 lines
1.1 KiB
CUE
60 lines
1.1 KiB
CUE
package eks
|
|
|
|
import (
|
|
"dagger.io/llb"
|
|
"dagger.io/aws"
|
|
)
|
|
|
|
// KubeConfig config outputs a valid kube-auth-config for kubectl client
|
|
#KubeConfig: {
|
|
// AWS Config
|
|
config: aws.#Config
|
|
|
|
// EKS cluster name
|
|
clusterName: string
|
|
|
|
// kubeconfig is the generated kube configuration file
|
|
kubeconfig: {
|
|
string
|
|
|
|
#compute: [
|
|
llb.#Load & {
|
|
from: aws.#CLI
|
|
},
|
|
llb.#WriteFile & {
|
|
dest: "/entrypoint.sh"
|
|
content: #Code
|
|
},
|
|
llb.#Exec & {
|
|
always: true
|
|
args: [
|
|
"/bin/bash",
|
|
"--noprofile",
|
|
"--norc",
|
|
"-eo",
|
|
"pipefail",
|
|
"/entrypoint.sh",
|
|
]
|
|
env: {
|
|
AWS_CONFIG_FILE: "/cache/aws/config"
|
|
AWS_ACCESS_KEY_ID: config.accessKey
|
|
AWS_SECRET_ACCESS_KEY: config.secretKey
|
|
AWS_DEFAULT_REGION: config.region
|
|
AWS_REGION: config.region
|
|
AWS_DEFAULT_OUTPUT: "json"
|
|
AWS_PAGER: ""
|
|
EKS_CLUSTER: clusterName
|
|
}
|
|
mount: {
|
|
"/cache/aws": "cache"
|
|
"/cache/bin": "cache"
|
|
}
|
|
},
|
|
llb.#Export & {
|
|
source: "/kubeconfig"
|
|
format: "string"
|
|
},
|
|
]
|
|
}
|
|
}
|