coder-logstream-kube

command module
v0.0.14 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 2, 2026 License: AGPL-3.0 Imports: 26 Imported by: 0

README

coder-logstream-kube

discord release godoc license

Stream Kubernetes Pod events to the Coder startup logs.

  • Easily determine the reason for a pod provision failure, or why a pod is stuck in a pending state.
  • Visibility into when pods are OOMKilled, or when they are evicted.
  • Filter by namespace, field selector, and label selector to reduce Kubernetes API load.

Log Stream

Usage

Apply the Helm chart to start streaming logs into your Coder instance:

helm repo add coder-logstream-kube https://helm.coder.com/logstream-kube
helm install coder-logstream-kube coder-logstream-kube/coder-logstream-kube \
    --namespace coder \
    --set url=<your-coder-url-including-http-or-https>

Multi-Namespace support

By default, coder-logstream-kube will watch all namespaces in the cluster. To limit which namespaces are monitored, you can specify them in the values.yaml file:

# Watch specific namespaces only
namespaces: ["default", "kube-system"]

# Watch all namespaces (default)
namespaces: []

When namespaces is empty or not specified, the service will monitor all namespaces in the cluster.

Note For additional customization (such as customizing the image, pull secrets, annotations, etc.), you can use the values.yaml file directly.

Your Coder template should be using a kubernetes_deployment resource with wait_for_rollout set to false.

resource "kubernetes_deployment" "hello_world" {
  count = data.coder_workspace.me.start_count
  wait_for_rollout = false
  ...
}

This ensures all pod events will be sent during initialization and startup.

How?

Kubernetes provides an informers API that streams pod and event data from the API server.

coder-logstream-kube listens for pod creation events with containers that have the CODER_AGENT_TOKEN environment variable set. All pod events are streamed as logs to the Coder API using the agent token for authentication.

Custom Certificates

  • SSL_CERT_FILE: Specifies the path to an SSL certificate.
  • SSL_CERT_DIR: Identifies which directory to check for SSL certificate files.

Development

Running Tests

Unit tests can be run with:

go test ./... -race
Integration Tests

Integration tests run against a real Kubernetes cluster using KinD (Kubernetes in Docker).

Prerequisites:

Setup and run:

# Create a KinD cluster
./scripts/kind-setup.sh create

# Run integration tests
go test -tags=integration -v ./...

# Clean up when done
./scripts/kind-setup.sh delete

The integration tests validate:

  • Pod event streaming with real Kubernetes informers
  • ReplicaSet event handling
  • Multi-namespace support
  • Label selector filtering

Documentation

Overview

Package main implements coder-logstream-kube, a Kubernetes controller that streams pod logs to the Coder agent API.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL