111 sao GitHub và vẫn tăng — traefik/ingress-nginx-migration là dự án Go mà TopGit đang theo dõi trên nền tảng. Ingress Nginx Migration
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
Download the appropriate binary for your platform from the releases page.
Via Web Interface:
Open the migration report in your browser
Click the "Share Report" button that appears in the report interface (If unsupported ingresses or annotations are detected)
Optionally view the exact data to be sent before confirming
Note: The "Share Report" button only appears when there are compatibility issues to report.
If your analysis shows all ingresses are compatible, no sharing option will be displayed.
Usage
NAME:
ingress-nginx-migration - Analyze NGINX Ingresses to build a migration report to Traefik
USAGE:
ingress-nginx-migration [global options] [command [command options]]
COMMANDS:
version Shows the current version
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--addr string Defines the address to listen on for serving the migration report. (default: ":8080") [$ADDR]
--kubeconfig string Defines the kubeconfig file to use to connect to the Kubernetes cluster. [$KUBECONFIG]
--namespaces string [ --namespaces string ] Defines the namespaces to analyze. When empty, all namespaces are analyzed. [$NAMESPACES]
--ingress-class string Defines the name of the ingress class this controller satisfies. [$INGRESS_CLASS]
--controller-class string Defines the Ingress Controller class to analyze. When empty, 'k8s.io/ingress-nginx' is used. [$CONTROLLER_CLASS]
--watch-ingress-without-class Defines if Ingress Controller should also watch for Ingresses without an IngressClass or the annotation specified. [$WATCH_INGRESS_WITHOUT_CLASS]
--ingress-class-by-name Defines if Ingress Controller should watch for Ingress Class by Name together with Controller Class. [$INGRESS_CLASS_BY_NAME]
--format string Output the report once in this format ('json' or 'markdown') and exit, instead of serving the HTML report. When empty, the HTML report is served. [$FORMAT]
--output-file string Write the one-shot report to this file instead of stdout. Requires --format. Overwrites an existing file. [$OUTPUT_FILE]
--summary Omit the per-Ingress detail from the report. Only valid with --format markdown. [$SUMMARY]
--help, -h Show help
[!TIP]
Quick Start: Run the tool with your kubeconfig:
The --format flag allows you to output the generated report to stdout or a file, in either Markdown or JSON format.
This can be useful for use in automations and keeping track of an ongoing migration.
# Machine-readable JSON to stdout:
ingress-nginx-migration --kubeconfig ~/.kube/config --format json
# Full human-readable Markdown:
ingress-nginx-migration --kubeconfig ~/.kube/config --format markdown
# Compact Markdown status (counts only, no per-Ingress detail):
ingress-nginx-migration --kubeconfig ~/.kube/config --format markdown --summary
By default, these flags will write to stdout (default logs will be redirected to stderr). They can be combined with the --output-file flag in order to write to a file instead.
Notes:
--format json emits the full report, including the names/namespaces of
Ingresses that need manual migration. It also exposes a hash field as a digest
of the report content excluding the timestamp allowing you to detect
changes between runs without relying on the generationDate.
--summary is Markdown-only; combining it with --format json will result in an error.
In one-shot mode logs go to stderr, so stdout carries only the report.
The tool only exits non-zero only on real errors (no cluster
access, bad flags, write failure), never because Ingresses are incompatible.
You can Gate a CI job on full compatibility by inspecting the JSON, e.g. with jq:
The Ingress NGINX Migration requires specific read-only permissions to analyze your cluster's Ingress resources.
The tool is principally designed to be run externally by SREs and system administrators who have access to a Kubernetes cluster via kubeconfig.
But the same requirement would apply for an In-Cluster pod approach.
Your kubeconfig user or service account must have the following permissions:
API Group
Resources
Verbs
Scope
networking.k8s.io/v1
ingressclasses
list, get, watch
Cluster-wide
networking.k8s.io/v1
ingresses
list, get, watch
Namespace-scoped*
[!NOTE]
Namespace Scope:
The tool supports the --namespaces flag.
If specific namespaces are provided, permissions are only required for those namespaces.
If no namespaces are specified, the tool will attempt to analyze all namespaces, and requiring permission across all namespaces for Ingresses.
Why These Permissions?
The tool uses Kubernetes client-go informers to efficiently cache and monitor Ingress and IngressClass resources.
Informers require list, get, and watch permissions to:
list: Retrieve all existing resources for initial analysis
get: Fetch individual resources when needed
watch: Receive updates when resources change (for report refresh functionality)
All operations are read-only - the tool never modifies any cluster resources.
Send Report Feature
The Ingress NGINX Migration tool includes an optional feature to share anonymized usage statistics with Traefik Labs.
This helps the Traefik team understand real-world NGINX Ingress usage patterns and prioritize compatibility improvements for the migration process.
The data is transmitted securely over HTTPS to Traefik Labs.
Privacy and Data Protection
Important: No sensitive data is transmitted.
The tool only sends aggregated statistics and counts - never actual ingress configurations, resource names, namespaces, or any other identifying information from your cluster.
Data Transmitted
When you choose to share your report, the following anonymized data is sent:
Click the "Share Report" button in the report interface
Optionally view the exact data to be sent before confirming
Utility endpoints exposed by the Ingress NGINX Migration tool
Method
Path
Description
GET
/
Serve the HTML migration report
PUT
/send
Send usage data to Traefik Labs
PUT
/update
Update the migration report
E2E Tests
The e2e tests spin up a k3s cluster using testcontainers and deploy both Traefik and NGINX Ingress controllers to verify annotation compatibility.
Running
The TRAEFIK_IMAGE environment variable is required. It must point to a Traefik image available in your local Docker daemon that includes the kubernetesIngressNginx provider:
TRAEFIK_IMAGE=traefik/traefik:v100.0.0 make e2e-test
Reusing the k3s Cluster
Creating the k3s cluster from scratch takes ~60-90s. Set E2E_REUSE_CLUSTER=true to keep the cluster running between test runs:
# First run creates the cluster (~90s):
E2E_REUSE_CLUSTER=true TRAEFIK_IMAGE=traefik/traefik:v100.0.0 make e2e-test
# Subsequent runs reuse it (~20s):
E2E_REUSE_CLUSTER=true TRAEFIK_IMAGE=traefik/traefik:v100.0.0 make e2e-test
To force a fresh cluster (e.g. after changing TRAEFIK_IMAGE):
docker rm -f e2e-k3s-cluster
[!NOTE]
The Traefik image is not reloaded when reusing the cluster. If you change TRAEFIK_IMAGE, remove the container first.
Đọc thêm về traefik/ingress-nginx-migration ở đâu?
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/traefik/ingress-nginx-migration là nguồn chính thức.
traefik/ingress-nginx-migration có phải mã nguồn mở không?
Có — traefik/ingress-nginx-migration phát hành theo license Apache-2.0, nghĩa là mã nguồn mở để đọc, fork và (tùy license) tái sử dụng. Mã: github.com/traefik/ingress-nginx-migration.
traefik/ingress-nginx-migration có trang demo không?
Dự án có trang chủ ở https://ingressnginxmigration.org/. Tab "Readme" ở trang này thường có ảnh chụp và hướng dẫn bắt đầu nhanh.
traefik/ingress-nginx-migration dùng license gì?
traefik/ingress-nginx-migration phát hành theo license Apache-2.0. Nên mở file LICENSE trên GitHub để xác nhận — license metadata đôi khi lệch với thực tế dự án.
traefik/ingress-nginx-migration là gì?
traefik/ingress-nginx-migration (traefik/ingress-nginx-migration) là dự án Go trên GitHub. Theo mô tả gốc: Ingress Nginx Migration
Đọc đầy đủ README ở tab phía trên.
Muốn nghe thêm một ý kiến về ingress-nginx-migration?
Hỏi một AI đọc được trang này — một cú bấm là có ngay nhận định về ingress-nginx-migration.