keploy / keploy/keploy

feat: find ways to improve docker experience of keploy.

Open
#2,080 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

HACKTOBERFEST2024 keploy
Dominant language
Go
Stars
18.5k
Forks
2.4k
Avg merge
1d 4h
Merged PRs (30d)
101

Description

Currently, we follow specific instructions to run Keploy in a Docker environment:

  1. Adding Delay in User Application: For fast applications like Golang, we introduce a delay to capture the PID of the container. This PID is crucial for obtaining the PID namespace (inode) and sending it to the kernel space via eBPF maps. The inode can only be extracted once the PID is known, which requires the container to be running. However, the application starts immediately upon container execution, causing us to miss some initial external service calls. These initial calls are crucial because the application maintains connection pooling. But they get filtered as we couldn't identify the application-related calls on time.
  2. TLS Support in Docker: To support TLS in a Docker environment, we currently require users to add a script in the application Dockerfile to inject our custom CA into the application's Docker container. It would be beneficial if Keploy could handle this process internally without needing an external script.
  3. DNS Issues in Docker: There are DNS-related issues in the Docker environment where certain hooks fail to capture DNS calls. This leads to unresolved DNS queries, particularly in older Linux distributions. Addressing this issue is crucial as it significantly impacts the reliability of the application.

Solving this issue can automatically help us in resolving the above-mentioned issues.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue identifies Docker startup and PID capture, TLS CA injection, and DNS hooks as the areas to investigate; no repository files or tests are named. Begin by tracing the Docker/eBPF capture path and reviewing issue #645, then define success as capturing initial pooled calls, supporting TLS without an application script, and resolving DNS calls in affected distributions.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, go, linux
Domain
infrastructure, networking, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.