Giter VIP home page Giter VIP logo

klondike's Introduction

klondike has moved to github.com/planetlabs/klondike

klondike's People

Contributors

bcwaldon avatar jacobstr avatar s26mehta avatar jk0 avatar mheese avatar kinghrothgar avatar nrvnrvn avatar chadcatlett avatar gmarkey avatar luciferous avatar

Stargazers

Craig Steinberger avatar Danny avatar John Gesimondo avatar ryan jarvinen avatar Jacques Tardie avatar Arjun Attam avatar Michael Haselton avatar Chance Zibolski avatar Yann Hamon avatar gleeco avatar  avatar  avatar

Watchers

James Cloos avatar  avatar  avatar

klondike's Issues

Set up DNS name for bastion

It's annoying to have to pull the IP of the bastion manually. We should manage a DNS record for it. We should probably prefix the current A record we manage for the controller ELB with "api." to make some room for this new record.

Intermittent failure running playbook

Occasionally, when trying to update farva manually via the bastion instance I see:

TASK [kubelet : upload cluster CA certificate] *********************************
fatal: [***]: FAILED! => {"failed": true, "msg": "ERROR! failed to resolve remote temporary directory from ansible-tmp-1463680630.15-264393012566816: `( umask 22 && mkdir -p \"$( echo $HOME/.ansible/tmp/ansible-tmp-1463680630.15-264393012566816 )\" && echo \"$( echo $HOME/.ansible/tmp/ansible-tmp-1463680630.15-264393012566816 )\" )` returned empty string"}

Doing these sort of out-of-band updates is generally not the approach you should be using when interacting with the klondike core components, but I'm concerned this might happen during a normal deployment.

Repeating ansible-playbook -e cluster=bulbasaur -l tag_group_gateway site.yml tends to work.

Add a sizing guide

The process of sizing the cluster for load is a complicated and dangerous process:

  • Add instructions for tuning elasticsearch and it's relevant logs.
  • Add instructions on resizing the workers. Or adding new worker pools.
  • Add instructions to aid in volume management.

v1 Milestone

The project is generally useful, but several important pieces remain:

  • manage secrets securely
  • disable CoreOS auto-updates using cloud-config
  • spin TLS certificates per worker
  • enable AWS Kubernetes cloudprovider
  • deploy datadog agent via DaemonSet
  • reserve host memory for kubelets
  • expand README
  • mount /dev/xvdb at /var/lib/docker
  • create Route53 record for ELB

Multi-AZ Workers

klondike should ensure workers are spread across availability zones. We may have to use multiple worker subnets to achieve this.

Run ansible on CoreOS via containers

klondike currently depends on installing python directly to the CoreOS filesystem to run ansible. This feels janky. Figure out how to do this in such a way that we run python in a container.

Document AWS access requirements

The deployer uses an AWS access/secret key pair to create the CloudFormation stack. These credentials need to be able to create quite a few resources. Document the minimum IAM policy needed for these credentials to properly deploy a klondike cluster.

Automatically sync authorized_keys

There's a script that will pull down the authorized_keys.d/ folder from the S3 config bucket. This rebuilds /home/ubuntu/.ssh/authorized_keys on demand. This should probably be run automatically (with configuration).

Document Upgrades

How does one upgrade all of the components of klondike. What does adding new nodes and reaping all nodes in each node type.

Limit logstash to the controllers

Each node currently runs logstash. This is wasteful. We might as well just run logstash on the controllers, and have logstash-forwarder (or something like it) ship logs to this reduced set of logstash instances.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.