diff --git a/examples/aws-eks/README.md b/examples/aws-eks/README.md index ae70f397..dfc50a8b 100644 --- a/examples/aws-eks/README.md +++ b/examples/aws-eks/README.md @@ -1,9 +1,12 @@ # Kubernetes on AWS (EKS) +This example creates a new EKS cluster and outputs its corresponding kubeconfig + ## How to run ```sh dagger compute . \ --input-string awsConfig.accessKey="MY_AWS_ACCESS_KEY" \ - --input-string awsConfig.secretKey="MY_AWS_SECRET_KEY" + --input-string awsConfig.secretKey="MY_AWS_SECRET_KEY" \ + | jq -j '.kubeconfig.kubeconfig' > kubeconfig ``` diff --git a/examples/aws-eks/infrastructure.cue b/examples/aws-eks/infrastructure.cue index b2a4bf95..2e43c7d5 100644 --- a/examples/aws-eks/infrastructure.cue +++ b/examples/aws-eks/infrastructure.cue @@ -13,23 +13,23 @@ import ( workerNodeCapacity: *3 | >=1 workerNodeInstanceType: *"t3.medium" | string - let clusterName = "\(namePrefix)eks-cluster" + clusterName: "\(namePrefix)eks-cluster" eksControlPlane: cloudformation.#Stack & { - config: awsConfig - source: json.Marshal(#CFNTemplate.eksControlPlane) - stackName: "\(namePrefix)eks-controlplane" + config: awsConfig + source: json.Marshal(#CFNTemplate.eksControlPlane) + stackName: "\(namePrefix)eks-controlplane" neverUpdate: true - timeout: 30 + timeout: 30 parameters: ClusterName: clusterName } eksNodeGroup: cloudformation.#Stack & { - config: awsConfig - source: json.Marshal(#CFNTemplate.eksNodeGroup) - stackName: "\(namePrefix)eks-nodegroup" + config: awsConfig + source: json.Marshal(#CFNTemplate.eksNodeGroup) + stackName: "\(namePrefix)eks-nodegroup" neverUpdate: true - timeout: 30 + timeout: 30 parameters: { ClusterName: clusterName NodeAutoScalingGroupDesiredCapacity: 1 diff --git a/examples/aws-eks/main.cue b/examples/aws-eks/main.cue index 756018a9..e605701f 100644 --- a/examples/aws-eks/main.cue +++ b/examples/aws-eks/main.cue @@ -2,6 +2,7 @@ package main import ( "dagger.io/aws" + "dagger.io/aws/eks" ) // Fill using: @@ -23,3 +24,8 @@ infra: #Infrastructure & { workerNodeCapacity: 1 workerNodeInstanceType: "t3.small" } + +kubeconfig: eks.#KubeConfig & { + config: awsConfig + clusterName: infra.clusterName +}