Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here

kraken

cli for kraken-lib

Subscribe to updates I use kraken


Statistics on kraken

Number of watchers on Github 42
Number of open issues 25
Main language HCL
Average time to merge a PR 1 day
Open pull requests 7+
Closed pull requests 22+
Last commit over 2 years ago
Repo Created over 3 years ago
Repo Last Updated over 2 years ago
Size 4.18 MB
Organization / Authorsamsung-cnct
Latest Release1.2.5
Contributors10
Page Updated
Do you use kraken? Leave a review!
View open issues (25)
View kraken activity
View on github
Fresh, new opensource launches πŸš€πŸš€πŸš€
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating kraken for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

kraken

pipeline status

This document will help you get started deploying a high-availability Kubernetes cluster to AWS using kraken, a command-line interface for kraken-lib. kraken currently also supports deployments to GKE (see Building a Configuration File below).

Prerequisites

Docker must be installed on the machine where you run kraken and your user must have permissions to run it.

AWS Credentials: If deploying to AWS, the AWS User profile you wish to deploy under must have a policy attached with full access granted to:

  • AmazonEC2FullAccess
  • IAMFullAccess
  • AmazonRoute53FullAccess

The User must also have Programmatic access enabled which will create an access key ID and secret access key which is required for kraken default config.yaml.

Installing/Fetching the Official Build

You can install the official build on OS X via Brew by:

brew tap 'samsung-cnct/homebrew-kraken'
brew install kraken

Otherwise, you can find the latest official build here. Use the latest version, unless you have a specific reason for using a different one.

Building a Configuration File

kraken-lib uses a YAML configuration file for all aspects of the Kubernetes cluster and the infrastructure running it. To build a generic AWS configuration file with a large number of sensible defaults, you can run:

kraken generate

This will create a file at ${HOME}/.kraken/config.yaml

Note: If a config file already exists, the generate subcommand will fail with the message: A kraken config file already exists at <your config location> - rename, delete or move it to generate a new default kraken config file

Or you can specify a path with:

kraken generate ${HOME}/krakenlibconfigs/

This will create a file at ${HOME}/krakenlibconfigs/config.yaml.

For a GKE configuration file, run:

kraken generate --provider gke

Required configuration changes

For an AWS cluster, you need to set several fields before using the config file file you created, as listed below.

  • Cluster name All kraken clusters should have a unique name so their assets can be easily identified by humans in the AWS console (no more than 32 characters). Set the cluster name in the deployment.clusters.name field. This dotted notation refers to the hierarchical structure of a YAML file where the cluster is a sub field of deployment. Find this line near the bottom of the file in the deployment section. GKE cluster names must use lower case letters.

The following fields are in the definitions section of the configuration file. In lieu of specifying all of the following, you can simply put your credentials in the AWS credentials file from where kraken will access them.

  • AWS access key: required for programmatic access to AWS. The field is named providerConfigs.authentication.accessKey that you can set to the literal value or to an environment variable that kraken will use.
  • AWS access secret: paired to the above access key. This field is named providerConfigs.authentication.accessSecret that you can set to the literal value or to an environment variable that kraken will use.
  • AWS credentials file: paired with the below profile. The field is named providerConfigs.authentication.credentialsFile. This file and path must exist bind-mounted to /root inside the container, (${HOME}/.aws/credentials).
  • AWS credentials profile: used to select the credentials set from the credentials file above.

When you've set the required fields, your configuration file is ready to go. The default file will create a production-ready cluster with the following configuration:

Role # Type
Primary etcd cluster 5 m4.large
Events etcd cluster 5 m4.large
Master nodes 3 m4.large
Cluster nodes 10 c4.large
Special nodes 2 m4.large

We have chosen this configuration based on our own and others' publicly available research. It creates an underpowered cluster in terms of cluster nodes, which is an easy setting to change (see below). The important point is to ensure the control plane is production quality.

Optional configuration changes (more advanced)

First-time users looking to set up a simple evaluation cluster can skip this section and go directly to Creating Your First Cluster.

You can modify many options to control the deployment of your Kubernetes cluster. Here we focus on a couple that may be of interest before starting your first cluster. For reference, here is the full set of kraken configuration options.

  • Deployment Region and Availability Zones
    In the default-generated configuration file, all clusters begin their lives in the AWS Region us-east-1. You can move the default region and modify the availability zones, if needed. For reference, the Global AWS Infrastructure provides a complete list of regions and availability zones. These fields are named definitions.providerConfigs.region, and definitions.providerConfigs.subnet.az respectively. Note three total .subnet.az values are defined, so the cluster can be spread across multiple failure domains. Be sure to update all three to availability zones within your selected region.

  • Cluster Node Size and Count
    This setting defines the type and total number of cluster nodes on which you can schedule workloads. The default EC2 instance type is c4.large, and the default cluster includes 10 of these instances. These fields are named definitions.nodeConfigs.defaultAwsClusterNode.providerConfig.type for the instance type and deployment.clusters.nodePools.name: clusterNodes, .count: 10, for the total number of worker nodes. When setting the total number of nodes, keep mind they will be spread across all of your cluster's availability zones.

How to create a small research or development cluster

To create a small, low resource-consuming cluster, alter your config to the following:

Role # Type
Primary etcd cluster 1 t2.small
Events etcd cluster 1 t2.small
Master nodes 1 m4.large
Cluster nodes 1 c4.large
Special nodes 2 m4.large

Delete 'Special nodes'

YAML:

  clusters:
    - name:
...
      nodePools:
        - name: etcd
          count: 1
...
    - name: etcdEvents
          count: 1
...
        - name: master
          count: 1
...
        - name: clusterNodes
          count: 1

Creating Your First Cluster

Assuming you have a configuration built (as described above), you're ready to create your first cluster. Run the following command. If you have used the default config location:

kraken cluster up

Or you can specify the location of the config file:

kraken cluster up --config ${HOME}/krakenlibconfigs/config.yaml

This will take anywhere from 5 to 20 minutes, depending on AWS performance when you execute this command. When complete, the cluster exists in its own VPC and is accessible via the tool subcommands. The output artifacts are stored in the default location: ${HOME}/.kraken/<cluster name>.

Working with Your Cluster (Using kraken)

For all of its operations, kraken uses the kraken-lib image that ships with the installed kubectl and helm. You can access these tools through the kraken tool subcommand. Using this subcommand helps ensure you're using the correct version of the relevant CLI for your cluster.

