- Notifications
You must be signed in to change notification settings - Fork6
Stream Kubernetes Pod events to the Coder startup logs
License
coder/coder-logstream-kube
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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.
- Support for watching multiple namespaces or all namespaces cluster-wide.
Apply the Helm chart to start streaming logs into your Coder instance:
helm repo add coder-logstream-kube https://helm.coder.com/logstream-kubehelm install coder-logstream-kube coder-logstream-kube/coder-logstream-kube \ --namespace coder \ --set url=<your-coder-url-including-http-or-https>
By default,coder-logstream-kube
watches pods in the namespace where it's deployed. You can configure it to watch multiple namespaces or all namespaces:
helm install coder-logstream-kube coder-logstream-kube/coder-logstream-kube \ --namespace coder \ --set url=<your-coder-url> \ --set namespaces="namespace1,namespace2,namespace3"
helm install coder-logstream-kube coder-logstream-kube/coder-logstream-kube \ --namespace coder \ --set url=<your-coder-url> \ --set namespaces=""
When watching multiple namespaces or all namespaces, the chart automatically creates ClusterRole and ClusterRoleBinding resources instead of namespace-scoped Role and RoleBinding.
You can also configure namespaces using theCODER_NAMESPACE
environment variable:
- Single namespace:
CODER_NAMESPACE=my-namespace
- Multiple namespaces:
CODER_NAMESPACE=ns1,ns2,ns3
- All namespaces:
CODER_NAMESPACE=""
(empty string)
NoteFor additional customization (such as customizing the image, pull secrets, annotations, etc.), you can use thevalues.yaml file directly.
Your Coder template should be using akubernetes_deployment
resource withwait_for_rollout
set tofalse
.
resource"kubernetes_deployment""hello_world" {count=data.coder_workspace.me.start_countwait_for_rollout=false...}
This ensures all pod events will be sent during initialization and startup.
Kubernetes provides aninformers API that streams pod and event data from the API server.
coder-logstream-kube
listens for pod creation events with containers that have theCODER_AGENT_TOKEN
environment variable set. All pod events are streamed as logs to the Coder API using the agent token for authentication.
When configured for multiple namespaces, the application creates separate informers for each specified namespace. When configured to watch all namespaces (empty namespace list), it uses cluster-wide informers.
SSL_CERT_FILE
: Specifies the path to an SSL certificate.SSL_CERT_DIR
: Identifies which directory to check for SSL certificate files.
The required permissions depend on the scope of namespaces being watched:
When watching a single namespace, the application uses namespace-scoped permissions:
pods
: get, watch, listevents
: get, watch, listreplicasets
: get, watch, list
When watching multiple namespaces or all namespaces, the application requires cluster-wide permissions with the same resource access but across all namespaces.
The Helm chart automatically determines which type of RBAC resources to create based on your configuration.
About
Stream Kubernetes Pod events to the Coder startup logs
Resources
License
Code of conduct
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.