Coder Social home page Coder Social logo

halcyon-vagrant-kubernetes's Introduction

halcyon-vagrant-kubernetes

Please see release notes for current and planned features.

A Vagrant deployment of halcyon-kubernetes -- Ansible playbooks for a kubadm-based kubernetes deployment, supporting any cloud and any kubeadm-enabled OS.

Requirements

  • Virtualbox 5.0 (5.2 will not work with Vagrant)
  • Virtualbox Extensions for 5.0
  • Ansible (version 2.1.1 and up tested)
  • Vagrant (1.8.4 or higher, but not 1.9 as there are known issues)
    • Following Vagrant Plugins (installed for you during first deploy):
      • vagrant-env
      • vagrant-git
      • vagrant-openstack-provider
      • vagrant-persistent-storage
  • GNU sed (MacOS ships with BSD sed)

Please see /docs/README.md for more information about SDN providers, plugins, and other useful information. Pull requests are welcome!

Instructions

To use this project, simply use vagrant to bring up your environment:

$ git clone https://github.com/att-comdev/halcyon-vagrant-kubernetes.git
$ cd halcyon-vagrant-kubernetes
$ git submodule init
$ git submodule update
$ cd halcyon-kubernetes; make; source venv/bin/activate; cd -
$ vagrant up

Configuration Helper

A helper script is provided to set up basic common configuration options, it can be used to change the guest OS and Kubernetes version. It also supports changing between the default halcyon-kubernetes config and one optimized for OpenStack Kolla-Kubernetes development. For example, to setup a Kolla development environment running CentOS and Kubernetes v1.4.6 can simply be achieved by running:

$ ./setup-halcyon.sh --guest-os centos --k8s-config kolla --k8s-version v1.4.6

Deploy directly to Openstack:

When you want to use Openstack, edit the options in ./config.rb to match your Openstack project, and deploy with the --provider=openstack flag:

$ vagrant up --provider=openstack

Deploy using Libvirt:

If you would like to use libvirt rather than virtualbox, install the follow vagrant plugin and deploy with the --provider=libvirt flag:

$ vagrant plugin install vagrant-libvirt
$ vagrant up --provider=libvirt

NOTE: Please look over the options in config.rb for modifying number of nodes, subnet, and other information and if you want to make any modifications to the Ansible deployment, make changes to the ./kube-deploy/group_vars/all.yml file.

Accessing the cluster:

To access the deployed cluster either log in to the node kube1:

$ vagrant ssh kube1

or if kubectl is installed locally on the development host, you can alternatively use the provided helper-script to access the cluster:

$ ./get-k8s-creds.sh

Ubuntu Deployment Issues:

If you are deploying project on a Ubuntu 16.04+ host, you may need to install the following dependencies to ensure that the Vagrant plugins get installed properly:

sudo apt-get install ruby-dev zlib1g-dev libgmp-dev libxml2-dev libssl-dev openssl libffi-dev

NOTE: On Ubuntu 16.10, you may have to install libvirt-dev package to ensure the vagrant-libvirt plugin installs properly:

sudo apt-get install libvirt-dev

TODO

  • Add conditionals for various deployments (using vagrant --provider flags; such as AWS provider).

halcyon-vagrant-kubernetes's People

Contributors

v1k0d3n avatar

Watchers

James Cloos avatar  avatar  avatar

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.