Skip to content

Commit

Permalink
Update Documentation on master branch (#72)
Browse files Browse the repository at this point in the history
* Modified docs

Signed-off-by: niki-1905 <[email protected]>

* Remove jmeter submodule, literatebee key, and empty vendor folder.

Signed-off-by: Arush Salil <[email protected]>

* Update Dockerfile

Signed-off-by: Arush Salil <[email protected]>

* Update Readme

Signed-off-by: Arush Salil <[email protected]>

* Update AWS documentation

Signed-off-by: Arush Salil <[email protected]>

* Add lifecycle documentation.

Signed-off-by: Arush Salil <[email protected]>

* Fix typo

Signed-off-by: Arush Salil <[email protected]>
  • Loading branch information
MuellerMH authored Oct 11, 2018
1 parent d7a0cc4 commit b67a266
Show file tree
Hide file tree
Showing 718 changed files with 145 additions and 359,741 deletions.
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ FROM golang:alpine as builder
RUN apk --update add make git
COPY ./ /go/src/github.com/kubernauts/tk8
WORKDIR /go/src/github.com/kubernauts/tk8
RUN go get -u ... && make bin
RUN go get -u . && make bin

## os stage
FROM alpine
Expand Down
49 changes: 25 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

# TK8: A multi-cloud, multi-cluster Kubernetes platform installation and integration tool

TK8 is a command line tool written in Go and fully automatically installs Kubernet on any environment. With TK8 you are able to centrally manage different Kubernet clusters with different configurations. In addition, TK8 with its simple add-on integration offers the possibility to quickly, cleanly and easily distribute extensions to the different Kubernetes clusters.
TK8 is a command line tool written in Go. It fully automatates the installation of Kubernetes on any environment. With TK8, you are able to centrally manage different Kubernetes clusters with different configurations. In addition, TK8 with its simple add-on integration offers the possibility to quickly, cleanly and easily distribute extensions to the different Kubernetes clusters.

These include a Jmeter cluster for load testing, Prometheus for monitoring, Jaeger, Linkerd or Zippkin for tracing, Ambassador API Gateway with Envoy for Ingress and Load Balancing, Istio as mesh support solution, Jenkins-X for CI/CD integration. In addition, the add-on system also supports the management of helm packages.
These include a Jmeter cluster for load testing, Prometheus for monitoring, Jaeger, Linkerd or Zippkin for tracing, Ambassador API Gateway with Envoy for Ingress and Load Balancing, Istio as mesh support solution, Jenkins-X for CI/CD integration. In addition, the add-on system also supports the management of Helm packages.

## Table of content
## Table of contents

The documentation as well as a detailed table of contents can be found here.

Expand All @@ -15,7 +15,7 @@ The documentation as well as a detailed table of contents can be found here.
## Installation

The TK8 CLI requires some dependencies to perform its tasks.
At the moment we still need your help here, but we are already working on a setup script that will do these tasks for you.
At the moment we still need your help here, but we are working on a setup script that will do these tasks for you.

### Terraform

Expand All @@ -24,64 +24,66 @@ Terraform is required to automatically set up the infrastructure in the desired

### Ansible

Ansible is required to run the automated installation routines in the desired and automatically created environment.
Ansible is required to run the automated installation routines in the desired and created environment.
[Ansible Installation](https://docs.ansible.com/ansible/2.5/installation_guide/intro_installation.html#installing-the-control-machine)

### Kubectl

Kubectl is needed by the CLI to roll out the add-ons and by you to access your clusters.
[kubectl Installation](https://kubernetes.io/docs/tasks/tools/install-kubectl/)
[Kubectl Installation](https://kubernetes.io/docs/tasks/tools/install-kubectl/)

### Python and pip

In the automated routines Python scripts are used, in addition with Pip dependencies are loaded for this.
In the automated routines Python scripts are used which uses Pip to load its dependencies.
[Python Installation](https://www.python.org/downloads/)
[pip Installation](https://pip.pypa.io/en/stable/installing/)

### AWS IAM Authenticator

If you want to install an EKS cluster with TK8, the [AWS IAM Authenticator](https://github.com/kubernetes-sigs/aws-iam-authenticator) must be executable _(/usr/local/bin)_. This is included in the provisioner package EKS of the TK8 CLI or can be found in the given link.
If you want to install an EKS cluster with TK8, the [AWS IAM Authenticator](https://github.com/kubernetes-sigs/aws-iam-authenticator) needs to be available on your system and must be executable `(chmod +x <path-to-binary>)`. It is preffered to have the binary in your `$PATH` location e.g: `(/usr/local/bin)`. This is included in the provisioner package EKS of the TK8 CLI or can be found in the given link.

## Usage

Since there are different target platforms with the TK8 CLI and we have described these separately in detail in the documentation, we would like to give you just one example using AWS.
We have described the different target platforms separately in detail in the documentation. But we would like to give you just one example using AWS.

Download the executable file for your operating system from the Release section or build your own version with the `go build` command.
You can get the binary in following ways:
* Download the executable file for your operating system from the [release section](https://github.com/kubernauts/tk8/releases).
* Use `go get -u github.com/kubernauts/tk8` to let `go` fetch the repo along with its dependencies and build the executable for you.
* Build your own version using the `go build` command.

Create a separate folder and store the executable file there, a configuration file is also required. This file can be found under the name config.yaml.example. Enter here the necessary parameters for your cluster as well as the AWS CLI Key and the Secret. Additionally you should put your AWS credentials in the environment variables because parts of the CLI (EKS cluster) need them there.
Create a separate folder and store the executable binary file there, a configuration file is also required. An example config file is available by the name [config.yaml.example](config.yaml.example). Add the necessary parameters for your cluster along with the AWS API credentials. Alternatively you should export the AWS API credentials in the environment variables because parts of the CLI (EKS cluster) needs them there.

`export AWS_SECRET_ACCESS_KEY=xxx`
`export AWS_ACCESS_KEY_ID=xxx`

They then execute the CLI with the command:
Then execute the CLI with the command:
`tk8 cluster install aws`

With this command the TK8 CLI creates all required resources in AWS and installs a Kubernet cluster for it.
With this command the TK8 CLI will create all of the required resources in AWS and installs Kubernetes on it.

If you no longer need the cluster, you can use the command:
`tk8 cluster destroy aws`
to automatically remove all resources.
to automatically remove all of the resources.

## Contributing

For the provision of add-ons we have a separate documentation area and examples how you can build your extensions and integrate them into the TK8 project. You can also reach us at Slack.
For provisioning the add-ons we have a separate [documentation](docs/en/add-on/introduction.md) and examples how you can build your extensions and integrate them into the TK8 project. You can also reach us at Slack.

As a platform provider we have a separate documentation area here which is only about integrating a platform in TK8. Here you will find detailed instructions and examples on how TK8 will execute your integration. You can also reach us in slack.
For a platform provider we have a separate [documentation](docs/en/add-on/development.md) which is only about integrating a platform in TK8. Here you will find detailed instructions and examples on how TK8 will execute your integration or you can also reach us in slack.

To participate in the core, please create an issue or get in touch with us in Slack.
To join the community and participate in the discussions going around, you can create an issue or get in touch with us in Slack.

Get in touch
[Join us on Kubernauts Slack Channel](https://kubernauts-slack-join.herokuapp.com/)

## Credits

Founder and initiator of this project is [Arash Kaffamanesh](https://github.com/arashkaffamanesh) Founder and CEO of [cloudssky GmbH](https://cloudssky.com/de/) and [Kubernauts GmbH](https://kubernauts.de/en/home/)
Founder and initiator of this project is [Arash Kaffamanesh](https://github.com/arashkaffamanesh) Founder and CEO of [Clouds Sky GmbH](https://cloudssky.com/de/) and [Kubernauts GmbH](https://kubernauts.de/en/home/)

The project is supported by cloud computing experts from cloudssky GmbH and Kubernauts GmbH.
[Christopher Adigun](https://github.com/infinitydon)
[Arush Salil](https://github.com/arush-sal)
[Manuel Müller](https://github.com/MuellerMH)
[Niki](https://github.com/niki-1905)
[Christopher Adigun](https://github.com/infinitydon),
[Arush Salil](https://github.com/arush-sal),
[Manuel Müller](https://github.com/MuellerMH),
[Nikita](https://github.com/niki-1905),
[Anoop](https://github.com/anoopl)

A big thanks goes to the contributors of [Kubespray](https://github.com/kubernetes-incubator/kubespray) whose great work we use as a basis for the setup and installation of Kubernetes in the AWS Cloud.
Expand All @@ -95,4 +97,3 @@ Also a big thank you to [Wesley Charles Blake](https://github.com/WesleyCharlesB
[Tk8 Apache License](LICENSE)
[MIT License EKS](https://github.com/kubernauts/tk8eks/blob/master/LICENSE-Wesley-Charles-Blake)
[MIT License EKS](https://github.com/kubernauts/tk8eks/blob/master/LICENSE)

16 changes: 8 additions & 8 deletions docs/en/add-on/development.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# TK8 Add-On Development

The Add-On implementation need to be general solution so we provide a cmd to deliver a default example add-on which can be customized by the user.
The Add-On implementation needs to be a general solution so we provide a command to deliver a default example add-on which can be customized by the user.

## Development commands

The cmd to create the example add-on get created with this.
The command to create the example add-on gets created with this.

```shell
tk8 addon create my-addon
```

This command pull the tk8-addon-develop from GitHub and create a new folder below ./addons/my-addon
This command pulls the tk8-addon-develop from GitHub and creates a new folder below ./addons/my-addon

The example is a simple nginx deployment and a LoadBalancer service to expose this. So the user who create this add-on can directly use it and apply it to the k8s cluster
The example is a simple nginx deployment and a LoadBalancer service to expose this. So the user who creates this add-on can directly use it and apply it to the k8s cluster

```shell
tk8 addon install my-addon
Expand All @@ -24,11 +24,11 @@ and could remove it from the k8s cluster with
tk8 addon destroy my-addon
```

The default developer add-on doesn't contain a main.sh file. But we need to create a documentation for it. Our own add-ons could use and need it.
The default developer add-on doesn't contain a main.sh file. But we need to create documentation for it. Our own add-ons could use and need it.

## TK8 Add-on structure

For a general use of Add-Ons with git we defined a standard frame. Which contains the folder structure the yml structure and a example.
For a general use of Add-Ons with git we defined a standard frame which contains the folder structure, the yml structure and an example.

The Folder structure

Expand All @@ -44,6 +44,6 @@ The Folder structure

| → | → main.sh

The main.yml contains all needed information for k8s and will create all the deployments and services which needed.
The main.yml contains all the needed information for k8s and will create all the deployments and services which are needed.

Optional there is a main.sh which can used to download external repositories or to create a main.yml
Optionally there is a main.sh which can used to download external repositories or to create a main.yml
9 changes: 5 additions & 4 deletions docs/en/add-on/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@

## Using

How to install a add-on with tk8
How to install an add-on with tk8?

We need to store every Add-On in a single repository on Github for public add-ons and on gitlab for internal add-ons.

We make a switch with install tk8 add-ons and provide a shortcut. A shortcut could also be a local add-on so we need to check first if there one on in the folder. if not, check if there a tk8-addon- on GitHub.
We make a switch with install tk8 add-ons and provide a shortcut. A shortcut could also be a local add-on so we need to check first if there is one on in the folder. If not, check if there a tk8-addon- on GitHub.

### Use the complete Path

Expand Down Expand Up @@ -41,8 +42,8 @@ tk8 addon destroy elk

## Development

Create a add-on
The create method of tk8 create a new add-on in the local folder. This add-on is a simple example and provide all we need to work with this add-on.
Create an add-on.
The create method of tk8 creates a new add-on in the local folder. This add-on is a simple example and provides all that we need to work with this add-on.

[More information here](development.md)

Expand Down
112 changes: 0 additions & 112 deletions docs/en/provisioner/aws/aws.md

This file was deleted.

2 changes: 1 addition & 1 deletion docs/en/provisioner/aws/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Provide the AWS credentials in either of the following ways:

## Create a cluster

Adapt the `config.yaml` file to specify the cluster details. [Example config](https://raw.githubusercontent.com/kubernauts/tk8/master/config.yaml.example):
Adapt the `config.yaml` file to specify the cluster details. [Example config](../../../../config.yaml.example):

```yaml
aws:
Expand Down
16 changes: 8 additions & 8 deletions docs/en/provisioner/aws/docker.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

## Using Docker image

Create a new Folder with a config file and the ssh keys and mount it to the docker container
Create a new folder with a config file and the ssh keys and mount it to the docker container

## Create a cluster

Adapt the `config.yaml` file to specify the cluster details. [Example config](https://raw.githubusercontent.com/kubernauts/tk8/master/config.yaml.example):
Adapt the `config.yaml` file to specify the cluster details. [Example config](../../../../config.yaml.example):

```yaml
aws:
Expand Down Expand Up @@ -36,8 +36,8 @@ aws:
Once done run:
```shell
vi config.yaml --> provide your AWS access and secret key and an exsiting SSH keypair in AWS
docker run -v ~/.ssh/:/root/.ssh/ -v "$(pwd)":/tk8 kubernautslabs/tk8 cluster install aws
vi config.yaml --> provide your AWS API credentials & an exsiting SSH keypair in AWS
docker run -v <path-to-the-AWS-SSH-key>:/root/.ssh/ -v "$(pwd)":/tk8 kubernautslabs/tk8 cluster install aws
```

Post installation the **kubeconfig** will be available at: _$(pwd)/inventory/*yourWorkspaceOrClusterName*/artifacts/admin.conf_
Expand All @@ -48,11 +48,11 @@ Post installation the **kubeconfig** will be available at: _$(pwd)/inventory/*yo

## Destroy the provisioned cluster

Make sure you are in same directory where you executed `tk8 cluster install aws` with the inventory directory.
If you use a different workspace name with the --name flag please provided it on destroying too.
Make sure you are in the same directory where you executed `tk8 cluster install aws` with the inventory directory.
If you use a different workspace name with the --name flag please provide it on destroying too.

To delete the provisioned cluster run:

```shell
docker run -v ~/.ssh/:/root/.ssh/ -v "$(pwd)":/tk8 kubernautslabs/tk8 cluster destroy aws
```
docker run -v <path-to-the-AWS-SSH-key>:/root/.ssh/ -v "$(pwd)":/tk8 kubernautslabs/tk8 cluster destroy aws
```
Loading

0 comments on commit b67a266

Please sign in to comment.