Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

render: label the Docker containers and networks render creates

Đang mở
#401 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 3 ngày

@jcogilvie đang làm issue này rồi.

Từ ngày 1/10/2026.

  • #407 của @jcogilvie — đang mở

Đá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
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
docker, go
Lĩnh vực
cli, devops

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ả

enhancement
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: Orphan or runtime-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=crossplane for users.
  • Optionally, a small subcommand (e.g. crossplane render cleanup [--all]) that removes leftovers from dead
    sessions, skipping containers kept with Orphan/runtime-docker-name unless --all is 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

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của crossplane/cli

Tất cả issue của crossplane/cli

Issue tương tự

Thêm issue về Go

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.