-
Notifications
You must be signed in to change notification settings - Fork 211
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add eksctl #374
base: main
Are you sure you want to change the base?
Add eksctl #374
Changes from all commits
e5e6bd6
4fe0d7b
861133e
90827ce
0bd26af
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
--- | ||
title: eksctl | ||
homepage: https://github.com/weaveworks/eksctl | ||
tagline: | | ||
The official CLI for Amazon EKS | ||
--- | ||
|
||
To update or switch versions, run `webi example@stable` (or `@v2`, `@beta`, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please update |
||
etc). | ||
|
||
### Files | ||
|
||
These are the files / directories that are created and/or modified with this | ||
install: | ||
|
||
```txt | ||
~/.config/envman/PATH.env | ||
~/.local/bin/eksctl | ||
~/.local/opt/eksctl | ||
``` | ||
|
||
## Cheat Sheet | ||
|
||
> From the `eksctl` ReadMe: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ReadMe should be stylized README. |
||
> You can create a cluster in minutes with just one command – eksctl create cluster! | ||
> AWS Account | ||
> You will need to have AWS API credentials configured. What works for AWS CLI or any other tools (kops, Terraform etc), should be sufficient. You can use ~/.aws/credentials file or environment variables. For more information read AWS documentation. | ||
|
||
|
||
You will also need AWS IAM Authenticator for Kubernetes command (either aws-iam-authenticator or aws eks get-token (available in version 1.16.156 or greater of AWS CLI) in your PATH. | ||
|
||
|
||
The IAM account used for EKS cluster creation should have these minimal access levels. | ||
|
||
|
||
To create a basic cluster: | ||
|
||
```bash | ||
eksctl create cluster | ||
``` | ||
|
||
### Add Baz Highlighting | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Replace examples sections with real examples for eksctl. |
||
To run eksctl with both bar and baz highlighting turned on: | ||
|
||
```bash | ||
eksctl --bar=baz | ||
``` | ||
|
||
### Further Reading and Direct Link to Original ReadMe: | ||
https://github.com/weaveworks/eksctl |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
#!/usr/bin/env pwsh | ||
|
||
################## | ||
# Install eksctl # | ||
################## | ||
|
||
# Every package should define these variables | ||
$pkg_cmd_name = "eksctl" | ||
|
||
$pkg_dst_cmd = "$Env:USERPROFILE\.local\bin\eksctl.exe" | ||
$pkg_dst = "$pkg_dst_cmd" | ||
|
||
$pkg_src_cmd = "$Env:USERPROFILE\.local\opt\eksctl-v$Env:WEBI_VERSION\bin\eksctl.exe" | ||
$pkg_src_bin = "$Env:USERPROFILE\.local\opt\eksctl-v$Env:WEBI_VERSION\bin" | ||
$pkg_src_dir = "$Env:USERPROFILE\.local\opt\eksctl-v$Env:WEBI_VERSION" | ||
$pkg_src = "$pkg_src_cmd" | ||
|
||
New-Item "$Env:USERPROFILE\Downloads\webi" -ItemType Directory -Force | out-null | ||
$pkg_download = "$Env:USERPROFILE\Downloads\webi\$Env:WEBI_PKG_FILE" | ||
|
||
# Fetch archive | ||
IF (!(Test-Path -Path "$Env:USERPROFILE\Downloads\webi\$Env:WEBI_PKG_FILE")) | ||
{ | ||
echo "Downloading eksctl from $Env:WEBI_PKG_URL to $pkg_download" | ||
& curl.exe -A "$Env:WEBI_UA" -fsSL "$Env:WEBI_PKG_URL" -o "$pkg_download.part" | ||
& move "$pkg_download.part" "$pkg_download" | ||
} | ||
|
||
IF (!(Test-Path -Path "$pkg_src_cmd")) | ||
{ | ||
echo "Installing eksctl" | ||
|
||
# TODO: create package-specific temp directory | ||
# Enter tmp | ||
pushd .local\tmp | ||
|
||
# Remove any leftover tmp cruft | ||
Remove-Item -Path ".\eksctl-v*" -Recurse -ErrorAction Ignore | ||
Remove-Item -Path ".\eksctl.exe" -Recurse -ErrorAction Ignore | ||
|
||
# NOTE: DELETE THIS COMMENT IF NOT USED | ||
# Move single binary into root of temporary folder | ||
& move "$pkg_download" "eksctl.exe" | ||
|
||
# Unpack archive file into this temporary directory | ||
# Windows BSD-tar handles zip. Imagine that. | ||
# echo "Unpacking $pkg_download" | ||
# & tar xf "$pkg_download" | ||
|
||
# Settle unpacked archive into place | ||
echo "Install Location: $pkg_src_cmd" | ||
New-Item "$pkg_src_bin" -ItemType Directory -Force | out-null | ||
Move-Item -Path ".\eksctl.exe" -Destination "$pkg_src_bin" | ||
|
||
# Exit tmp | ||
popd | ||
} | ||
|
||
echo "Copying into '$pkg_dst_cmd' from '$pkg_src_cmd'" | ||
Remove-Item -Path "$pkg_dst_cmd" -Recurse -ErrorAction Ignore | out-null | ||
Copy-Item -Path "$pkg_src" -Destination "$pkg_dst" -Recurse |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
#!/bin/bash | ||
|
||
# shellcheck disable=SC2034 | ||
# "'pkg_cmd_name' appears unused. Verify it or export it." | ||
|
||
function __init_eksctl() { | ||
set -e | ||
set -u | ||
|
||
################## | ||
# Install eksctl # | ||
################## | ||
|
||
# Every package should define these 6 variables | ||
pkg_cmd_name="eksctl" | ||
|
||
pkg_dst_cmd="$HOME/.local/bin/eksctl" | ||
pkg_dst="$pkg_dst_cmd" | ||
|
||
pkg_src_cmd="$HOME/.local/opt/eksctl-v$WEBI_VERSION/bin/eksctl" | ||
pkg_src_dir="$HOME/.local/opt/eksctl-v$WEBI_VERSION" | ||
pkg_src="$pkg_src_cmd" | ||
|
||
# pkg_install must be defined by every package | ||
pkg_install() { | ||
# ~/.local/opt/eksctl-v0.99.9/bin | ||
mkdir -p "$(dirname "${pkg_src_cmd}")" | ||
|
||
# mv ./eksctl-*/eksctl ~/.local/opt/eksctl-v0.99.9/bin/eksctl | ||
mv ./eksctl "${pkg_src_cmd}" | ||
} | ||
|
||
# pkg_get_current_version is recommended, but not required | ||
pkg_get_current_version() { | ||
# 'eksctl --version' has output in this format: | ||
# eksctl 0.99.9 (rev abcdef0123) | ||
# This trims it down to just the version number: | ||
# 0.99.9 | ||
eksctl --version 2> /dev/null | | ||
head -n 1 | | ||
cut -d ' ' -f 2 | ||
} | ||
|
||
} | ||
|
||
__init_eksctl |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
'use strict'; | ||
|
||
var github = require('../_common/github.js'); | ||
var owner = 'weaveworks'; | ||
var repo = 'eksctl'; | ||
|
||
module.exports = function (request) { | ||
return github(request, owner, repo).then(function (all) { | ||
return all; | ||
}); | ||
}; | ||
|
||
if (module === require.main) { | ||
module.exports(require('@root/request')).then(function (all) { | ||
all = require('../_webi/normalize.js')(all); | ||
// just select the first 5 for demonstration | ||
all.releases = all.releases.slice(0, 5); | ||
console.info(JSON.stringify(all, null, 2)); | ||
}); | ||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this actually endorsed by Amazon? I think you may mean "original" or "best", but I'm pretty sure this isn't the "official" CLI. That's written in Python and described here: https://docs.aws.amazon.com/cli/latest/reference/eks/index.html
Or am I missing something?