Project

keel

0.0
Repository is archived
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
This gem lets you deploy your Rails application to your Kubernetes cluster.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.11
~> 5.0
~> 10.0

Runtime

~> 0.7
~> 0.2
 Project Readme

Keel

This gem provides a few easy to run rake tasks to deploy your Rails application to a Kubernetes cluster.

Gem Version

Update: March 2019 - We are no longer maintaining this Gem. Please contact epugh@opensourceconnections.com if you would like to take over

Installation

Add this line to your application's Gemfile:

gem 'keel'

And then execute:

$ bundle

Or install it yourself as:

$ gem install keel

History

This gem was extracted out of an existing app, so we've tried to generalize it as much as possible. That said, there might be areas that requirement improvement, PRs are welcomed.

Another OSS project to look at is Grand Central which is a tool for dynamic deployment and cleanup of containers on Kubernetes.

Usage

First, run:

bin/rails g keel:config

to generate the config file and update the attributes with the appropriate values.

Rake Tasks

This gem mostly provides a set of rake tasks that you can see if you execute bin/rake -T keel:

rake keel:deploy[environment,deploy_sha]                            # Deploy the specified SHA to a given environment
rake keel:logs[environment]                                         # Pulls logs for a given environment
rake keel:setup                                                     # Configures the local machine for communication with gcloud and k8s

The first thing you'd want to do after you've setup the configs is to run bin/rake keel:setup to make sure your local environment is setup with the right tools to communicate with GCloud and Kubernetes. Just follow the instructions in the command prompt.

Once you have that setup, you can run bin/rake keel:deploy to deploy your code to one of your environments on the Kubernetes cluster. You can provide all the necessary information by following the instructions in the command prompt.

Generators

Other than the config generator that was mentioned above, this gem provides a couple of handy generators to help you work with Kubernetes:

keel:controller
keel:service

These generators use standard templates to generate a yml file that you can use to configure your Kubernetes setup.

You can find the generated files under the ops/ directory of your application.

LOLz

Naming is hard, so why not have fun with it?

Daniel
Before you commit to that name it, I would like to point out that it is ripe for pun disruption.
Daniel
"You're really keeling it @Youssef"
Matt
crap, our deployment just keeled over
Daniel
"That's a good boy. Down. Sit. Keel."
Doug
We've finally found kubernetes keeler app
Matt
whoa there doug, lets keep this keel
Doug
I know how you keel
Matt
I wonder if we can get an endorsement from my favorite comedy duo?
Matt
Pey and Keele
Daniel
Pen and Keeler
Matt
we should probably keel this before it gets out of hand

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/o19s/keel. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

Contributors

License

The gem is available as open source under the terms of the MIT License.