render: label the Docker containers and networks render creates
Maintainer thường phản hồi trong vòng 3 ngày
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 48/100
Hướng nghiên cứu
Start by tracing RuntimeDocker.createContainer, the Docker engine's render container creation, and createRenderNetwork. Read the existing cleanup-policy handling and follow how render sessions and networks are created and removed; done means every render-owned container and network carries consistent identifying labels without changing existing cleanup behavior.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
What problem are you facing?
There's no reliable way to tell which Docker containers and networks were created by crossplane render, so
anything it leaves behind can't be found and cleaned up afterwards.
Today the containers render creates carry only the image's own io.crossplane.xpkg:* label, unnamed
Function containers get random Docker names (suspicious_newton, distracted_mestorf, …), and the
crossplane internal render engine container and the crossplane-render-* network carry no labels at all.
Matching by image or name prefix is guesswork, and can catch containers the user started on purpose.
This matters because leftovers happen:
- Some interruptions can never be cleaned up in-process:
kill -9, a crash, an OOM kill, a CI job timeout.
Even with signal handling (#400), these leave resources behind. - Containers deliberately kept with
runtime-docker-cleanup: Orphanorruntime-docker-name(for warm
reuse across invocations) build up over time and can't be told apart from accidental leaks. - Tools built on the render library — for example
crossplane-diff, which renders many times per run —
have the same problem and currently have to track container names themselves.
How could Crossplane help solve your problem?
Add labels to every container and network render creates (in RuntimeDocker.createContainer, the docker
engine's render container, and createRenderNetwork). For example:
| Label | Value | Purpose |
|---|---|---|
render.crossplane.io/managed-by |
crossplane |
Identifies render-owned resources |
render.crossplane.io/session |
per-invocation ID | Scopes cleanup to one run |
render.crossplane.io/cleanup |
the effective cleanup policy (Remove, Stop, Orphan) |
Lets a sweep skip containers the user deliberately kept |
render.crossplane.io/created-by-pid (optional) |
PID | Helps detect leftovers from dead sessions |
That enables:
- A plain
docker ps -a --filter label=render.crossplane.io/managed-by=crossplanefor users. - Optionally, a small subcommand (e.g.
crossplane render cleanup [--all]) that removes leftovers from dead
sessions, skipping containers kept withOrphan/runtime-docker-nameunless--allis given. - Safer network cleanup: before removing a network, render could force-remove containers from its own
session that are still attached, without touching unrelated containers on a user-supplied
--crossplane-docker-network(see #398). - Library consumers could clean up by label and session ID instead of tracking container names themselves.
Adding labels is purely additive and doesn't change behaviour for existing users.
- Ngôn ngữ chính
- Go
- Star
- 20
- Fork
- 33
- Merge trung bình
- 3 ngày 10 giờ
- Pull request đã merge (30 ngày)
- 24
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của crossplane/cli
-
`credsStore` in docker config causes unit test failuresCó thể đã có người làm @sujeito-operator đã nhận 49 ngày trước. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
crossplane/cli#282 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
enhancement
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 42/100
crossplane/cli#410 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
render: interrupting with Ctrl+C (SIGINT/SIGTERM) leaks Function containers, the render container, and the networkCó thể đã có người làm @jcogilvie đã nhận 6 ngày trước. Đang mởbug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
crossplane/cli#400 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
render: Function cleanup failures are invisible without --verboseCó thể đã có người làm @jcogilvie đã nhận 6 ngày trước. Đang mởbug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 70/100
crossplane/cli#399 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
render: docker engine discards the network-removal error, so crossplane-render-* networks leak silentlyCó thể đã có người làm @jcogilvie đã nhận 6 ngày trước. Đang mởbug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
crossplane/cli#398 ·
Maintainer thường phản hồi trong vòng 3 ngày
Tất cả issue của crossplane/cli
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 4 ngày
-
bug needs-acceptance
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
vllm-project/semantic-router#4744 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
ScalingModifiers formula fails with "formula returned non-float result" when expression evaluates to an integerCó thể đã có người làm @Sarthak-Pandey đã nhận hôm nay. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
kedacore/keda#8270 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug from-studio
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 63/100
esengine/DeepSeek-Reasonix#12355 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug]: Gemini provider replaces a client-supplied `extra_content.google.thought_signature` with `skip_thought_signature_validator`, and writes the sentinel on every replayed function call (old turns, all models)Có thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
Maintainer thường phản hồi trong vòng 1 ngày