kubectl (http://kubernetes.io/docs/user-guide/kubectl-overview/), a CLI for working with a Kubernetes cluster, is used for deploying applications, checking system status and more. See the linked documentation for more details.

Helm (https://github.com/kubernetes/helm) is a CLI for packaging and deploying applications to Kubernetes. See the linked documentation for more details.

Example usage - kraken tool kubectl

If you've specified a path for your config.yaml, you need to include the --config ${HOME}/path_to_config/config.yaml option when running the following commands. Otherwise, it assumes your config lives at ${HOME}/.kraken/config.yaml

To see all nodes in your cluster (and specify the path to the config file):

kraken tool kubectl --config ${HOME}/krakenlibconfigs/config.yaml get nodes

To see all installed applications across all namespaces:

kraken tool kubectl --config ${HOME}/krakenlibconfigs/config.yaml -- get pods --all-namespaces

Example usage - kraken tool Helm

To list all installed charts with the default config.yaml location:

kraken tool helm list

To install the Kafka chart maintained by Samsung CNCT:

kraken tool helm install atlas/kafka

Working with Your Cluster (Using Host-Installed Tools)

Your local machine's output directory stores the file needed by Helm and kubectl for connecting to and interacting with your Kubernetes deployment. By default, this directory is ${HOME}/.kraken/<cluster name>/. The filename is admin.kubeconfig.

Example usage - local kubectl

To list all nodes in your Kubernetes cluster:

kubectl --kubeconfig=${HOME}/.kraken/<cluster name>/admin.kubeconfig --cluster=<cluster name> get nodes

To list all installed applications across all namespaces:

kubectl --kubeconfig=${HOME}/.kraken/<cluster name>/admin.kubeconfig --cluster=<cluster name> get pods --all-namespaces

Example usage - local Helm

Helm requires the admin.kubeconfig file and the saved local Helm state. The Helm state directory is also in the output directory.

To list all installed charts:

KUBECONFIG=${HOME}/.kraken/<cluster name>/admin.kubeconfig HELM_HOME=${HOME}/.kraken/<cluster name>/.helm helm list

To install the Kafka chart maintained by Samsung CNCT:

KUBECONFIG=${HOME}/.kraken/<cluster name>/admin.kubeconfig HELM_HOME=${HOME}/.kraken/<cluster name>/.helm helm install atlas/kafka

Updating your Cluster

With kraken, you can update all aspects of your node pools including count, Kubernetes version, instance type and more. To do so, please make desired changes in your configuration file, and then run kraken's cluster update command, as described below, pointing to your configuration file.

Running kraken update

You can specify different versions of Kubernetes in each node pool. Note: this may affect the compatibility of your cluster's kraken-provided services. Specify which node pools you want to update with a comma-separated list of their names. This process takes approximately 10 minutes per node. You may also add or remove entire nodepools.

  • Step 1: Make appropriate changes to configuration file
  • Step 2: Run kraken cluster update --config ${HOME}/krakenlibconfigs/config.yaml --update-nodepools <your,nodepools,here>

Similarly,

--add-nodepools

will add new nodepools specified in configuration file, and

--rm-nodepools

will remove nodepools removed from your configuration file.

Destroying the Running Cluster

When you're done with your cluster or with a quickstart, we recommend cleaning up your resources by destroying the running cluster. From this guide, simply run:

kraken cluster down ${HOME}/krakenConfigs/config.yaml

Note: If you have specified an '--output' directory during the creation command, be sure to specify it here or the cluster will still be running!

Using Environment Variables in YAML Configuration

kraken will automatically attempt to expand all $VARIABLE_NAME strings in your configuration file. It will pass the variable and value to the kraken-lib Docker container and mount the path (if it's a path to an existing file or folder) into the kraken-lib Docker container.

Environment Variable Expansion

For example, given a variable such as export MY_PRIVATE_KEY_FILE=/Users/kraken/.ssh/id_rsa, the configuration:

definitions:
  ...
  keyPairs:
   - &defaultKeyPair
      name: defaultKeyPair
      kind: keyPair
      publickeyFile: "$HOME/.ssh/id_rsa.pub"
      privatekeyFile: "$MY_PRIVATE_KEY_FILE"
...

will be expanded to:

definitions:
  ...
  keyPairs:
   - &defaultKeyPair
      name: defaultKeyPair
      kind: keyPair
      publickeyFile: "$HOME/.ssh/id_rsa.pub"
      privatekeyFile: "/Users/kraken/.ssh/id_rsa"

...

and the KRAKENLIB Docker container will get a /Users/kraken/.ssh/id_rsa:/Users/kraken/.ssh/id_rsa mount and a KRAKENLIB_PRIVATE_KEY_FILE=/Users/kraken/.ssh/id_rsa environment variable.

If you have further questions or needs, please read through the rest of the documentation and then open an issue.

Contributing Features, Bug Fixes and More

We welcome all types of contributions from the community and and don't require a contributor license agreement. To simplify merging, we prefer pull requests based on a feature branch in your personal fork that's based off the current master of the kraken repo. For more details, please refer to our kraken-lib Contributing document.

To build

This is a go project with vendored dependencies, so building is a snap.

git clone https://github.com/<your github account>/kraken.git
cd kraken
go build

This will create a kraken binary that can be executed directly like so:

./kraken

Asset changes

Assets are stored in the /data directory of this project's directory. Any file changes only get implemented if you follow the steps below:

  • Run go-bindata data/
  • Move the generated bindata.go file to the /cmd directory
  • Change package from main to cmd
  • Commit the changes

We plan to automate this process in the future.

Cutting a release

Please speak to a member of the kraken team in #kraken Slack (link below) if you need a release cut.

Additional Resources

Here are some additional resources you might find useful:

Maintainer

This document is maintained by Patrick Christopher (@coffeepac) at Samsung SDS.

kraken open issues Ask a question     (View All Issues)
  • almost 4 years kraken & kargo:Β sharing roadmaps
  • over 4 years Terraform hangs waiting for kubeconfig on master
  • over 4 years Set cloud provider?
kraken open pull requests (View All Pulls)
  • [wip] use e2e.go for conformance test instead
  • Rkt integ Into Kraken.
  • [WIP] Run k8s services as docker containers
  • Added cloud_provider=aws config to k8s components.
  • Initial checkin of prometheus data capture code (KRAK-346).
  • KRAK-460: made changes that allow us to create roles for instances.
  • [Issue 109] Added ETCDCTL
kraken questions on Stackoverflow (View All Questions)
  • Kraken API: Problems with authentication (Invalid key)
  • Kraken private API with F# returns EGeneral: invalid arguments
  • Is Typescript completely compatible with Loopback, Sails, Hapi, and Kraken?
  • Kraken API MATLAB client invalid signature error
  • I am trying to get the updated XBTEUR value using kraken API in Node.js. Does anyone know how to do that?
  • Can't create trade using Kraken API
  • Handling url rewrites and static files with Kraken JS
  • Using dustjs-helpers with Kraken js
  • uploading and saving file in MongoDB with Kraken
  • How do I console.log a localised message from .properties whilst using kraken for i18n?
  • Using Kraken for node, How can I apply localisation url to all routes (i18n)?
  • Single Sign On for multiple Kraken JS applications
  • Kraken JS middleware and exceptions
  • Kraken, Dust and Makara
  • Node Express Kraken routing windows
  • Can we access the kraken config object in dust template?
  • app.json configuration for ssl kraken-js
  • How to write Gruntfile for Kraken Image Optimizer
  • Kraken JS Permission Denied
  • kraken fails to resolve requirejs
  • Kraken JS: mogran deprecated undefined format: specify a format
  • Disable Sessions in Kraken or node
  • generator-kraken static module out of date?
  • How to access the Express logger in Kraken
  • How to create global variable in Kraken JS
  • How to get a basic kraken-js app running on heroku?
  • Kraken API with a PHP script causes HTML page to go blank
  • Openfire Kraken Plugin Facebook Transport not working
  • openfire 3.7.1 works great, but dies on restart (Kraken plugin installed)
kraken list of languages used
kraken latest release notes
1.2.5 1.2.5

Changelog

ca49930 build 185ebae2eab272d79a975370b4c40010deb81df7 185ebae rev version of kraken-lib (#407) 9cf8777 remove the leading v (#229) 6bc9cb7 Add new build and release tasks (#222) 3dc4f8b updated the brew tap source to homebrew-kraken. (#226) b728fb3 Updating Documentation to match with actual code (#225) d9806b7 add certified kubernetes badges (#223) f613144 Rewrite for gitlab CI/CD migration (#217) aba34ac basic guidelines for AWS IAM policy to create/run/destroy cluster (#219) 74479c7 Add a mailmap file (#218) 6576300 do not show 'cluster state' message after successful cluster down (#215) c94996c Change the way we call golint to support multiple packages (#200) 5add8c8 indicate GKE cluster names need to be lower case (#213) eab8439 correct slack signup link (#209) f855e53 Add a make task to regenerate bindata (#204) 29e1702 Remove unused go-bindata (#201) a9fedee Update README for bindata updates (#202) c76863f Fix make verify (#199) c183b33 release artifact cleanup/add experimental windows binaries (#198) 8df7c75 [Issue 21] error message is now correct for the case where outputLocation is not default (#197) b0c2ee7 Change name of container image to kraken-lib. (#195) 44f39d2 kubectl changes to go with those submited in kraken-lib (#178) 9acd833 put fetching gox as part of the compile, should fix release process on machines without the dependency installed. (#191) ceda8f9 suggestion to change out spinner as current one gives the impression that it will terminate when reaching the end, false impressoin of pregression. Spinning does give this perception and so less likely to cause confusion. (#181) 36456b1 updated reference to old config format. Removed automatic variable expansion instructions, because a cursory attempt to follow them did not result in success (#190) c3f7199 [Issue 184 ] Fail fast when config file isnt defined (#187) 1be83f8 [Issue 163] Removed GODEP references, binaries are lowercase k kraken (#189) 72600a8 updated documentation so that it fits changes with the update command. (#186) b5e3ed0 remove patch version after getting cluster's kubernetes version. Should fix issues found when running helm. (#180) a661dfe ensure that kraken cluster update runs with config file passed as a flag and not as an argument, should now be consistent with all other config dependent commands. (#179) d39a7f1 update release doc section (#169) c205196 add codeowners (#175) b7f4873 added make verify, this includes the verify code, supporting code and all the checks we wish a developer to run. (#157) f80d728 Updated readme. (#168) a83c653 Image link fixed and spelling errors. (#166) f4d6cda added missing --update-nodepools flag to documentation 9adf6af Cleanup of k2cli references/repo name (#164) 1cb966a Updated command for fetching official build (#162) 7d83b2a put the '\' back so that we only build the desired targets (#159) ac5e492 made changes based on results from running go simple, and go lint. Generated files are ignored. Moved files from container_helper that should really belong to cluster_helper. (#156) 5807eaa first commit, changing stages from up/down to tags, updating root timeout shorthand flag to capital T. (#151) 34f567e Edited README (#158) 952450a [Kraken-Release] command (#152) 4f8b6da first commit, first set of changes including some naming stuff. (#150) d7445a4 K2cli migration to Kraken (#139) 2299a59 pass release branch parameter to makefile (#149) 4892474 use us-east1 (#148) 9c6b9d2 first commit to changes to fix issues with k2cli (#140) a12fff5 Release fix mk ii (#146) b3ad51a gke is a noop for now (#147) bbb9d7e forgot a pair of ampersands (#145) fd90018 k2cli release path (#144) 44b0176 missed a file, begone (#143) 4452cf4 added Jenkinsfile (#104) 4b57749 the docs folder is autogenerated and we don't have a good way to keep it up to date. 461bd1a release version 1.0.8 (#134) 41c7559 Added ability check helm_override_{cluster.name} env in k2cli (#131) 482e89d K2 shell script calls have bin in filepath (#126) d7454e0 info on how to spinup non-HA cluster (#123) 4d2440b Created check for existence of supported version of helm (#119) 440a734 Nodepool flag (#117) 2775018 next release, make it stable (#116) 6475399 altered generate subcommand to exit if config file already exists (#115) cde9b57 use the scripts that exist in K2 2716b07 Support TLS on Docker API connections (#111) a33bf90 Update README.md e06cfa3 Getting Started Guide Updates (#101) bb3b74d add config file explicity for consistency (#108) 6a93fb7 K2cliupdate (#98) 90c5472 Add issue and pr templates. (#97) 4ae8cd6 changes to readme to include instructions for installation view brew. (#85) e04ae0d guard against name not exsiting and rev version (#84) 96061bf Merge pull request #83 from davidewatson/ssh 8fdce70 Correct spelling. 18e0cc5 Implement a -f option for commands which may need to tolerate depreciated configuration files (#66). 5febfa5 verbose flag added for k2cli (#82) bc838d3 Merge pull request #73 from DStorck/master d1fa38b whitespace formatted 31392e9 updated arguments in tests 0db0272 Merge remote-tracking branch 'upstream/master' dfeb5fb Merge pull request #74 from coffeepac/cluster-name-hack 774a128 set provider to aws unless specified as gke d6b77e2 refactored generate to extract prerun and run b1b4e24 tests for generate.go 9df021c had to do a bunch of conversions, Viper doesn't seem to handle lists cleanly on the access side c00a7c6 hack to make k2cli work with new config: will only work on first cluster in list ab92449 extracted prerun and run into functions 18222e3 updated docs for provider flag 2a076e5 added provider flag for config generation 7800a11 Merge pull request #65 from samsung-cnct/ds-default-config-location 9c4f180 changed k2cli tool examples to use default config location 0ed8dda updated k2cli tool examples for default location of config file ba3dff4 added note about default location of config.yaml 23383b4 fix typos, copyright, k2/K2 (#62) ed7214a Merge pull request #57 from alejandroEsc/ae/emptyvars 71156ac updated ignore file to include .idea files. Updated container_helpers.go to use a simple function for easier readability, included a test file. 03d197c Merge pull request #56 from joejulian/53_fix_spinner a71d4bf Use spinner text fields instead of Printf 8ef6c40 Merge pull request #55 from joejulian/128_allow_credentials_use 53dd734 Don't create empty environment variables 651ac52 Merge pull request #50 from davidewatson/ssh 09b4bcd Comment out usage of command which is not implemented. See #49. dabd75f Remove trailing whitespaces 2613baa Correct documentation regarding aws configuration file 3f675c6 Use the more verbose ${HOME} instead of tilde 8f47912 Merge pull request #44 from DStorck/master 97a10db changed secretKey to accessSecret and added correct link to helm repo 5e06aed Merge pull request #43 from coffeepac/release-bump 3d40810 update version for next release 8e8be0b Merge pull request #42 from coffeepac/enforce-stricter-container-naming 6aa4977 remove trailing dash from base container name 427b035 Merge pull request #39 from iredwards/doc-edits e9f4259 change 'node' to 'Note' 209399a copy edit 7340194 Merge pull request #35 from joejulian/readme 98be5e4 Make a note about maximum cluster-name length 8025b82 Add docker requirement to the readme. aed65ad Merge pull request #30 from joejulian/readme 50cf43f Terminate options list ca7c584 Merge pull request #27 from joejulian/duplicate_binds 7ae1588 do not add duplicate binds to docker container definition 1e2b305 Merge pull request #25 from coffeepac/fix-bug-remove-from-readme 5675e4c fixed the noted bug. remove note from README 9d6f532 Merge pull request #24 from coffeepac/README-update fdda207 changes from review 729f3d7 add a quick start guide and basic usage cdd54b3 Merge pull request #16 from maratoid/master e4f7d91 readme formatting d5c1805 note on env var binding 4af4112 enable cluster name as env var, enable automatic env var binding 19e43b3 Merge pull request #15 from maratoid/master a7f958d document cutting a release 5ed5a77 Merge pull request #14 from maratoid/master 432db68 review changes 9d9e85a add versioning 0d37cec Merge pull request #12 from maratoid/master 494e77c remove check on update include - we already check for these keys inside the update file 8773a88 address review comments. Add --keep-alive flag, that instead of removing the k2-xxx container after action is compete, keeps it around and renames it ba28f87 address review comments. Add --keep-alive flag, that instead of removing the k2-xxx container after action is compete, keeps it around and renames it e08300a add update command. have closure always clean up the named container ebbd9ba Merge pull request #11 from maratoid/master 21d3b5e add a closure to clean up containers on action timeout 5bb8fbf Merge pull request #10 from spiffxp/name-k2-container a5a9187 name k2 container based on deployment.cluster 38d3d6c Merge pull request #9 from spiffxp/output-generate-dest 8a30c0b Output where the config was generated d9a8376 Merge pull request #8 from spiffxp/default-config-name 725855c k2 no longer defaults to krakenCluster 66745d4 Merge pull request #7 from maratoid/master d7b1987 add note on env vars 72b6a00 Merge pull request #3 from maratoid/master 0a25c7c pass environment variables used in config file to docker container better a149619 Merge pull request #2 from maratoid/master dc53f1c remove debug output 9e6f871 expand environment variables in mounts aaf9ac7 Merge pull request #1 from maratoid/master 85aabe9 example usage 16ee5af A mostly working golang client for k2 51d4449 Initial commit


Automated with GoReleaser Built with go version go1.9.2 linux/amd64

1.2.4 1.2.4

Changelog

0e45bbd build 9cf8777215fef0a2bc5e4ef43a11c228fccbfa0a 9cf8777 remove the leading v (#229) 6bc9cb7 Add new build and release tasks (#222) 3dc4f8b updated the brew tap source to homebrew-kraken. (#226) b728fb3 Updating Documentation to match with actual code (#225) d9806b7 add certified kubernetes badges (#223) f613144 Rewrite for gitlab CI/CD migration (#217) aba34ac basic guidelines for AWS IAM policy to create/run/destroy cluster (#219) 74479c7 Add a mailmap file (#218) 6576300 do not show 'cluster state' message after successful cluster down (#215) c94996c Change the way we call golint to support multiple packages (#200) 5add8c8 indicate GKE cluster names need to be lower case (#213) eab8439 correct slack signup link (#209) f855e53 Add a make task to regenerate bindata (#204) 29e1702 Remove unused go-bindata (#201) a9fedee Update README for bindata updates (#202) c76863f Fix make verify (#199) c183b33 release artifact cleanup/add experimental windows binaries (#198) 8df7c75 [Issue 21] error message is now correct for the case where outputLocation is not default (#197) b0c2ee7 Change name of container image to kraken-lib. (#195) 44f39d2 kubectl changes to go with those submited in kraken-lib (#178) 9acd833 put fetching gox as part of the compile, should fix release process on machines without the dependency installed. (#191) ceda8f9 suggestion to change out spinner as current one gives the impression that it will terminate when reaching the end, false impressoin of pregression. Spinning does give this perception and so less likely to cause confusion. (#181) 36456b1 updated reference to old config format. Removed automatic variable expansion instructions, because a cursory attempt to follow them did not result in success (#190) c3f7199 [Issue 184 ] Fail fast when config file isnt defined (#187) 1be83f8 [Issue 163] Removed GODEP references, binaries are lowercase k kraken (#189) 72600a8 updated documentation so that it fits changes with the update command. (#186) b5e3ed0 remove patch version after getting cluster's kubernetes version. Should fix issues found when running helm. (#180) a661dfe ensure that kraken cluster update runs with config file passed as a flag and not as an argument, should now be consistent with all other config dependent commands. (#179) d39a7f1 update release doc section (#169) c205196 add codeowners (#175) b7f4873 added make verify, this includes the verify code, supporting code and all the checks we wish a developer to run. (#157) f80d728 Updated readme. (#168) a83c653 Image link fixed and spelling errors. (#166) f4d6cda added missing --update-nodepools flag to documentation 9adf6af Cleanup of k2cli references/repo name (#164) 1cb966a Updated command for fetching official build (#162) 7d83b2a put the '\' back so that we only build the desired targets (#159) ac5e492 made changes based on results from running go simple, and go lint. Generated files are ignored. Moved files from container_helper that should really belong to cluster_helper. (#156) 5807eaa first commit, changing stages from up/down to tags, updating root timeout shorthand flag to capital T. (#151) 34f567e Edited README (#158) 952450a [Kraken-Release] command (#152) 4f8b6da first commit, first set of changes including some naming stuff. (#150) d7445a4 K2cli migration to Kraken (#139) 2299a59 pass release branch parameter to makefile (#149) 4892474 use us-east1 (#148) 9c6b9d2 first commit to changes to fix issues with k2cli (#140) a12fff5 Release fix mk ii (#146) b3ad51a gke is a noop for now (#147) bbb9d7e forgot a pair of ampersands (#145) fd90018 k2cli release path (#144) 44b0176 missed a file, begone (#143) 4452cf4 added Jenkinsfile (#104) 4b57749 the docs folder is autogenerated and we don't have a good way to keep it up to date. 461bd1a release version 1.0.8 (#134) 41c7559 Added ability check helm_override_{cluster.name} env in k2cli (#131) 482e89d K2 shell script calls have bin in filepath (#126) d7454e0 info on how to spinup non-HA cluster (#123) 4d2440b Created check for existence of supported version of helm (#119) 440a734 Nodepool flag (#117) 2775018 next release, make it stable (#116) 6475399 altered generate subcommand to exit if config file already exists (#115) cde9b57 use the scripts that exist in K2 2716b07 Support TLS on Docker API connections (#111) a33bf90 Update README.md e06cfa3 Getting Started Guide Updates (#101) bb3b74d add config file explicity for consistency (#108) 6a93fb7 K2cliupdate (#98) 90c5472 Add issue and pr templates. (#97) 4ae8cd6 changes to readme to include instructions for installation view brew. (#85) e04ae0d guard against name not exsiting and rev version (#84) 96061bf Merge pull request #83 from davidewatson/ssh 8fdce70 Correct spelling. 18e0cc5 Implement a -f option for commands which may need to tolerate depreciated configuration files (#66). 5febfa5 verbose flag added for k2cli (#82) bc838d3 Merge pull request #73 from DStorck/master d1fa38b whitespace formatted 31392e9 updated arguments in tests 0db0272 Merge remote-tracking branch 'upstream/master' dfeb5fb Merge pull request #74 from coffeepac/cluster-name-hack 774a128 set provider to aws unless specified as gke d6b77e2 refactored generate to extract prerun and run b1b4e24 tests for generate.go 9df021c had to do a bunch of conversions, Viper doesn't seem to handle lists cleanly on the access side c00a7c6 hack to make k2cli work with new config: will only work on first cluster in list ab92449 extracted prerun and run into functions 18222e3 updated docs for provider flag 2a076e5 added provider flag for config generation 7800a11 Merge pull request #65 from samsung-cnct/ds-default-config-location 9c4f180 changed k2cli tool examples to use default config location 0ed8dda updated k2cli tool examples for default location of config file ba3dff4 added note about default location of config.yaml 23383b4 fix typos, copyright, k2/K2 (#62) ed7214a Merge pull request #57 from alejandroEsc/ae/emptyvars 71156ac updated ignore file to include .idea files. Updated container_helpers.go to use a simple function for easier readability, included a test file. 03d197c Merge pull request #56 from joejulian/53_fix_spinner a71d4bf Use spinner text fields instead of Printf 8ef6c40 Merge pull request #55 from joejulian/128_allow_credentials_use 53dd734 Don't create empty environment variables 651ac52 Merge pull request #50 from davidewatson/ssh 09b4bcd Comment out usage of command which is not implemented. See #49. dabd75f Remove trailing whitespaces 2613baa Correct documentation regarding aws configuration file 3f675c6 Use the more verbose ${HOME} instead of tilde 8f47912 Merge pull request #44 from DStorck/master 97a10db changed secretKey to accessSecret and added correct link to helm repo 5e06aed Merge pull request #43 from coffeepac/release-bump 3d40810 update version for next release 8e8be0b Merge pull request #42 from coffeepac/enforce-stricter-container-naming 6aa4977 remove trailing dash from base container name 427b035 Merge pull request #39 from iredwards/doc-edits e9f4259 change 'node' to 'Note' 209399a copy edit 7340194 Merge pull request #35 from joejulian/readme 98be5e4 Make a note about maximum cluster-name length 8025b82 Add docker requirement to the readme. aed65ad Merge pull request #30 from joejulian/readme 50cf43f Terminate options list ca7c584 Merge pull request #27 from joejulian/duplicate_binds 7ae1588 do not add duplicate binds to docker container definition 1e2b305 Merge pull request #25 from coffeepac/fix-bug-remove-from-readme 5675e4c fixed the noted bug. remove note from README 9d6f532 Merge pull request #24 from coffeepac/README-update fdda207 changes from review 729f3d7 add a quick start guide and basic usage cdd54b3 Merge pull request #16 from maratoid/master e4f7d91 readme formatting d5c1805 note on env var binding 4af4112 enable cluster name as env var, enable automatic env var binding 19e43b3 Merge pull request #15 from maratoid/master a7f958d document cutting a release 5ed5a77 Merge pull request #14 from maratoid/master 432db68 review changes 9d9e85a add versioning 0d37cec Merge pull request #12 from maratoid/master 494e77c remove check on update include - we already check for these keys inside the update file 8773a88 address review comments. Add --keep-alive flag, that instead of removing the k2-xxx container after action is compete, keeps it around and renames it ba28f87 address review comments. Add --keep-alive flag, that instead of removing the k2-xxx container after action is compete, keeps it around and renames it e08300a add update command. have closure always clean up the named container ebbd9ba Merge pull request #11 from maratoid/master 21d3b5e add a closure to clean up containers on action timeout 5bb8fbf Merge pull request #10 from spiffxp/name-k2-container a5a9187 name k2 container based on deployment.cluster 38d3d6c Merge pull request #9 from spiffxp/output-generate-dest 8a30c0b Output where the config was generated d9a8376 Merge pull request #8 from spiffxp/default-config-name 725855c k2 no longer defaults to krakenCluster 66745d4 Merge pull request #7 from maratoid/master d7b1987 add note on env vars 72b6a00 Merge pull request #3 from maratoid/master 0a25c7c pass environment variables used in config file to docker container better a149619 Merge pull request #2 from maratoid/master dc53f1c remove debug output 9e6f871 expand environment variables in mounts aaf9ac7 Merge pull request #1 from maratoid/master 85aabe9 example usage 16ee5af A mostly working golang client for k2 51d4449 Initial commit


Automated with GoReleaser Built with go version go1.9.2 linux/amd64

1.2.3 1.2.3

Changelog
c76863f Fix make verify (#199) a9fedee Update README for bindata updates (#202) 29e1702 Remove unused go-bindata (#201) f855e53 Add a make task to regenerate bindata (#204)

Other projects in HCL