Skip to content

Commit

Permalink
Merge pull request #1001 from aws-quickstart/feature/devContainer
Browse files Browse the repository at this point in the history
Feature to introduce Dev Containers
  • Loading branch information
shapirov103 authored Jun 19, 2024
2 parents 28de1cc + f79deb4 commit faadf1e
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 0 deletions.
21 changes: 21 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"image": "mcr.microsoft.com/vscode/devcontainers/base:ubuntu",
"features": {
"ghcr.io/devcontainers/features/node:1": {
"version": "20.0.0"
},
"ghcr.io/devcontainers/features/aws-cli:1": {},
"ghcr.io/devcontainers-contrib/features/aws-cdk:2": {
"version": "2.133.0"
}
},
"postCreateCommand": ".devcontainer/postCreateCommand.sh",
"workspaceFolder": "/home/vscode/cdk-eks-blueprints",
"workspaceMount": "source=${localWorkspaceFolder},target=/home/vscode/cdk-eks-blueprints,type=bind",
"hostRequirements": {
"cpus": 2
},
"remoteEnv": {
"PATH": "${containerEnv:PATH}:/home/vscode/cdk-eks-blueprints"
}
}
30 changes: 30 additions & 0 deletions .devcontainer/postCreateCommand.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/usr/bin/env bash

# For Kubectl AMD64 / x86_64
[ $(uname -m) = x86_64 ] && curl -sLO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
# For Kubectl ARM64
[ $(uname -m) = aarch64 ] && curl -sLO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl"
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl

# For Helm
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
echo "Installing 'helm' utility ..."
./get_helm.sh
rm -rf get_helm.sh

# setup autocomplete for kubectl and alias k
mkdir $HOME/.kube
chsh -s $(which zsh)
echo "source <(kubectl completion bash)" >> $HOME/.zshrc
echo "alias k=kubectl" >> $HOME/.zshrc
echo "alias cdk='npx cdk'" >> $HOME/.zshrc
echo "complete -F __start_kubectl k" >> $HOME/.zshrc

# Add Tools for Syntax Highlighting, Auto Suggestions, command shortcurts with oh-my-zsh for AWS, Kubectl, Node, Git.
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
sed -i "/plugins=(git)/c 'plugins=(git docker kubectl zsh-syntax-highlighting zsh-autosuggestions zsh-interactive-cd node aws)'" ~/.zshrc
source ~/.zshrc
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ Welcome to `Amazon EKS Blueprints for CDK`.

This repository contains the source code for the [`eks-blueprints`](https://www.npmjs.com/package/@aws-quickstart/eks-blueprints) NPM module. It can be used by AWS customers, partners, and internal AWS teams to configure and manage complete EKS clusters that are fully bootstrapped with the operational software that is needed to deploy and operate workloads.

## DevContainer Setup

Users can choose this option, if you dont want to run this solution on a mac or ubuntu machine. Please use the dev container configuration in the `.devcontainer` folder with [devpod](devpod.sh) or any other dev container environment to create a development environment with dependencies such as Node, NPM, aws-cli, aws-cdk, kubectl, helm dependencies for your local development with `cdk-eks-blueprints` solution.

## Getting Started

The easiest way to get started with EKS Blueprints is to follow our [Getting Started guide](https://aws-quickstart.github.io/cdk-eks-blueprints/getting-started/).
Expand Down

0 comments on commit faadf1e

Please sign in to comment.