diff --git a/.github/workflows/run.yml b/.github/workflows/run.yml index 4995616..999eda2 100644 --- a/.github/workflows/run.yml +++ b/.github/workflows/run.yml @@ -26,17 +26,11 @@ jobs: TELEGRAM_CHAT_ID: ${{ secrets.TELE_CHAT_ID }} - name: My GitHub Status - uses: pacoxu/github-repos-stats@main + uses: pacoxu/github-repos-stats@multi-clusters - name: Push README - uses: github-actions-x/commit@v2.6 - with: - github-token: ${{ secrets.G_T }} - # In this example, you can also use the ${{ secrets.GITHUB_TOKEN }} variable - # Permissions for the GITHUB_TOKEN : https://docs.github.com/en/free-pro-team@latest/actions/reference/authentication-in-a-workflow#permissions-for-the-github_token + run: | + git config --local user.email "${{ env.GITHUB_EMAIL }}" + git config --local user.name "${{ env.GITHUB_NAME }}" + git commit -a -m 'docs: update readme.md' + git push - # If you need more precise Token permission control , you can create a personal access token and set it as a secret in your repository . - commit-message: "Update README (GitHub Status)" - files: README.md - rebase: "true" - name: ${{ env.GITHUB_NAME }} - email: ${{ env.GITHUB_EMAIL }} diff --git a/README.md b/README.md index 04b2751..6aa5133 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,46 @@ -# github-repos-stats +# Kubernetes Multi-Cluster related Projects -# watching repositories status ## The CNCF repos -| ID | REPO | STARS | UPDATEDAT | CREATEDAT | FORKSCOUNT | -|----|-----------------------------------------------------------------|-------|------------|------------|------------| -| 1 | [kubesphere](https://github.com/kubesphere/kubesphere) | 8948 | 2022-02-24 | 2018-04-21 | 1349 | -| 2 | [Dragonfly](https://github.com/dragonflyoss/Dragonfly) | 5742 | 2022-02-21 | 2017-11-15 | 755 | -| 3 | [bfe](https://github.com/bfenetworks/bfe) | 5305 | 2022-02-24 | 2019-07-31 | 870 | -| 4 | [kubeedge](https://github.com/kubeedge/kubeedge) | 4737 | 2022-02-24 | 2018-09-28 | 1247 | -| 5 | [chaos-mesh](https://github.com/chaos-mesh/chaos-mesh) | 4534 | 2022-02-24 | 2019-09-04 | 565 | -| 6 | [kubevela](https://github.com/oam-dev/kubevela) | 3321 | 2022-02-24 | 2020-07-03 | 453 | -| 7 | [volcano](https://github.com/volcano-sh/volcano) | 2209 | 2022-02-24 | 2019-03-14 | 483 | -| 8 | [karmada](https://github.com/karmada-io/karmada) | 2026 | 2022-02-24 | 2020-11-10 | 354 | -| 9 | [kube-ovn](https://github.com/kubeovn/kube-ovn) | 1150 | 2022-02-24 | 2019-03-22 | 280 | -| 10 | [openyurt](https://github.com/openyurtio/openyurt) | 1123 | 2022-02-24 | 2020-05-21 | 258 | -| 11 | [openelb](https://github.com/openelb/openelb) | 926 | 2022-02-24 | 2019-02-01 | 126 | -| 12 | [clusternet](https://github.com/clusternet/clusternet) | 824 | 2022-02-24 | 2021-06-07 | 179 | -| 13 | [superedge](https://github.com/superedge/superedge) | 759 | 2022-02-24 | 2020-12-19 | 173 | -| 14 | [OpenFunction](https://github.com/OpenFunction/OpenFunction) | 394 | 2022-02-24 | 2020-12-17 | 52 | -| 15 | [fabedge](https://github.com/FabEdge/fabedge) | 335 | 2022-02-24 | 2021-07-16 | 38 | -| 16 | [piraeus](https://github.com/piraeusdatastore/piraeus) | 300 | 2022-02-19 | 2019-12-05 | 36 | -| 17 | [Dragonfly2](https://github.com/dragonflyoss/Dragonfly2) | 298 | 2022-02-24 | 2020-11-04 | 63 | -| 18 | [carina](https://github.com/carina-io/carina) | 256 | 2022-02-24 | 2021-08-18 | 27 | -| 19 | [merbridge](https://github.com/merbridge/merbridge) | 180 | 2022-02-24 | 2022-01-12 | 22 | -| 20 | [kubernetes-lts](https://github.com/klts-io/kubernetes-lts) | 138 | 2022-02-21 | 2021-07-16 | 18 | -| 21 | [clusterpedia](https://github.com/clusterpedia-io/clusterpedia) | 135 | 2022-02-24 | 2021-10-08 | 22 | -| 22 | [ferry](https://github.com/ferry-proxy/ferry) | 8 | 2022-02-18 | 2021-10-18 | 1 | +| ID | REPO | STARS | UPDATEDAT | CREATEDAT | FORKSCOUNT | DESCRIPTIONS | +|----|---------------------------------------------------------------------------------------------|-------|------------|------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| 1 | [istio](https://github.com/istio/istio) | 36165 | 2024-11-29 | 2016-11-18 | 7790 | Connect, secure, control, and observe services. | +| 2 | [cilium](https://github.com/cilium/cilium) | 20347 | 2024-11-29 | 2015-12-16 | 2980 | eBPF-based Networking, Security, and Observability | +| 3 | [kubespray](https://github.com/kubernetes-sigs/kubespray) | 16219 | 2024-11-29 | 2015-10-03 | 6497 | Deploy a Production Ready Kubernetes Cluster | +| 4 | [kops](https://github.com/kubernetes/kops) | 15982 | 2024-11-29 | 2016-06-27 | 4653 | Kubernetes Operations (kOps) - Production Grade k8s Installation, Upgrades and Management | +| 5 | [crossplane](https://github.com/crossplane/crossplane) | 9593 | 2024-11-29 | 2018-09-08 | 965 | The Cloud Native Control Plane | +| 6 | [kubevela](https://github.com/kubevela/kubevela) | 6460 | 2024-11-29 | 2020-07-03 | 895 | The Modern Application Platform. | +| 7 | [karmada](https://github.com/karmada-io/karmada) | 4510 | 2024-11-29 | 2020-11-10 | 892 | Open, Multi-Cloud, Multi-Cluster Kubernetes Orchestration | +| 8 | [wayne](https://github.com/Qihoo360/wayne) | 3709 | 2024-11-29 | 2018-11-13 | 832 | Kubernetes multi-cluster management and publishing platform | +| 9 | [cluster-api](https://github.com/kubernetes-sigs/cluster-api) | 3593 | 2024-11-29 | 2018-03-07 | 1325 | Home for Cluster API, a subproject of sig-cluster-lifecycle | +| 10 | [cloudpods](https://github.com/yunionio/cloudpods) | 2606 | 2024-11-28 | 2018-07-27 | 535 | A cloud-native open-source unified multi-cloud and hybrid-cloud platform. 开源、云原生的多云管理及混合云融合平台 | +| 11 | [kubefed](https://github.com/kubernetes-retired/kubefed) | 2499 | 2024-11-26 | 2018-01-09 | 531 | Kubernetes Cluster Federation | +| 12 | [submariner](https://github.com/submariner-io/submariner) | 2435 | 2024-11-27 | 2019-03-11 | 193 | Networking component for interconnecting Pods and Services across Kubernetes clusters. | +| 13 | [choerodon](https://github.com/open-hand/choerodon) | 2390 | 2024-11-28 | 2018-01-10 | 374 | Open Source Multi-Cloud Integrated Platform | +| 14 | [kueue](https://github.com/kubernetes-sigs/kueue) | 1478 | 2024-11-29 | 2022-02-16 | 264 | Kubernetes-native Job Queueing | +| 15 | [tke](https://github.com/tkestack/tke) | 1476 | 2024-11-28 | 2019-11-06 | 335 | Native Kubernetes container management platform supporting multi-tenant and multi-cluster | +| 16 | [clusternet](https://github.com/clusternet/clusternet) | 1366 | 2024-11-28 | 2021-06-07 | 198 | [CNCF Sandbox Project] Managing your Kubernetes clusters (including public, private, edge, etc.) as easily as visiting the Internet | +| 17 | [kubeadmiral](https://github.com/kubewharf/kubeadmiral) | 818 | 2024-11-28 | 2023-03-28 | 99 | Multi-Cluster Kubernetes Orchestration | +| 18 | [clusterpedia](https://github.com/clusterpedia-io/clusterpedia) | 800 | 2024-11-29 | 2021-10-08 | 121 | The Encyclopedia of Kubernetes clusters | +| 19 | [ocm](https://github.com/open-cluster-management-io/ocm) | 772 | 2024-11-28 | 2021-09-30 | 95 | Core components in the OCM project. Report here if you found any issues in OCM. | +| 20 | [skupper](https://github.com/skupperproject/skupper) | 597 | 2024-11-28 | 2020-04-06 | 75 | Skupper is an implementation of a Virtual Application Network, enabling rich hybrid cloud communication. | +| 21 | [flux2-multi-tenancy](https://github.com/fluxcd/flux2-multi-tenancy) | 504 | 2024-11-29 | 2020-11-27 | 250 | Manage multi-tenant clusters with Flux | +| 22 | [armada](https://github.com/armadaproject/armada) | 485 | 2024-11-28 | 2019-06-19 | 135 | A multi-cluster batch queuing system for high-throughput workloads on Kubernetes. | +| 23 | [kubean](https://github.com/kubean-io/kubean) | 459 | 2024-11-29 | 2022-07-05 | 35 | :seedling: Product ready cluster lifecycle management toolchains based on kubespray and other cluster LCM engine. | +| 24 | [k8s-multicluster-ingress](https://github.com/GoogleCloudPlatform/k8s-multicluster-ingress) | 378 | 2024-11-16 | 2017-10-19 | 68 | kubemci: Command line tool to configure L7 load balancers using multiple kubernetes clusters | +| 25 | [kubestellar](https://github.com/kubestellar/kubestellar) | 288 | 2024-11-29 | 2022-11-03 | 68 | KubeStellar - a flexible solution for challenges associated with multi-cluster configuration management for edge, multi-cloud, and hybrid cloud | +| 26 | [mcs-api](https://github.com/kubernetes-sigs/mcs-api) | 216 | 2024-11-15 | 2020-08-07 | 43 | This repository hosts the Multi-Cluster Service APIs. Providers can import packages in this repo to ensure their multi-cluster service controller implementations will be compatible with MCS data planes. | +| 27 | [Beetle](https://github.com/Clivern/Beetle) | 169 | 2024-11-18 | 2020-02-01 | 14 | 🔥 Kubernetes multi-cluster deployment automation service. | +| 28 | [ferry](https://github.com/ferryproxy/ferry) | 104 | 2024-09-15 | 2021-10-18 | 5 | Ferry is a Kubernetes multi-cluster communication component that eliminates communication differences between clusters as if they were in a single cluster, regardless of the network environment those clusters are in. | +| 29 | [tower](https://github.com/kubesphere/tower) | 92 | 2024-10-10 | 2020-02-18 | 34 | Proxy for multiple Kubernetes cluster communication | +| 30 | [fleet](https://github.com/Azure/fleet) | 84 | 2024-11-27 | 2022-05-03 | 25 | Multi-cluster core | +| 31 | [work-api](https://github.com/kubernetes-sigs/work-api) | 60 | 2024-11-25 | 2021-02-01 | 22 | Kubernetes Work API | +| 32 | [dashboard](https://github.com/kore3lab/dashboard) | 38 | 2024-11-17 | 2020-04-21 | 15 | Kubernetes multi-clusters dashboard | +| 33 | [about-api](https://github.com/kubernetes-sigs/about-api) | 31 | 2024-11-22 | 2021-04-06 | 12 | A CRD for arbitrary properties about a cluster | +| 34 | [ctl](https://github.com/wish/ctl) | 31 | 2024-06-13 | 2019-07-16 | 6 | multi-cluster kubectl | +| 35 | [fake-k8s](https://github.com/wzshiming/fake-k8s) | 18 | 2024-05-13 | 2020-09-10 | 1 | [Moved to https://github.com/kubernetes-sigs/kwok] fake-k8s is a tool for running Fake Kubernetes clusters, It can be used as an alternative to Kind in some scenarios where you don’t need to actually run the Pod | +| 36 | [multicluster-dns](https://github.com/coredns/multicluster-dns) | 11 | 2022-04-30 | 2019-11-14 | 3 | An example of how to use the kubernetai plugin to do multicluster DNS-based service discovery | +| 37 | [cluster-reconciler](https://github.com/vllry/cluster-reconciler) | 6 | 2024-06-04 | 2020-04-14 | 4 | cluster-reconciler | diff --git a/github.go b/github.go index 0387beb..1b94d0d 100644 --- a/github.go +++ b/github.go @@ -98,6 +98,7 @@ func makeMdTable(data [][]string, header []string) string { table.SetHeader(header) table.SetBorders(tablewriter.Border{Left: true, Top: false, Right: true, Bottom: false}) table.SetCenterSeparator("|") + table.SetColWidth(300) table.AppendBulk(data) table.Render() return tableString.String() @@ -121,10 +122,27 @@ func makeReposString(repos []*github.Repository) string { reposData := [][]string{} for i, repo := range repos { repoWithLink := fmt.Sprintf("[%s](%s)", *repo.Name, *repo.HTMLURL) - reposData = append(reposData, []string{strconv.Itoa(i + 1), repoWithLink, strconv.Itoa(*repo.StargazersCount), (*repo.UpdatedAt).String()[:10], (*repo.CreatedAt).String()[:10], strconv.Itoa(*repo.ForksCount)}) + var description string + if repo.Description == nil { + description = *repo.Name + } else { + description = *repo.Description + } + // *description = strings.Replace(*description, "\n", "
", -1) + reposData = append( + reposData, + []string{ + strconv.Itoa(i + 1), + repoWithLink, strconv.Itoa(*repo.StargazersCount), + (*repo.UpdatedAt).String()[:10], + (*repo.CreatedAt).String()[:10], + strconv.Itoa(*repo.ForksCount), + description, + }, + ) } // reposData = append(reposData, []string{"sum", "", "", "", "", strconv.Itoa(total)}) - reposString := makeMdTable(reposData, []string{"ID", "Repo", "Stars", "UpdatedAt", "CreatedAt", "ForksCount"}) + reposString := makeMdTable(reposData, []string{"ID", "Repo", "Stars", "UpdatedAt", "CreatedAt", "ForksCount", "Descriptions"}) return reposTitle + reposString + "\n" } diff --git a/projects.json b/projects.json index af697b9..08b3a3f 100644 --- a/projects.json +++ b/projects.json @@ -1,28 +1,43 @@ { "spec": { "repos": { - "piraeusdatastore/piraeus": "", - "merbridge/merbridge": "", - "clusterpedia-io/clusterpedia": "", - "klts-io/kubernetes-lts": "", - "ferry-proxy/ferry": "", - "kubeedge/kubeedge": "", - "chaos-mesh/chaos-mesh": "", - "karmada-io/karmada": "", - "kubesphere/kubesphere": "", - "volcano-sh/volcano": "", - "kubeovn/kube-ovn": "", - "OpenFunction/OpenFunction": "", - "clusternet/clusternet": "", - "FabEdge/fabedge": "", - "superedge/superedge": "", - "carina-io/carina": "", - "bfenetworks/bfe": "", - "openelb/openelb": "", - "oam-dev/kubevela": "", - "openyurtio/openyurt": "", - "dragonflyoss/Dragonfly": "", - "dragonflyoss/Dragonfly2": "" + "clusterpedia-io/clusterpedia": "an encyclopedia of multi-cluster to synchronize, search for, and simply control multi-cluster resources", + "karmada-io/karmada": "Open, Multi-Cloud, Multi-Cluster Kubernetes Orchestration", + "clusternet/clusternet": "multi cluster management", + "kubernetes-sigs/cluster-api": "Cluster API is a Kubernetes sub-project focused on providing declarative APIs and tooling to simplify provisioning, upgrading, and operating multiple Kubernetes clusters.", + "kubernetes-sigs/kubefed": "multi cluster federation", + "submariner-io/submariner": "Connect all your Kubernetes clusters, no matter where they are in the world.", + "kubernetes-sigs/mcs-api": "Multi-Cluster Service APIs.", + "ferry-proxy/ferry": "proxy & tunnel for multi cluster communicaiton", + "kubesphere/tower": "proxy for multi cluster communication", + "open-cluster-management-io/OCM": "", + "G-Research/armada": "A multi-cluster batch queuing system for high-throughput workloads", + "Qihoo360/wayne": "Kubernetes multi-cluster management and publishing platform", + "GoogleCloudPlatform/k8s-multicluster-ingress": "kubemci: Command line tool to configure L7 load balancers using multiple kubernetes clusters", + "tkestack/tke": "Native Kubernetes container management platform supporting multi-tenant and multi-cluster", + "fluxcd/flux2-multi-tenancy": "Manage multi-tenant clusters with Flux", + "Clivern/Beetle": "🔥 Kubernetes multi-cluster deployment automation service.", + "kubernetes-sigs/about-api": "A CRD for arbitrary properties about a cluster", + "kubernetes-sigs/work-api": "Kubernetes Work API: a common API to distribute workload to multiple clusters", + "vllry/cluster-reconciler": "This is prototype for reconciling the desired state of a cluster, for arbitrary resources.", + "coredns/multicluster-dns": "An example of how to use the kubernetai plugin to do multicluster DNS-based service discovery", + "wish/ctl": "multi-cluster kubectl", + "skupperproject/skupper": "Multicloud communication for Kubernetes", + "wzshiming/fake-k8s": "multi clusters simulator for testing", + "crossplane/crossplane": "", + "kore3lab/kore-dashboard": "", + "kubevela/kubevela": "", + "yunionio/cloudpods": "", + "open-hand/choerodon": "", + "istio/istio": "", + "cilium/cilium": "", + "kubernetes/kops": "multi-cluster installer", + "kubernetes-sigs/kubespray": "multi-cluster installer", + "kubean-io/kubean": "multi-cluster installer", + "Azure/fleet": "", + "kubernetes-sigs/kueue": "", + "kubestellar/kubestellar": "", + "kubewharf/kubeadmiral": "" } }, "status": {}