Skip to content

LegionIO/lex-kubernetes

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

About

Legion extension for Kubernetes API

Resources

License

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages