0.0
No release in over 3 years
Used to connect Legion to Kubernetes
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Runtime

 Project Readme

lex-kubernetes

Kubernetes integration for LegionIO. Manage pods, deployments, services, and namespaces from within Legion task chains or as a standalone client library.

Installation

gem install lex-kubernetes

Or add to your Gemfile:

gem 'lex-kubernetes'

Standalone Usage

require 'legion/extensions/kubernetes'

client = Legion::Extensions::Kubernetes::Client.new(
  server: 'https://k8s.example.com:6443',
  token: 'my-service-account-token',
  namespace: 'production'
)

# Pods
client.list_pods(namespace: 'default')
client.get_pod(name: 'web-abc123', namespace: 'default')
client.pod_logs(name: 'web-abc123', namespace: 'default', container: 'app')
client.delete_pod(name: 'web-abc123', namespace: 'default')

# Deployments
client.list_deployments(namespace: 'default')
client.scale_deployment(name: 'web', replicas: 3, namespace: 'default')
client.restart_deployment(name: 'web', namespace: 'default')

# Services
client.list_services(namespace: 'default')
client.get_service(name: 'web-svc', namespace: 'default')

# Namespaces
client.list_namespaces
client.get_namespace(name: 'production')

Runners

Pods

Method Parameters Description
list_pods namespace: 'default' List all pods in a namespace
get_pod name:, namespace: 'default' Get pod details
delete_pod name:, namespace: 'default' Delete a pod
pod_logs name:, namespace: 'default', container: Fetch pod logs

Deployments

Method Parameters Description
list_deployments namespace: 'default' List all deployments
get_deployment name:, namespace: 'default' Get deployment details
scale_deployment name:, replicas:, namespace: 'default' Scale replicas
restart_deployment name:, namespace: 'default' Rolling restart

Services

Method Parameters Description
list_services namespace: 'default' List all services
get_service name:, namespace: 'default' Get service details

Namespaces

Method Parameters Description
list_namespaces List all namespaces
get_namespace name: Get namespace details

Configuration

{
  "lex-kubernetes": {
    "server": "https://k8s.example.com:6443",
    "token": "vault://secret/k8s#token",
    "namespace": "default"
  }
}

Requirements

  • Ruby >= 3.4
  • kubeclient ~> 4.0
  • Kubernetes API server accessible from the Legion runtime

License

MIT