active-job-kubernetes

Rails Active Job adapter to run background jobs using Kubernetes Jobs.

Installation

Add this line to your application's Gemfile:

gem 'active_job_kubernetes'

And then execute:

bundle install

Or install it yourself as:

gem install active-job-kubernetes

Usage

class HelloWorldJob < ApplicationJob
  self.queue_adapter = :kubernetes

  def perform
    puts 'Hello, world'
  end

  def manifest
    YAML.safe_load(
      "        apiVersion: batch/v1\n        kind: Job\n        metadata:\n          generatedName: hello-world\n        spec:\n          template:\n            metadata:\n              name: hello-world\n            spec:\n              restartPolicy: Never\n              containers:\n                - name: worker\n                  image: example:latest\n                  command: [\"rake\"]\n                  args: [\"active_job_kubernetes:run_job\"]\n      MANIFEST\n    )\n  end\n\n  def kubeclient(scope)\n    endpoint = '' # cluster endpoint\n\n    Kubeclient::Client.new(endpoint + scope, 'v1')\n  end\nend\n"

Development

After checking out the repo, run bin/setup to install dependencies. 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/omjadas/active-job-kubernetes.

License

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