H Y P E R K U B E - A secure Serverless API and kubectl plugin that stores and retrieve Kubernetes cluster credentials. Hyperkube leverages AWS Secrets Manager for storing credential information.
Project description
hyper-kube-config
hyper-kube-config - Provides a secure Serverless API to store and retrieve Kubernetes cluster config credentials. hyper-kube-config leverages AWS Secrets Manager for storing credential information. Included is a kubectl plugin to interface with hyperkube API. It just requires a configuration file. See hyperkube.yaml.example for layout.
Install hyperkube kubectl plugin
pip3 install hyper-kube-config
Post cluster and creds to hyperkube store
kubectl hyperkube -c ~/hyperkube.yaml add --k8s-config ~/.kube/config
Remove cluster and creds
kubectl hyperkube -c ~/hyperkube.yaml remove --cluster-to-remove 'k8s-cluster-example.cloud'
Get user creds
# for single cluster
kubectl hyperkube -c ~/hyperkube.yaml get --cluster cloud-infra.cloud > ~/.kube/config
Get user creds multiple clusters into one Kube config
kubectl hyperkube -c ~/hyperkube.yaml get \
--cluster cloud-infra.cloud \
--cluster bar-cluster.cloud \
--cluster baz-cluster.com > ~/.kube/config
Get creds for all clusters into one Kube config
kubectl hyperkube -c ~/hyperkube.yaml get-all > ~/.kube/config
List clusters
kubectl hyperkube -c ~/hyperkube-config.yaml list
Store and Associate SSH PEM and CA private key with Cluster
Store SSH Pem
kubectl hyperkube -c ~/hyperkube-config.yaml add-pem --pem ~/.ssh/my-cluster.pem
Get Stored SSH Pem
kubectl hyperkube -c ~/hyperkube-config.yaml get-pem --cluster my-cluster.net
Store Add CA Private Key
kubectl hyperkube -c ~/hyperkube-config.yaml add-ca-key --ca-key ca-key-file.key --cluser my-cluster.net
Set Cluster Status and/or Environment References
# Set arbitrary status string and environment reference for given cluster
kubectl hyperkube -c ~/hyperkube-config.yaml set-cluster-status --cluster my-cluster.net --status active --environment stage
Get Cluster Status for Environment
# Returns list of clusters that are active for prod environment
kubectl hyperkube -c ~/hyperkube-config.yaml get-cluster-status --status active --environment prod
Requirements
- Serverless - Serverless Framework
- Docker - For serverless deploy
- HTTPie - recommended for API client
- serverless-python-requirements plugin. Uses Docker and Pip to package a newer vesion of Boto3 for AWS Lambda function use. AWS Lambda boto3 version by default doesn't have AWS Secrets Manager support for tags.
- click - for hyperkube kubectl plugin
- kubectl - version 1.12 or higher recommended for stable plugin support.
Deploying Serverless API
sls deploy \
--stage dev \
--product k8s \
--owner myteam@foo.cloud \
--team myteam \
--environment dev
This will launch your hyperkube API. Capture the API URL, api key and stage for your hyperkube.yaml configuration. The kubectl hyperkube
commands will leverage the config to interact with your stored k8s configs.
Serverless will launch an AWS API Gateway to handle API requests forwardered to AWS Lambda functions. A Dynamodb table is configured to store non-senstative cluster config details, while sensative information in uploaded configs (passwords and certs) is stored in AWS Secrets Manager.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file hyper-kube-config-0.1.3.tar.gz
.
File metadata
- Download URL: hyper-kube-config-0.1.3.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31e5e2dee7171b3fc331bbbb70028ed7929584e23d7bb904a2da569ed47e999a |
|
MD5 | 7676b04bd700f52ed53ad681000afefc |
|
BLAKE2b-256 | 1508bfa88c2f59723877ba2d1106bce697fb9ca6e9dab4952581bdc5a60d68d9 |