Docs: update and polish "Kubernetes on AWS" example

Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
This commit is contained in:
Solomon Hykes 2021-04-01 22:37:14 +00:00
parent e701de01c1
commit 48e8b200ae
5 changed files with 48 additions and 15 deletions

View File

@ -3,9 +3,11 @@
All example commands should be executed in the `examples/` directory All example commands should be executed in the `examples/` directory
in an up-to-date checkout of the [dagger repository](https://github.com/dagger/dagger). in an up-to-date checkout of the [dagger repository](https://github.com/dagger/dagger).
## react: Deploy a simple React application ## Deploy a simple React application
This example shows how to deploy an example React Application. This example shows how to deploy an example React Application. [Read the deployment plan](https://github.com/dagger/dagger/tree/main/examples/react)
Audience: Javascript developers looking to deploy their application.
Components: Components:
@ -43,18 +45,51 @@ dagger up
``` ```
## aws-eks: Kubernetes on AWS (EKS) ## Provision a Kubernetes cluster on AWS
This example provisions a Kubernetes (EKS) cluster on AWS using Cloudformation, This example shows how to provision a new Kubernetes cluster on AWS, and configure your `kubectl` client to use it. [Read the deployment plan](https://github.com/dagger/dagger/tree/main/examples/kubernetes-aws)
it also outputs the new generated kubeconfig for the `kubectl` client.
How to run: Audience: infrastructure teams looking to provisioning kubernetes clusters as part of automated CICD pipelines.
Components:
- [Amazon EKS](https://aws.amazon.com/eks) for Kubernetes hosting
- [Amazon CloudFormation](https://aws.amazon.com/cloudformation) for infrastructure provisioning
- [Kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl) as kubernetes client
1. Change the current directory to the example deployment plan
```sh ```sh
dagger compute ./aws-eks \ cd ./kubernetes-aws
--input-string awsConfig.accessKey="MY_AWS_ACCESS_KEY" \ ```
--input-string awsConfig.secretKey="MY_AWS_SECRET_KEY" \
| jq -j '.kubeconfig.kubeconfig' > kubeconfig 2. Create a new deployment from the plan
```sh
dagger new
```
3. Configure the deployment with your AWS credentials
```sh
dagger input text awsConfig.accessKey MY_AWS_ACCESS_KEY
```
```sh
dagger input text awsConfig.secretKey MY_AWS_SECRET_KEY
```
4. Deploy!
```sh
dagger up
```
5. Export the generated kubectl config
```sh
dagger query kubeconfig.kubeconfig | jq . > kubeconfig
``` ```
## aws-monitoring: HTTP Monitoring on AWS ## aws-monitoring: HTTP Monitoring on AWS

View File

@ -5,9 +5,7 @@ import (
"dagger.io/aws/eks" "dagger.io/aws/eks"
) )
// Fill using: // AWS account: credentials and region
// --input-string awsConfig.accessKey=XXX
// --input-string awsConfig.secretKey=XXX
awsConfig: aws.#Config & { awsConfig: aws.#Config & {
region: *"us-east-2" | string region: *"us-east-2" | string
} }
@ -20,11 +18,11 @@ awsConfig: aws.#Config & {
infra: #Infrastructure & { infra: #Infrastructure & {
"awsConfig": awsConfig "awsConfig": awsConfig
namePrefix: "dagger-example-" namePrefix: "dagger-example-"
// Cluster size is 1 for the example purpose workerNodeCapacity: int | *1
workerNodeCapacity: 1
workerNodeInstanceType: "t3.small" workerNodeInstanceType: "t3.small"
} }
// Client configuration for kubectl
kubeconfig: eks.#KubeConfig & { kubeconfig: eks.#KubeConfig & {
config: awsConfig config: awsConfig
clusterName: infra.clusterName clusterName: infra.clusterName