zmarouf / container-debug-support

Language-runtime support files for debugging

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

experimental

Container Runtime Debugging Support (aka Duct Tape)

Caution: this is work-in-progress

This repository gathers additional dependencies required to debug particular language runtimes with skaffold debug. These dependencies are packaged as a set of container images suitable for use as initContainers on a pod. When executed, a container image copies these dependencies to /dbg/<runtimeId>.

The idea is that skaffold debug will transform k8s manifests to make available any support files required to debug specific language runtimes. For example, a Kubernetes podspec would be transformed to

  • mount a volume on /dbg to hold the debugging support files
  • run one or more of these initContainers to populate the volume
  • mount the volume on the applicable containers as /dbg

Current language runtimes:

  • go: provides Delve
  • python: provides ptvsd, a debug adapter that can be used for VS Code and more, for Python 2.7 and 3.7
  • netcore: provides vsdbg for .NET Core

Development

This directory includes a skaffold.yaml for development of the these duct-tape initContainer images. Each image is expected to be standalone and not require downloading content across the network. To add support for a new language runtime, an image definition should download the necessary files into the container image. The image's entrypoint should then copy those files into place at /dbg/<runtime>. The image should be added to the skaffold.yaml and referenced within test/k8s-test-installation.yaml.

About

Language-runtime support files for debugging

License:Apache License 2.0


Languages

Language:Shell 44.2%Language:Dockerfile 31.4%Language:Batchfile 24.4%