about summary refs log tree commit diff
path: root/pkgs/applications/networking/cluster
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/networking/cluster')
-rw-r--r--pkgs/applications/networking/cluster/aiac/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/argo/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/argocd-autopilot/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/argocd/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/arkade/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/assign-lb-ip/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/atlantis/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/atmos/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/civo/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/clusterctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/cmctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/cni/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/containerpilot/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/dnsname-cni/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/docker-machine/kvm2.nix1
-rw-r--r--pkgs/applications/networking/cluster/driftctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/falcoctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/fetchit/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/flink/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/fluxctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/fn-cli/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/func/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/gatekeeper/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/glooctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/hashi-up/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/helm-dashboard/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/helm-docs/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/helmfile/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/helmsman/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/hetzner-kube/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/hubble/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/istioctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/jx/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/k3d/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/k3sup/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/k8sgpt/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/karmor/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kbst/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kconf/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kfilt/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kluctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kn/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kompose/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kontemplate/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kops/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kpt/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/ktop/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/ktunnel/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kube-capacity/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kube-router/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kube-score/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubebuilder/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubecfg/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubecolor/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubeconform/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubectl-cnpg/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubectl-doctor/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubectl-example/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubectl-explore/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubectl-gadget/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubectl-images/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubectl-node-shell/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubectl-tree/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubectl-view-secret/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubedog/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubefirst/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubelogin-oidc/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubelogin/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubemqctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubent/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubergrunt/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubernetes-metrics-server/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubernix/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubeseal/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubeshark/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubespy/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubetail/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubeval/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubexit/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kyverno/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/levant/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/linkerd/generic.nix1
-rw-r--r--pkgs/applications/networking/cluster/minikube/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/nerdctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/nomad-autoscaler/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/nomad-driver-podman/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/nomad/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/nova/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/ocm/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/odo/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/pig/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/pinniped/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/pluto/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/popeye/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/pv-migrate/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/rancher/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/rke/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/roxctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/starboard/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/stern/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/taktuk/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/talosctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/temporalite/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/terraform-backend-git/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/terraform-compliance/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/terraform-docs/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/terraform-inventory/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/terragrunt/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/terraspace/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/tf-summarize/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/tfautomv/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/tfswitch/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/tfupdate/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/tgswitch/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/tilt/binary.nix1
-rw-r--r--pkgs/applications/networking/cluster/timoni/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/tubekit/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/vcluster/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/waagent/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/waypoint/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/werf/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/zarf/default.nix1
124 files changed, 124 insertions, 0 deletions
diff --git a/pkgs/applications/networking/cluster/aiac/default.nix b/pkgs/applications/networking/cluster/aiac/default.nix
index 995e00a639485..79bf754fa3e28 100644
--- a/pkgs/applications/networking/cluster/aiac/default.nix
+++ b/pkgs/applications/networking/cluster/aiac/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = ''Artificial Intelligence Infrastructure-as-Code Generator.'';
+    mainProgram = "aiac";
     homepage = "https://github.com/gofireflyio/aiac/";
     license = licenses.asl20;
     maintainers = with maintainers; [ qjoly ];
diff --git a/pkgs/applications/networking/cluster/argo/default.nix b/pkgs/applications/networking/cluster/argo/default.nix
index a76c04324ec0a..8a6e3ac65f748 100644
--- a/pkgs/applications/networking/cluster/argo/default.nix
+++ b/pkgs/applications/networking/cluster/argo/default.nix
@@ -84,6 +84,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Container native workflow engine for Kubernetes";
+    mainProgram = "argo";
     homepage = "https://github.com/argoproj/argo";
     changelog = "https://github.com/argoproj/argo-workflows/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/argocd-autopilot/default.nix b/pkgs/applications/networking/cluster/argocd-autopilot/default.nix
index 3b0250c5f9a96..55028845e2cb1 100644
--- a/pkgs/applications/networking/cluster/argocd-autopilot/default.nix
+++ b/pkgs/applications/networking/cluster/argocd-autopilot/default.nix
@@ -46,6 +46,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "ArgoCD Autopilot";
+    mainProgram = "argocd-autopilot";
     downloadPage = "https://github.com/argoproj-labs/argocd-autopilot";
     homepage = "https://argocd-autopilot.readthedocs.io/en/stable/";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index 73422872a7652..3139252e65c75 100644
--- a/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/pkgs/applications/networking/cluster/argocd/default.nix
@@ -56,6 +56,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Declarative continuous deployment for Kubernetes";
+    mainProgram = "argocd";
     downloadPage = "https://github.com/argoproj/argo-cd";
     homepage = "https://argo-cd.readthedocs.io/en/stable/";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/arkade/default.nix b/pkgs/applications/networking/cluster/arkade/default.nix
index 5ab103611b352..b921d080a478a 100644
--- a/pkgs/applications/networking/cluster/arkade/default.nix
+++ b/pkgs/applications/networking/cluster/arkade/default.nix
@@ -51,6 +51,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/alexellis/arkade";
     description = "Open Source Kubernetes Marketplace";
+    mainProgram = "arkade";
     license = licenses.mit;
     maintainers = with maintainers; [ welteki techknowlogick qjoly ];
   };
diff --git a/pkgs/applications/networking/cluster/assign-lb-ip/default.nix b/pkgs/applications/networking/cluster/assign-lb-ip/default.nix
index 7b85443db3f04..bc55112dd292e 100644
--- a/pkgs/applications/networking/cluster/assign-lb-ip/default.nix
+++ b/pkgs/applications/networking/cluster/assign-lb-ip/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Assigns loadBalancerIP address to a Kubernetes service for testing purposes";
+    mainProgram = "assign-lb-ip";
     homepage    = "https://github.com/Nordix/assign-lb-ip";
     license     = licenses.asl20;
     maintainers = [ maintainers.starcraft66 ];
diff --git a/pkgs/applications/networking/cluster/atlantis/default.nix b/pkgs/applications/networking/cluster/atlantis/default.nix
index 7b6edadbba436..59c1d8664d55e 100644
--- a/pkgs/applications/networking/cluster/atlantis/default.nix
+++ b/pkgs/applications/networking/cluster/atlantis/default.nix
@@ -27,6 +27,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/runatlantis/atlantis";
     description = "Terraform Pull Request Automation";
+    mainProgram = "atlantis";
     license = licenses.asl20;
     maintainers = with maintainers; [ jpotier ];
   };
diff --git a/pkgs/applications/networking/cluster/atmos/default.nix b/pkgs/applications/networking/cluster/atmos/default.nix
index dda42538412df..00c8805f3cfa3 100644
--- a/pkgs/applications/networking/cluster/atmos/default.nix
+++ b/pkgs/applications/networking/cluster/atmos/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
     homepage = "https://atmos.tools";
     changelog = "https://github.com/cloudposse/atmos/releases/tag/v${version}";
     description = "Universal Tool for DevOps and Cloud Automation (works with terraform, helm, helmfile, etc)";
+    mainProgram = "atmos";
     license = licenses.asl20;
     maintainers = with maintainers; [ rb ];
   };
diff --git a/pkgs/applications/networking/cluster/civo/default.nix b/pkgs/applications/networking/cluster/civo/default.nix
index 5fb0ff4d98520..d2f913a765ed7 100644
--- a/pkgs/applications/networking/cluster/civo/default.nix
+++ b/pkgs/applications/networking/cluster/civo/default.nix
@@ -39,6 +39,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI for interacting with Civo resources";
+    mainProgram = "civo";
     homepage = "https://github.com/civo/cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ berryp ];
diff --git a/pkgs/applications/networking/cluster/clusterctl/default.nix b/pkgs/applications/networking/cluster/clusterctl/default.nix
index f0778bdcc62d9..34add12a81352 100644
--- a/pkgs/applications/networking/cluster/clusterctl/default.nix
+++ b/pkgs/applications/networking/cluster/clusterctl/default.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
   meta = with lib; {
     changelog = "https://github.com/kubernetes-sigs/cluster-api/releases/tag/${src.rev}";
     description = "Kubernetes cluster API tool";
+    mainProgram = "clusterctl";
     homepage = "https://cluster-api.sigs.k8s.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ qjoly ];
diff --git a/pkgs/applications/networking/cluster/cmctl/default.nix b/pkgs/applications/networking/cluster/cmctl/default.nix
index e1abc4ea985c2..feb1b03d26fe8 100644
--- a/pkgs/applications/networking/cluster/cmctl/default.nix
+++ b/pkgs/applications/networking/cluster/cmctl/default.nix
@@ -50,6 +50,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A CLI tool for managing cert-manager service on Kubernetes clusters";
+    mainProgram = "cmctl";
     longDescription = ''
       cert-manager adds certificates and certificate issuers as resource types
       in Kubernetes clusters, and simplifies the process of obtaining, renewing
diff --git a/pkgs/applications/networking/cluster/cni/default.nix b/pkgs/applications/networking/cluster/cni/default.nix
index 33688148985f9..6fdeb802ea1cf 100644
--- a/pkgs/applications/networking/cluster/cni/default.nix
+++ b/pkgs/applications/networking/cluster/cni/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Container Network Interface - networking for Linux containers";
+    mainProgram = "cnitool";
     license = licenses.asl20;
     homepage = "https://github.com/containernetworking/cni";
     maintainers = with maintainers; [ offline vdemeester ];
diff --git a/pkgs/applications/networking/cluster/containerpilot/default.nix b/pkgs/applications/networking/cluster/containerpilot/default.nix
index dc6e5f3402fab..a255db568125c 100644
--- a/pkgs/applications/networking/cluster/containerpilot/default.nix
+++ b/pkgs/applications/networking/cluster/containerpilot/default.nix
@@ -17,6 +17,7 @@ buildGoPackage rec {
   meta = with lib; {
     homepage = "https://www.joyent.com/containerpilot";
     description = "An application centric micro-orchestrator.";
+    mainProgram = "containerpilot";
     platforms = platforms.unix;
     license = licenses.mpl20;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/applications/networking/cluster/dnsname-cni/default.nix b/pkgs/applications/networking/cluster/dnsname-cni/default.nix
index 3b6edd5752975..c147822b43b53 100644
--- a/pkgs/applications/networking/cluster/dnsname-cni/default.nix
+++ b/pkgs/applications/networking/cluster/dnsname-cni/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "DNS name resolution for containers";
+    mainProgram = "dnsname";
     homepage = "https://github.com/containers/dnsname";
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/cluster/docker-machine/kvm2.nix b/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
index a35cfab16cd7e..c21cf5b4970e8 100644
--- a/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
+++ b/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://minikube.sigs.k8s.io/docs/drivers/kvm2";
     description = "KVM2 driver for docker-machine";
+    mainProgram = "docker-machine-driver-kvm2";
     license = licenses.asl20;
     maintainers = with maintainers; [ tadfisher atkinschang ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/cluster/driftctl/default.nix b/pkgs/applications/networking/cluster/driftctl/default.nix
index b116f566c5cea..b976308c4d8aa 100644
--- a/pkgs/applications/networking/cluster/driftctl/default.nix
+++ b/pkgs/applications/networking/cluster/driftctl/default.nix
@@ -46,6 +46,7 @@ buildGoModule rec {
     homepage = "https://driftctl.com/";
     changelog = "https://github.com/snyk/driftctl/releases/tag/v${version}";
     description = "Detect, track and alert on infrastructure drift";
+    mainProgram = "driftctl";
     longDescription = ''
       driftctl is a free and open-source CLI that warns of infrastructure drift
       and fills in the missing piece in your DevSecOps toolbox.
diff --git a/pkgs/applications/networking/cluster/falcoctl/default.nix b/pkgs/applications/networking/cluster/falcoctl/default.nix
index 1c582447fa8a1..7a73cc8cea29b 100644
--- a/pkgs/applications/networking/cluster/falcoctl/default.nix
+++ b/pkgs/applications/networking/cluster/falcoctl/default.nix
@@ -22,6 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Administrative tooling for Falco";
+    mainProgram = "falcoctl";
     homepage = "https://github.com/falcosecurity/falcoctl";
     license = licenses.asl20;
     maintainers = with maintainers; [ developer-guy kranurag7 LucaGuerra ];
diff --git a/pkgs/applications/networking/cluster/fetchit/default.nix b/pkgs/applications/networking/cluster/fetchit/default.nix
index cadc331a9605d..a113a5c718f0b 100644
--- a/pkgs/applications/networking/cluster/fetchit/default.nix
+++ b/pkgs/applications/networking/cluster/fetchit/default.nix
@@ -64,6 +64,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool to manage the life cycle and configuration of Podman containers";
+    mainProgram = "fetchit";
     longDescription = ''
       FetchIt allows for a GitOps based approach to manage containers running on
       a single host or multiple hosts based on a git repository. This allows for
diff --git a/pkgs/applications/networking/cluster/flink/default.nix b/pkgs/applications/networking/cluster/flink/default.nix
index 276c6ebea34dc..5eed2c4afe6c3 100644
--- a/pkgs/applications/networking/cluster/flink/default.nix
+++ b/pkgs/applications/networking/cluster/flink/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A distributed stream processing framework";
+    mainProgram = "flink";
     homepage = "https://flink.apache.org";
     downloadPage = "https://flink.apache.org/downloads.html";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/fluxctl/default.nix b/pkgs/applications/networking/cluster/fluxctl/default.nix
index 5891934462850..099ef43402354 100644
--- a/pkgs/applications/networking/cluster/fluxctl/default.nix
+++ b/pkgs/applications/networking/cluster/fluxctl/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI client for Flux, the GitOps Kubernetes operator";
+    mainProgram = "fluxctl";
     homepage = "https://github.com/fluxcd/flux";
     license = licenses.asl20;
     maintainers = with maintainers; [ Gonzih Br1ght0ne ];
diff --git a/pkgs/applications/networking/cluster/fn-cli/default.nix b/pkgs/applications/networking/cluster/fn-cli/default.nix
index 299abe58fbd34..07234c75ff8e2 100644
--- a/pkgs/applications/networking/cluster/fn-cli/default.nix
+++ b/pkgs/applications/networking/cluster/fn-cli/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Command-line tool for the fn project";
+    mainProgram = "fn";
     homepage = "https://fnproject.io";
     license = licenses.asl20;
     maintainers = [ maintainers.c4605 ];
diff --git a/pkgs/applications/networking/cluster/func/default.nix b/pkgs/applications/networking/cluster/func/default.nix
index 7145d1277c9b5..7ddb89d1c0482 100644
--- a/pkgs/applications/networking/cluster/func/default.nix
+++ b/pkgs/applications/networking/cluster/func/default.nix
@@ -38,6 +38,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The Knative client library and CLI for creating, building, and deploying Knative Functions";
+    mainProgram = "func";
     homepage = "https://github.com/knative/func";
     changelog = "https://github.com/knative/func/releases/tag/knative-v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/gatekeeper/default.nix b/pkgs/applications/networking/cluster/gatekeeper/default.nix
index 22b757bacc0d5..5558a48d9f8ee 100644
--- a/pkgs/applications/networking/cluster/gatekeeper/default.nix
+++ b/pkgs/applications/networking/cluster/gatekeeper/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Policy Controller for Kubernetes";
+    mainProgram = "gator";
     homepage = "https://github.com/open-policy-agent/gatekeeper";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
diff --git a/pkgs/applications/networking/cluster/glooctl/default.nix b/pkgs/applications/networking/cluster/glooctl/default.nix
index 1b08314d27c8c..ffe98a73c9048 100644
--- a/pkgs/applications/networking/cluster/glooctl/default.nix
+++ b/pkgs/applications/networking/cluster/glooctl/default.nix
@@ -38,6 +38,7 @@ buildGoModule rec {
 
   meta = {
     description = "glooctl is the unified CLI for Gloo";
+    mainProgram = "glooctl";
     homepage = "https://docs.solo.io/gloo-edge/latest/reference/cli/glooctl/";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/applications/networking/cluster/hashi-up/default.nix b/pkgs/applications/networking/cluster/hashi-up/default.nix
index 583a0c32b1d1b..de782bef9af1d 100644
--- a/pkgs/applications/networking/cluster/hashi-up/default.nix
+++ b/pkgs/applications/networking/cluster/hashi-up/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A lightweight utility to install HashiCorp Consul, Nomad, or Vault on any remote Linux host";
+    mainProgram = "hashi-up";
     homepage = "https://github.com/jsiebens/hashi-up";
     license = licenses.mit;
     maintainers = with maintainers; [ lucperkins ];
diff --git a/pkgs/applications/networking/cluster/helm-dashboard/default.nix b/pkgs/applications/networking/cluster/helm-dashboard/default.nix
index bcd24be5c9228..e0603ff721368 100644
--- a/pkgs/applications/networking/cluster/helm-dashboard/default.nix
+++ b/pkgs/applications/networking/cluster/helm-dashboard/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = {
     description = "A simplified way of working with Helm";
+    mainProgram = "helm-dashboard";
     longDescription = ''
       Helm Dashboard is an open-source project which offers a UI-driven way to view the installed Helm charts,
       see their revision history and corresponding k8s resources.
diff --git a/pkgs/applications/networking/cluster/helm-docs/default.nix b/pkgs/applications/networking/cluster/helm-docs/default.nix
index cf286c8dc6f54..4952f4db1e612 100644
--- a/pkgs/applications/networking/cluster/helm-docs/default.nix
+++ b/pkgs/applications/networking/cluster/helm-docs/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/norwoodj/helm-docs";
     description = "A tool for automatically generating markdown documentation for Helm charts";
+    mainProgram = "helm-docs";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ sagikazarmark ];
   };
diff --git a/pkgs/applications/networking/cluster/helmfile/default.nix b/pkgs/applications/networking/cluster/helmfile/default.nix
index 0ae488c64c651..f0fa298e77862 100644
--- a/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -41,6 +41,7 @@ buildGo122Module rec {
 
   meta = {
     description = "Declarative spec for deploying Helm charts";
+    mainProgram = "helmfile";
     longDescription = ''
       Declaratively deploy your Kubernetes manifests, Kustomize configs,
       and charts as Helm releases in one shot.
diff --git a/pkgs/applications/networking/cluster/helmsman/default.nix b/pkgs/applications/networking/cluster/helmsman/default.nix
index 0e0a69496f985..458ecae5ff68d 100644
--- a/pkgs/applications/networking/cluster/helmsman/default.nix
+++ b/pkgs/applications/networking/cluster/helmsman/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Helm Charts (k8s applications) as Code tool";
+    mainProgram = "helmsman";
     homepage = "https://github.com/Praqma/helmsman";
     license = licenses.mit;
     maintainers = with maintainers; [ lynty ];
diff --git a/pkgs/applications/networking/cluster/hetzner-kube/default.nix b/pkgs/applications/networking/cluster/hetzner-kube/default.nix
index a1fceb10ea7be..1519058e8f166 100644
--- a/pkgs/applications/networking/cluster/hetzner-kube/default.nix
+++ b/pkgs/applications/networking/cluster/hetzner-kube/default.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
 
   meta = {
     description = "A CLI tool for provisioning Kubernetes clusters on Hetzner Cloud";
+    mainProgram = "hetzner-kube";
     homepage = "https://github.com/xetys/hetzner-kube";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ eliasp ];
diff --git a/pkgs/applications/networking/cluster/hubble/default.nix b/pkgs/applications/networking/cluster/hubble/default.nix
index ecbe56d098851..d9e5bbecca434 100644
--- a/pkgs/applications/networking/cluster/hubble/default.nix
+++ b/pkgs/applications/networking/cluster/hubble/default.nix
@@ -40,6 +40,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Network, Service & Security Observability for Kubernetes using eBPF";
+    mainProgram = "hubble";
     license = licenses.asl20;
     homepage = "https://github.com/cilium/hubble/";
     maintainers = with maintainers; [ humancalico bryanasdev000 ];
diff --git a/pkgs/applications/networking/cluster/istioctl/default.nix b/pkgs/applications/networking/cluster/istioctl/default.nix
index 4c19d2404834c..8f22d01a4601e 100644
--- a/pkgs/applications/networking/cluster/istioctl/default.nix
+++ b/pkgs/applications/networking/cluster/istioctl/default.nix
@@ -40,6 +40,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Istio configuration command line utility for service operators to debug and diagnose their Istio mesh";
+    mainProgram = "istioctl";
     homepage = "https://istio.io/latest/docs/reference/commands/istioctl";
     license = licenses.asl20;
     maintainers = with maintainers; [ bryanasdev000 veehaitch ];
diff --git a/pkgs/applications/networking/cluster/jx/default.nix b/pkgs/applications/networking/cluster/jx/default.nix
index 204b08962454d..0bbee5b74ae01 100644
--- a/pkgs/applications/networking/cluster/jx/default.nix
+++ b/pkgs/applications/networking/cluster/jx/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Command line tool for installing and using Jenkins X";
+    mainProgram = "jx";
     homepage = "https://jenkins-x.io";
     longDescription = ''
       Jenkins X provides automated CI+CD for Kubernetes with Preview
diff --git a/pkgs/applications/networking/cluster/k3d/default.nix b/pkgs/applications/networking/cluster/k3d/default.nix
index e74595903b51e..fcd97875ff809 100644
--- a/pkgs/applications/networking/cluster/k3d/default.nix
+++ b/pkgs/applications/networking/cluster/k3d/default.nix
@@ -61,6 +61,7 @@ buildGoModule rec {
     homepage = "https://github.com/k3d-io/k3d/";
     changelog = "https://github.com/k3d-io/k3d/blob/v${version}/CHANGELOG.md";
     description = "A helper to run k3s (Lightweight Kubernetes. 5 less than k8s) in a docker container";
+    mainProgram = "k3d";
     longDescription = ''
       k3s is the lightweight Kubernetes distribution by Rancher: rancher/k3s
 
diff --git a/pkgs/applications/networking/cluster/k3sup/default.nix b/pkgs/applications/networking/cluster/k3sup/default.nix
index c45970ddeef8b..d5ac78ea5c4c6 100644
--- a/pkgs/applications/networking/cluster/k3sup/default.nix
+++ b/pkgs/applications/networking/cluster/k3sup/default.nix
@@ -48,6 +48,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/alexellis/k3sup";
     description = "Bootstrap Kubernetes with k3s over SSH";
+    mainProgram = "k3sup";
     license = licenses.mit;
     maintainers = with maintainers; [ welteki qjoly ];
   };
diff --git a/pkgs/applications/networking/cluster/k8sgpt/default.nix b/pkgs/applications/networking/cluster/k8sgpt/default.nix
index 909e7fb621e53..3fa2d5f5bc956 100644
--- a/pkgs/applications/networking/cluster/k8sgpt/default.nix
+++ b/pkgs/applications/networking/cluster/k8sgpt/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Giving Kubernetes Superpowers to everyone";
+    mainProgram = "k8sgpt";
     homepage = "https://k8sgpt.ai";
     changelog = "https://github.com/k8sgpt-ai/k8sgpt/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/karmor/default.nix b/pkgs/applications/networking/cluster/karmor/default.nix
index 38058e57d2d84..383ac0e15f015 100644
--- a/pkgs/applications/networking/cluster/karmor/default.nix
+++ b/pkgs/applications/networking/cluster/karmor/default.nix
@@ -48,6 +48,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A client tool to help manage KubeArmor";
+    mainProgram = "karmor";
     homepage = "https://kubearmor.io";
     changelog = "https://github.com/kubearmor/kubearmor-client/releases/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kbst/default.nix b/pkgs/applications/networking/cluster/kbst/default.nix
index 30207b07457fd..566610ebc7cbc 100644
--- a/pkgs/applications/networking/cluster/kbst/default.nix
+++ b/pkgs/applications/networking/cluster/kbst/default.nix
@@ -33,6 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Kubestack framework CLI";
+    mainProgram = "kbst";
     homepage = "https://www.kubestack.com/";
     license = licenses.asl20;
     maintainers = with maintainers; [ mtrsk ];
diff --git a/pkgs/applications/networking/cluster/kconf/default.nix b/pkgs/applications/networking/cluster/kconf/default.nix
index 5e36f45e50fd9..8813327a60905 100644
--- a/pkgs/applications/networking/cluster/kconf/default.nix
+++ b/pkgs/applications/networking/cluster/kconf/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An opinionated command line tool for managing multiple kubeconfigs";
+    mainProgram = "kconf";
     homepage = "https://github.com/particledecay/kconf";
     license = licenses.mit;
     maintainers = with maintainers; [ thmzlt ];
diff --git a/pkgs/applications/networking/cluster/kfilt/default.nix b/pkgs/applications/networking/cluster/kfilt/default.nix
index dd85bd8bbddc2..8059528eaa121 100644
--- a/pkgs/applications/networking/cluster/kfilt/default.nix
+++ b/pkgs/applications/networking/cluster/kfilt/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = {
     description = "Command-line tool that filters Kubernetes resources";
+    mainProgram = "kfilt";
     homepage = "https://github.com/ryane/kfilt";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.ryane ];
diff --git a/pkgs/applications/networking/cluster/kluctl/default.nix b/pkgs/applications/networking/cluster/kluctl/default.nix
index 99e311ff3e20b..601be5ff6d1d7 100644
--- a/pkgs/applications/networking/cluster/kluctl/default.nix
+++ b/pkgs/applications/networking/cluster/kluctl/default.nix
@@ -31,6 +31,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The missing glue to put together large Kubernetes deployments";
+    mainProgram = "kluctl";
     homepage = "https://kluctl.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ sikmir netthier ];
diff --git a/pkgs/applications/networking/cluster/kn/default.nix b/pkgs/applications/networking/cluster/kn/default.nix
index 156c2cae7ac5f..3a5f18cbf581d 100644
--- a/pkgs/applications/networking/cluster/kn/default.nix
+++ b/pkgs/applications/networking/cluster/kn/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The Knative client kn is your door to the Knative world. It allows you to create Knative resources interactively from the command line or from within scripts";
+    mainProgram = "kn";
     homepage = "https://github.com/knative/client";
     changelog = "https://github.com/knative/client/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kompose/default.nix b/pkgs/applications/networking/cluster/kompose/default.nix
index 290d41fbdddde..248dcf84e3eda 100644
--- a/pkgs/applications/networking/cluster/kompose/default.nix
+++ b/pkgs/applications/networking/cluster/kompose/default.nix
@@ -33,6 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool to help users who are familiar with docker-compose move to Kubernetes";
+    mainProgram = "kompose";
     homepage = "https://kompose.io";
     license = licenses.asl20;
     maintainers = with maintainers; [ thpham vdemeester ];
diff --git a/pkgs/applications/networking/cluster/kontemplate/default.nix b/pkgs/applications/networking/cluster/kontemplate/default.nix
index 10c161f45d05e..14e75829e401c 100644
--- a/pkgs/applications/networking/cluster/kontemplate/default.nix
+++ b/pkgs/applications/networking/cluster/kontemplate/default.nix
@@ -15,6 +15,7 @@ buildGoPackage rec {
 
   meta = with lib; {
     description      = "Extremely simple Kubernetes resource templates";
+    mainProgram = "kontemplate";
     homepage         = "http://kontemplate.works";
     downloadPage     = "https://github.com/tazjin/kontemplate/releases";
     license          = licenses.gpl3;
diff --git a/pkgs/applications/networking/cluster/kops/default.nix b/pkgs/applications/networking/cluster/kops/default.nix
index 1e911aaabf666..7f051075a5b3a 100644
--- a/pkgs/applications/networking/cluster/kops/default.nix
+++ b/pkgs/applications/networking/cluster/kops/default.nix
@@ -38,6 +38,7 @@ let
 
         meta = with lib; {
           description = "Easiest way to get a production Kubernetes up and running";
+          mainProgram = "kops";
           homepage = "https://github.com/kubernetes/kops";
           changelog = "https://github.com/kubernetes/kops/tree/master/docs/releases";
           license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kpt/default.nix b/pkgs/applications/networking/cluster/kpt/default.nix
index ff5c8588ccee4..8ae2138907b1a 100644
--- a/pkgs/applications/networking/cluster/kpt/default.nix
+++ b/pkgs/applications/networking/cluster/kpt/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A toolkit to help you manage, manipulate, customize, and apply Kubernetes Resource configuration data files";
+    mainProgram = "kpt";
     homepage = "https://googlecontainertools.github.io/kpt/";
     license = licenses.asl20;
     maintainers = with maintainers; [ mikefaille ];
diff --git a/pkgs/applications/networking/cluster/ktop/default.nix b/pkgs/applications/networking/cluster/ktop/default.nix
index 58fca5221c0dd..847a58a9c40f9 100644
--- a/pkgs/applications/networking/cluster/ktop/default.nix
+++ b/pkgs/applications/networking/cluster/ktop/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A top-like tool for your Kubernetes cluster";
+    mainProgram = "ktop";
     longDescription = ''
       Following the tradition of Unix/Linux top tools, ktop is a tool that displays useful metrics information about nodes, pods, and other workload resources running in a Kubernetes cluster.
     '';
diff --git a/pkgs/applications/networking/cluster/ktunnel/default.nix b/pkgs/applications/networking/cluster/ktunnel/default.nix
index 3b05aabc00b9f..5cbcc6b661b77 100644
--- a/pkgs/applications/networking/cluster/ktunnel/default.nix
+++ b/pkgs/applications/networking/cluster/ktunnel/default.nix
@@ -32,6 +32,7 @@ buildGoModule {
 
   meta = with lib; {
     description = "A cli that exposes your local resources to kubernetes ";
+    mainProgram = "ktunnel";
     homepage = "https://github.com/omrikiei/ktunnel";
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/applications/networking/cluster/kube-capacity/default.nix b/pkgs/applications/networking/cluster/kube-capacity/default.nix
index c4a631c3258e3..caed8df9e5119 100644
--- a/pkgs/applications/networking/cluster/kube-capacity/default.nix
+++ b/pkgs/applications/networking/cluster/kube-capacity/default.nix
@@ -16,6 +16,7 @@ buildGoModule rec {
   meta = with lib; {
     description =
       "A simple CLI that provides an overview of the resource requests, limits, and utilization in a Kubernetes cluster";
+    mainProgram = "kube-capacity";
     homepage = "https://github.com/robscott/kube-capacity";
     changelog = "https://github.com/robscott/kube-capacity/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kube-router/default.nix b/pkgs/applications/networking/cluster/kube-router/default.nix
index fc2f9cc206606..4b75b292fd3fd 100644
--- a/pkgs/applications/networking/cluster/kube-router/default.nix
+++ b/pkgs/applications/networking/cluster/kube-router/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://www.kube-router.io/";
     description = "All-in-one router, firewall and service proxy for Kubernetes";
+    mainProgram = "kube-router";
     license = licenses.asl20;
     maintainers = with maintainers; [ colemickens johanot ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/cluster/kube-score/default.nix b/pkgs/applications/networking/cluster/kube-score/default.nix
index 47eb7b4e60af7..f8b42bb0fae30 100644
--- a/pkgs/applications/networking/cluster/kube-score/default.nix
+++ b/pkgs/applications/networking/cluster/kube-score/default.nix
@@ -34,6 +34,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Kubernetes object analysis with recommendations for improved reliability and security";
+    mainProgram = "kube-score";
     homepage = "https://github.com/zegl/kube-score";
     changelog = "https://github.com/zegl/kube-score/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/kubebuilder/default.nix b/pkgs/applications/networking/cluster/kubebuilder/default.nix
index 69b0f990eadc7..55f29f0deb476 100644
--- a/pkgs/applications/networking/cluster/kubebuilder/default.nix
+++ b/pkgs/applications/networking/cluster/kubebuilder/default.nix
@@ -60,6 +60,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "SDK for building Kubernetes APIs using CRDs";
+    mainProgram = "kubebuilder";
     homepage = "https://github.com/kubernetes-sigs/kubebuilder";
     changelog = "https://github.com/kubernetes-sigs/kubebuilder/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubecfg/default.nix b/pkgs/applications/networking/cluster/kubecfg/default.nix
index da4b6568901cc..78f14012707bc 100644
--- a/pkgs/applications/networking/cluster/kubecfg/default.nix
+++ b/pkgs/applications/networking/cluster/kubecfg/default.nix
@@ -33,6 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool for managing Kubernetes resources as code";
+    mainProgram = "kubecfg";
     homepage = "https://github.com/kubecfg/kubecfg";
     changelog = "https://github.com/kubecfg/kubecfg/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubecolor/default.nix b/pkgs/applications/networking/cluster/kubecolor/default.nix
index 2b41250c628b1..794b184e245f1 100644
--- a/pkgs/applications/networking/cluster/kubecolor/default.nix
+++ b/pkgs/applications/networking/cluster/kubecolor/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Colorizes kubectl output";
+    mainProgram = "kubecolor";
     homepage = "https://github.com/kubecolor/kubecolor";
     changelog = "https://github.com/kubecolor/kubecolor/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/kubeconform/default.nix b/pkgs/applications/networking/cluster/kubeconform/default.nix
index 611a33ca8f738..b129e0c65bd5f 100644
--- a/pkgs/applications/networking/cluster/kubeconform/default.nix
+++ b/pkgs/applications/networking/cluster/kubeconform/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A FAST Kubernetes manifests validator, with support for Custom Resources!";
+    mainProgram = "kubeconform";
     homepage    = "https://github.com/yannh/kubeconform/";
     license     = licenses.asl20;
     maintainers = [ maintainers.j4m3s ];
diff --git a/pkgs/applications/networking/cluster/kubectl-cnpg/default.nix b/pkgs/applications/networking/cluster/kubectl-cnpg/default.nix
index b29ba78a4ef10..db05ee6b363ab 100644
--- a/pkgs/applications/networking/cluster/kubectl-cnpg/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-cnpg/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://cloudnative-pg.io/";
     description = "Plugin for kubectl to manage a CloudNativePG cluster in Kubernetes";
+    mainProgram = "kubectl-cnpg";
     license = licenses.asl20;
     maintainers = with maintainers; [ devusb ];
   };
diff --git a/pkgs/applications/networking/cluster/kubectl-doctor/default.nix b/pkgs/applications/networking/cluster/kubectl-doctor/default.nix
index e198de456cca3..050192b86c9f4 100644
--- a/pkgs/applications/networking/cluster/kubectl-doctor/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-doctor/default.nix
@@ -28,6 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "kubectl cluster triage plugin for k8s";
+    mainProgram = "kubectl-doctor";
     homepage = "https://github.com/emirozer/kubectl-doctor";
     changelog = "https://github.com/emirozer/kubectl-doctor/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix b/pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix
index f17c2b2ad1ab7..46bf4cb14eeff 100644
--- a/pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "This plugin evicts the given pod and is useful for testing pod disruption budget rules";
+    mainProgram = "kubectl-evict-pod";
     homepage    = "https://github.com/rajatjindal/kubectl-evict-pod";
     license     = licenses.asl20;
     maintainers = [ maintainers.j4m3s ];
diff --git a/pkgs/applications/networking/cluster/kubectl-example/default.nix b/pkgs/applications/networking/cluster/kubectl-example/default.nix
index 76562de2bd766..dc917a987e0d2 100644
--- a/pkgs/applications/networking/cluster/kubectl-example/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-example/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "kubectl plugin for retrieving resource example YAMLs";
+    mainProgram = "kubectl-example";
     homepage = "https://github.com/seredot/kubectl-example";
     changelog = "https://github.com/seredot/kubectl-example/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubectl-explore/default.nix b/pkgs/applications/networking/cluster/kubectl-explore/default.nix
index 2eb7b6befb757..0ff402b39f089 100644
--- a/pkgs/applications/networking/cluster/kubectl-explore/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-explore/default.nix
@@ -16,6 +16,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A better kubectl explain with the fuzzy finder";
+    mainProgram = "kubectl-explore";
     homepage = "https://github.com/keisku/kubectl-explore";
     changelog = "https://github.com/keisku/kubectl-explore/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/kubectl-gadget/default.nix b/pkgs/applications/networking/cluster/kubectl-gadget/default.nix
index 9dbee8d0a5447..436138d8560dd 100644
--- a/pkgs/applications/networking/cluster/kubectl-gadget/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-gadget/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A collection of gadgets for troubleshooting Kubernetes applications using eBPF";
+    mainProgram = "kubectl-gadget";
     homepage = "https://inspektor-gadget.io";
     license = licenses.asl20;
     maintainers = with maintainers; [ kranurag7 ];
diff --git a/pkgs/applications/networking/cluster/kubectl-images/default.nix b/pkgs/applications/networking/cluster/kubectl-images/default.nix
index 7ab487d3dda1f..1c4b1bf60e128 100644
--- a/pkgs/applications/networking/cluster/kubectl-images/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-images/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Show container images used in the cluster.";
+    mainProgram = "kubectl-images";
     homepage = "https://github.com/chenjiandongx/kubectl-images";
     changelog = "https://github.com/chenjiandongx/kubectl-images/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix b/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix
index d8718b1d254ce..934d1c9151dc1 100644
--- a/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix
@@ -24,6 +24,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     description = "Exec into node via kubectl";
+    mainProgram = "kubectl-node_shell";
     homepage = "https://github.com/kvaps/kubectl-node-shell";
     license = licenses.asl20;
     maintainers = with maintainers; [ jocelynthode ];
diff --git a/pkgs/applications/networking/cluster/kubectl-tree/default.nix b/pkgs/applications/networking/cluster/kubectl-tree/default.nix
index 1cb0cc3e9419c..62d4553b881d1 100644
--- a/pkgs/applications/networking/cluster/kubectl-tree/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-tree/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "kubectl plugin to browse Kubernetes object hierarchies as a tree";
+    mainProgram = "kubectl-tree";
     homepage = "https://github.com/ahmetb/kubectl-tree";
     changelog = "https://github.com/ahmetb/kubectl-tree/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubectl-view-secret/default.nix b/pkgs/applications/networking/cluster/kubectl-view-secret/default.nix
index 0bfdaafd5f561..695d63db81654 100644
--- a/pkgs/applications/networking/cluster/kubectl-view-secret/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-view-secret/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Kubernetes CLI plugin to decode Kubernetes secrets";
+    mainProgram = "kubectl-view-secret";
     homepage = "https://github.com/elsesiy/kubectl-view-secret";
     changelog = "https://github.com/elsesiy/kubectl-view-secret/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/kubedog/default.nix b/pkgs/applications/networking/cluster/kubedog/default.nix
index 9618fcbf4457f..5d31bc8e33505 100644
--- a/pkgs/applications/networking/cluster/kubedog/default.nix
+++ b/pkgs/applications/networking/cluster/kubedog/default.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
       A tool to watch and follow Kubernetes resources in CI/CD deployment
       pipelines
     '';
+    mainProgram = "kubedog";
     homepage = "https://github.com/werf/kubedog";
     changelog = "https://github.com/werf/kubedog/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubefirst/default.nix b/pkgs/applications/networking/cluster/kubefirst/default.nix
index 1bf2c06db54ad..f73c2ebbf19e2 100644
--- a/pkgs/applications/networking/cluster/kubefirst/default.nix
+++ b/pkgs/applications/networking/cluster/kubefirst/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The Kubefirst CLI creates instant GitOps platforms that integrate some of the best tools in cloud native from scratch.";
+    mainProgram = "kubefirst";
     homepage = "https://github.com/kubefirst/kubefirst/";
     license = licenses.mit;
     maintainers = with maintainers; [ qjoly ];
diff --git a/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix b/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
index a771972b6948f..0d3852e28414c 100644
--- a/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
+++ b/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Kubernetes credential plugin implementing OpenID Connect (OIDC) authentication";
+    mainProgram = "kubectl-oidc_login";
     inherit (src.meta) homepage;
     license = licenses.asl20;
     maintainers = with maintainers; [ benley ];
diff --git a/pkgs/applications/networking/cluster/kubelogin/default.nix b/pkgs/applications/networking/cluster/kubelogin/default.nix
index 28e3f47a388aa..b2fa146b0bc30 100644
--- a/pkgs/applications/networking/cluster/kubelogin/default.nix
+++ b/pkgs/applications/networking/cluster/kubelogin/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Kubernetes credential plugin implementing Azure authentication";
+    mainProgram = "kubelogin";
     inherit (src.meta) homepage;
     license = licenses.mit;
     maintainers = [];
diff --git a/pkgs/applications/networking/cluster/kubemqctl/default.nix b/pkgs/applications/networking/cluster/kubemqctl/default.nix
index 7185ff5a42dcb..8e2590b75c7e8 100644
--- a/pkgs/applications/networking/cluster/kubemqctl/default.nix
+++ b/pkgs/applications/networking/cluster/kubemqctl/default.nix
@@ -25,6 +25,7 @@ buildGoModule rec {
   meta = {
     homepage = "https://github.com/kubemq-io/kubemqctl";
     description = "Kubemqctl is a command line interface (CLI) for Kubemq Kubernetes Message Broker.";
+    mainProgram = "kubemqctl";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ brianmcgee ];
   };
diff --git a/pkgs/applications/networking/cluster/kubent/default.nix b/pkgs/applications/networking/cluster/kubent/default.nix
index d0b8eaf422e68..75f4244ee1425 100644
--- a/pkgs/applications/networking/cluster/kubent/default.nix
+++ b/pkgs/applications/networking/cluster/kubent/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/doitintl/kube-no-trouble";
     description = "Easily check your cluster for use of deprecated APIs";
+    mainProgram = "kubent";
     license = licenses.mit;
     maintainers = with maintainers; [ peterromfeldhk ];
   };
diff --git a/pkgs/applications/networking/cluster/kubergrunt/default.nix b/pkgs/applications/networking/cluster/kubergrunt/default.nix
index e5a5e1ba9f4bb..c37fe18281c90 100644
--- a/pkgs/applications/networking/cluster/kubergrunt/default.nix
+++ b/pkgs/applications/networking/cluster/kubergrunt/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Collection of commands to fill in the gaps between Terraform, Helm, and Kubectl";
+    mainProgram = "kubergrunt";
     homepage = "https://github.com/gruntwork-io/kubergrunt";
     license = licenses.asl20;
     maintainers = with maintainers; [ psibi ];
diff --git a/pkgs/applications/networking/cluster/kubernetes-metrics-server/default.nix b/pkgs/applications/networking/cluster/kubernetes-metrics-server/default.nix
index 9efefd0646670..37ca5be589d13 100644
--- a/pkgs/applications/networking/cluster/kubernetes-metrics-server/default.nix
+++ b/pkgs/applications/networking/cluster/kubernetes-metrics-server/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/kubernetes-sigs/metrics-server";
     description = "Kubernetes container resource metrics collector";
+    mainProgram = "metrics-server";
     license = licenses.asl20;
     maintainers = with maintainers; [ eskytthe ];
   };
diff --git a/pkgs/applications/networking/cluster/kubernix/default.nix b/pkgs/applications/networking/cluster/kubernix/default.nix
index 4495a8590f420..264fbe7d5dc0f 100644
--- a/pkgs/applications/networking/cluster/kubernix/default.nix
+++ b/pkgs/applications/networking/cluster/kubernix/default.nix
@@ -22,6 +22,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Single dependency Kubernetes clusters for local testing, experimenting and development";
+    mainProgram = "kubernix";
     homepage = "https://github.com/saschagrunert/kubernix";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ saschagrunert ];
diff --git a/pkgs/applications/networking/cluster/kubeseal/default.nix b/pkgs/applications/networking/cluster/kubeseal/default.nix
index 921797d1591a5..ed5db3c9485da 100644
--- a/pkgs/applications/networking/cluster/kubeseal/default.nix
+++ b/pkgs/applications/networking/cluster/kubeseal/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Kubernetes controller and tool for one-way encrypted Secrets";
+    mainProgram = "kubeseal";
     homepage = "https://github.com/bitnami-labs/sealed-secrets";
     changelog = "https://github.com/bitnami-labs/sealed-secrets/blob/v${version}/RELEASE-NOTES.md";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubeshark/default.nix b/pkgs/applications/networking/cluster/kubeshark/default.nix
index 0aaea3c505bb2..d798442c08445 100644
--- a/pkgs/applications/networking/cluster/kubeshark/default.nix
+++ b/pkgs/applications/networking/cluster/kubeshark/default.nix
@@ -48,6 +48,7 @@ buildGoModule rec {
   meta = with lib; {
     changelog = "https://github.com/kubeshark/kubeshark/releases/tag/${version}";
     description = "The API Traffic Viewer for Kubernetes";
+    mainProgram = "kubeshark";
     homepage = "https://kubeshark.co/";
     license = licenses.asl20;
     longDescription = ''
diff --git a/pkgs/applications/networking/cluster/kubespy/default.nix b/pkgs/applications/networking/cluster/kubespy/default.nix
index 88a56e3c72e38..bfbfa1fa7ccf3 100644
--- a/pkgs/applications/networking/cluster/kubespy/default.nix
+++ b/pkgs/applications/networking/cluster/kubespy/default.nix
@@ -28,6 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool to observe Kubernetes resources in real time";
+    mainProgram = "kubespy";
     homepage = "https://github.com/pulumi/kubespy";
     license = licenses.asl20;
     maintainers = with maintainers; [ blaggacao ];
diff --git a/pkgs/applications/networking/cluster/kubetail/default.nix b/pkgs/applications/networking/cluster/kubetail/default.nix
index 774feac4d23d8..5fc1eaf488274 100644
--- a/pkgs/applications/networking/cluster/kubetail/default.nix
+++ b/pkgs/applications/networking/cluster/kubetail/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Bash script to tail Kubernetes logs from multiple pods at the same time";
+    mainProgram = "kubetail";
     longDescription = ''
       Bash script that enables you to aggregate (tail/follow) logs from
       multiple pods into one stream. This is the same as running "kubectl logs
diff --git a/pkgs/applications/networking/cluster/kubeval/default.nix b/pkgs/applications/networking/cluster/kubeval/default.nix
index 574bfc61bb877..8fb1e68b02069 100644
--- a/pkgs/applications/networking/cluster/kubeval/default.nix
+++ b/pkgs/applications/networking/cluster/kubeval/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Validate your Kubernetes configuration files";
+    mainProgram = "kubeval";
     homepage = "https://github.com/instrumenta/kubeval";
     license = licenses.asl20;
     maintainers = with maintainers; [ johanot nicknovitski ];
diff --git a/pkgs/applications/networking/cluster/kubexit/default.nix b/pkgs/applications/networking/cluster/kubexit/default.nix
index bf086de6d78b8..080c87385bb6a 100644
--- a/pkgs/applications/networking/cluster/kubexit/default.nix
+++ b/pkgs/applications/networking/cluster/kubexit/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
   meta = with lib; {
     description = "Command supervisor for coordinated Kubernetes pod container termination.";
+    mainProgram = "kubexit";
     homepage = "https://github.com/karlkfi/kubexit/";
     license = licenses.asl20;
     maintainers = with maintainers; [ qjoly ];
diff --git a/pkgs/applications/networking/cluster/kyverno/default.nix b/pkgs/applications/networking/cluster/kyverno/default.nix
index 3cf8ef72ba5ce..208867bec2c07 100644
--- a/pkgs/applications/networking/cluster/kyverno/default.nix
+++ b/pkgs/applications/networking/cluster/kyverno/default.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Kubernetes Native Policy Management";
+    mainProgram = "kyverno";
     homepage = "https://kyverno.io/";
     changelog = "https://github.com/kyverno/kyverno/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/levant/default.nix b/pkgs/applications/networking/cluster/levant/default.nix
index 78458741a5ba5..937e57204b96d 100644
--- a/pkgs/applications/networking/cluster/levant/default.nix
+++ b/pkgs/applications/networking/cluster/levant/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An open source templating and deployment tool for HashiCorp Nomad jobs";
+    mainProgram = "levant";
     homepage = "https://github.com/hashicorp/levant";
     license = licenses.mpl20;
     maintainers = with maintainers; [ max-niederman ];
diff --git a/pkgs/applications/networking/cluster/linkerd/generic.nix b/pkgs/applications/networking/cluster/linkerd/generic.nix
index 0384f56f14aa6..edd5a895f3f0a 100644
--- a/pkgs/applications/networking/cluster/linkerd/generic.nix
+++ b/pkgs/applications/networking/cluster/linkerd/generic.nix
@@ -55,6 +55,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A simple Kubernetes service mesh that improves security, observability and reliability";
+    mainProgram = "linkerd";
     downloadPage = "https://github.com/linkerd/linkerd2/";
     homepage = "https://linkerd.io/";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/minikube/default.nix b/pkgs/applications/networking/cluster/minikube/default.nix
index bd9d0fece1b5b..69e73e6d47a32 100644
--- a/pkgs/applications/networking/cluster/minikube/default.nix
+++ b/pkgs/applications/networking/cluster/minikube/default.nix
@@ -67,6 +67,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://minikube.sigs.k8s.io";
     description = "A tool that makes it easy to run Kubernetes locally";
+    mainProgram = "minikube";
     license = licenses.asl20;
     maintainers = with maintainers; [ ebzzry copumpkin vdemeester atkinschang Chili-Man ];
   };
diff --git a/pkgs/applications/networking/cluster/nerdctl/default.nix b/pkgs/applications/networking/cluster/nerdctl/default.nix
index caf07b07989ee..8f7a59c70e8ad 100644
--- a/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -52,6 +52,7 @@ buildGoModule rec {
     homepage = "https://github.com/containerd/nerdctl/";
     changelog = "https://github.com/containerd/nerdctl/releases/tag/v${version}";
     description = "A Docker-compatible CLI for containerd";
+    mainProgram = "nerdctl";
     license = licenses.asl20;
     maintainers = with maintainers; [ jk developer-guy ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/cluster/nomad-autoscaler/default.nix b/pkgs/applications/networking/cluster/nomad-autoscaler/default.nix
index acd0643b4bdf3..d32445c6455c3 100644
--- a/pkgs/applications/networking/cluster/nomad-autoscaler/default.nix
+++ b/pkgs/applications/networking/cluster/nomad-autoscaler/default.nix
@@ -91,6 +91,7 @@ let
 
     meta = with lib; {
       description = "Autoscaling daemon for Nomad";
+      mainProgram = "nomad-autoscaler";
       homepage = "https://github.com/hashicorp/nomad-autoscaler";
       license = licenses.mpl20;
       maintainers = with maintainers; [ jonringer ];
diff --git a/pkgs/applications/networking/cluster/nomad-driver-podman/default.nix b/pkgs/applications/networking/cluster/nomad-driver-podman/default.nix
index 384e5b87c555d..8eb6a46563181 100644
--- a/pkgs/applications/networking/cluster/nomad-driver-podman/default.nix
+++ b/pkgs/applications/networking/cluster/nomad-driver-podman/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://www.github.com/hashicorp/nomad-driver-podman";
     description = "Podman task driver for Nomad";
+    mainProgram = "nomad-driver-podman";
     platforms = platforms.linux;
     license = licenses.mpl20;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/applications/networking/cluster/nomad/default.nix b/pkgs/applications/networking/cluster/nomad/default.nix
index b0b7fea4ff964..f94cb28ce2f55 100644
--- a/pkgs/applications/networking/cluster/nomad/default.nix
+++ b/pkgs/applications/networking/cluster/nomad/default.nix
@@ -39,6 +39,7 @@ let
       meta = with lib; {
         homepage = "https://www.nomadproject.io/";
         description = "A Distributed, Highly Available, Datacenter-Aware Scheduler";
+        mainProgram = "nomad";
         inherit license;
         maintainers = with maintainers; [ rushmorem pradeepchhetri endocrimes amaxine techknowlogick cottand ];
       };
diff --git a/pkgs/applications/networking/cluster/nova/default.nix b/pkgs/applications/networking/cluster/nova/default.nix
index 2686b79c4b7fe..03d3737928a09 100644
--- a/pkgs/applications/networking/cluster/nova/default.nix
+++ b/pkgs/applications/networking/cluster/nova/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Find outdated or deprecated Helm charts running in your cluster";
+    mainProgram = "nova";
     longDescription = ''
       Nova scans your cluster for installed Helm charts, then
       cross-checks them against all known Helm repositories. If it
diff --git a/pkgs/applications/networking/cluster/ocm/default.nix b/pkgs/applications/networking/cluster/ocm/default.nix
index 95646c800abaf..99195f8889d2a 100644
--- a/pkgs/applications/networking/cluster/ocm/default.nix
+++ b/pkgs/applications/networking/cluster/ocm/default.nix
@@ -40,6 +40,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI for the Red Hat OpenShift Cluster Manager";
+    mainProgram = "ocm";
     license = licenses.asl20;
     homepage = "https://github.com/openshift-online/ocm-cli";
     maintainers = with maintainers; [ stehessel ];
diff --git a/pkgs/applications/networking/cluster/odo/default.nix b/pkgs/applications/networking/cluster/odo/default.nix
index e94e3772c8dd6..9ab5082f61dca 100644
--- a/pkgs/applications/networking/cluster/odo/default.nix
+++ b/pkgs/applications/networking/cluster/odo/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Developer-focused CLI for OpenShift and Kubernetes";
+    mainProgram = "odo";
     license = licenses.asl20;
     homepage = "https://odo.dev";
     changelog = "https://github.com/redhat-developer/odo/releases/v${version}";
diff --git a/pkgs/applications/networking/cluster/pig/default.nix b/pkgs/applications/networking/cluster/pig/default.nix
index 5aae5e8e68bf4..42938d1246f9e 100644
--- a/pkgs/applications/networking/cluster/pig/default.nix
+++ b/pkgs/applications/networking/cluster/pig/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://pig.apache.org/";
     description = "High-level language for Apache Hadoop";
+    mainProgram = "pig";
     license = licenses.asl20;
 
     longDescription = ''
diff --git a/pkgs/applications/networking/cluster/pinniped/default.nix b/pkgs/applications/networking/cluster/pinniped/default.nix
index 3d8f0755ca0e6..ed86002a564a1 100644
--- a/pkgs/applications/networking/cluster/pinniped/default.nix
+++ b/pkgs/applications/networking/cluster/pinniped/default.nix
@@ -28,6 +28,7 @@ buildGoModule rec{
 
   meta = with lib; {
     description = "Tool to securely log in to your Kubernetes clusters";
+    mainProgram = "pinniped";
     homepage = "https://pinniped.dev/";
     license = licenses.asl20;
     maintainers = with maintainers; [ bpaulin ];
diff --git a/pkgs/applications/networking/cluster/pluto/default.nix b/pkgs/applications/networking/cluster/pluto/default.nix
index 4223c0854f55b..628084f6f31ea 100644
--- a/pkgs/applications/networking/cluster/pluto/default.nix
+++ b/pkgs/applications/networking/cluster/pluto/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/FairwindsOps/pluto";
     description = "Find deprecated Kubernetes apiVersions";
+    mainProgram = "pluto";
     license = licenses.asl20;
     maintainers = with maintainers; [ peterromfeldhk kashw2 ];
   };
diff --git a/pkgs/applications/networking/cluster/popeye/default.nix b/pkgs/applications/networking/cluster/popeye/default.nix
index bd082a691e993..4c21b95265fba 100644
--- a/pkgs/applications/networking/cluster/popeye/default.nix
+++ b/pkgs/applications/networking/cluster/popeye/default.nix
@@ -35,6 +35,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Kubernetes cluster resource sanitizer";
+    mainProgram = "popeye";
     homepage = "https://github.com/derailed/popeye";
     changelog = "https://github.com/derailed/popeye/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/pv-migrate/default.nix b/pkgs/applications/networking/cluster/pv-migrate/default.nix
index 871f8287b8259..b55510e7e4cfa 100644
--- a/pkgs/applications/networking/cluster/pv-migrate/default.nix
+++ b/pkgs/applications/networking/cluster/pv-migrate/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI tool to easily migrate Kubernetes persistent volumes ";
+    mainProgram = "pv-migrate";
     homepage = "https://github.com/utkuozdemir/pv-migrate";
     changelog = "https://github.com/utkuozdemir/pv-migrate/releases/tag/${version}";
     license = licenses.afl20;
diff --git a/pkgs/applications/networking/cluster/rancher/default.nix b/pkgs/applications/networking/cluster/rancher/default.nix
index 8259a574cc1cc..309b806a88700 100644
--- a/pkgs/applications/networking/cluster/rancher/default.nix
+++ b/pkgs/applications/networking/cluster/rancher/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The Rancher Command Line Interface (CLI) is a unified tool for interacting with your Rancher Server";
+    mainProgram = "rancher";
     homepage = "https://github.com/rancher/cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ bryanasdev000 ];
diff --git a/pkgs/applications/networking/cluster/rke/default.nix b/pkgs/applications/networking/cluster/rke/default.nix
index f44ffa5ba758d..435377d8e304c 100644
--- a/pkgs/applications/networking/cluster/rke/default.nix
+++ b/pkgs/applications/networking/cluster/rke/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/rancher/rke";
     description = "An extremely simple, lightning fast Kubernetes distribution that runs entirely within containers";
+    mainProgram = "rke";
     changelog = "https://github.com/rancher/rke/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ urandom ];
diff --git a/pkgs/applications/networking/cluster/roxctl/default.nix b/pkgs/applications/networking/cluster/roxctl/default.nix
index 1bac7a553ecbc..abcb6fd4299ac 100644
--- a/pkgs/applications/networking/cluster/roxctl/default.nix
+++ b/pkgs/applications/networking/cluster/roxctl/default.nix
@@ -37,6 +37,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Command-line client of the StackRox Kubernetes Security Platform";
+    mainProgram = "roxctl";
     license = licenses.asl20;
     homepage = "https://www.stackrox.io";
     maintainers = with maintainers; [ stehessel ];
diff --git a/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix b/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
index d3127b076777f..866775702521e 100644
--- a/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
+++ b/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
@@ -48,6 +48,7 @@ buildGoPackage rec {
   meta = with lib; {
     homepage = "https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html";
     description = "Amazon SSM Session Manager Plugin";
+    mainProgram = "session-manager-plugin";
     license = licenses.asl20;
     maintainers = with maintainers; [ amarshall mbaillie ];
   };
diff --git a/pkgs/applications/networking/cluster/starboard/default.nix b/pkgs/applications/networking/cluster/starboard/default.nix
index 278bb1b54adcf..59b3a9de41e67 100644
--- a/pkgs/applications/networking/cluster/starboard/default.nix
+++ b/pkgs/applications/networking/cluster/starboard/default.nix
@@ -69,6 +69,7 @@ buildGoModule rec {
     homepage = "https://github.com/aquasecurity/starboard";
     changelog = "https://github.com/aquasecurity/starboard/releases/tag/v${version}";
     description = "Kubernetes-native security tool kit";
+    mainProgram = "starboard";
     longDescription = ''
       Starboard integrates security tools into the Kubernetes environment, so
       that users can find and view the risks that relate to different resources
diff --git a/pkgs/applications/networking/cluster/stern/default.nix b/pkgs/applications/networking/cluster/stern/default.nix
index 07822397434d9..5585b373df351 100644
--- a/pkgs/applications/networking/cluster/stern/default.nix
+++ b/pkgs/applications/networking/cluster/stern/default.nix
@@ -31,6 +31,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Multi pod and container log tailing for Kubernetes";
+    mainProgram = "stern";
     homepage = "https://github.com/stern/stern";
     license = licenses.asl20;
     maintainers = with maintainers; [ mbode preisschild ];
diff --git a/pkgs/applications/networking/cluster/taktuk/default.nix b/pkgs/applications/networking/cluster/taktuk/default.nix
index 5cb9f8160067e..002bc9da26315 100644
--- a/pkgs/applications/networking/cluster/taktuk/default.nix
+++ b/pkgs/applications/networking/cluster/taktuk/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Efficient, large scale, parallel remote execution of commands";
+    mainProgram = "taktuk";
     longDescription = ''
       TakTuk allows one to execute commands in parallel on a potentially large set
       of remote nodes (using ssh to connect to each node). It is typically used
diff --git a/pkgs/applications/networking/cluster/talosctl/default.nix b/pkgs/applications/networking/cluster/talosctl/default.nix
index 17b5c866de6eb..afc3b7bdf5aa4 100644
--- a/pkgs/applications/networking/cluster/talosctl/default.nix
+++ b/pkgs/applications/networking/cluster/talosctl/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A CLI for out-of-band management of Kubernetes nodes created by Talos";
+    mainProgram = "talosctl";
     homepage = "https://www.talos.dev/";
     license = licenses.mpl20;
     maintainers = with maintainers; [ flokli ];
diff --git a/pkgs/applications/networking/cluster/temporalite/default.nix b/pkgs/applications/networking/cluster/temporalite/default.nix
index efe1f2d30c5d5..5581c1694534e 100644
--- a/pkgs/applications/networking/cluster/temporalite/default.nix
+++ b/pkgs/applications/networking/cluster/temporalite/default.nix
@@ -28,6 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An experimental distribution of Temporal that runs as a single process";
+    mainProgram = "temporalite";
     homepage = "https://github.com/temporalio/temporalite";
     license = licenses.mit;
     maintainers = with maintainers; [ lucperkins ];
diff --git a/pkgs/applications/networking/cluster/terraform-backend-git/default.nix b/pkgs/applications/networking/cluster/terraform-backend-git/default.nix
index 2e7f70eaf57d2..a78b339c087ad 100644
--- a/pkgs/applications/networking/cluster/terraform-backend-git/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-backend-git/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Terraform HTTP Backend implementation that uses Git repository as storage";
+    mainProgram = "terraform-backend-git";
     homepage = "https://github.com/plumber-cd/terraform-backend-git";
     changelog = "https://github.com/plumber-cd/terraform-backend-git/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/terraform-compliance/default.nix b/pkgs/applications/networking/cluster/terraform-compliance/default.nix
index ce1915242e438..69bb5d9919725 100644
--- a/pkgs/applications/networking/cluster/terraform-compliance/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-compliance/default.nix
@@ -52,6 +52,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "BDD test framework for terraform";
+    mainProgram = "terraform-compliance";
     homepage = "https://github.com/terraform-compliance/cli";
     changelog = "https://github.com/terraform-compliance/cli/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/terraform-docs/default.nix b/pkgs/applications/networking/cluster/terraform-docs/default.nix
index 49855b77c544a..0a07d0e8627ae 100644
--- a/pkgs/applications/networking/cluster/terraform-docs/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-docs/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A utility to generate documentation from Terraform modules in various output formats";
+    mainProgram = "terraform-docs";
     homepage = "https://github.com/terraform-docs/terraform-docs/";
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
diff --git a/pkgs/applications/networking/cluster/terraform-inventory/default.nix b/pkgs/applications/networking/cluster/terraform-inventory/default.nix
index 89d4b769e9af1..56763aca06793 100644
--- a/pkgs/applications/networking/cluster/terraform-inventory/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-inventory/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/adammck/terraform-inventory";
     description = "Terraform state to ansible inventory adapter";
+    mainProgram = "terraform-inventory";
     license = licenses.mit;
     maintainers = with maintainers; [ htr ];
   };
diff --git a/pkgs/applications/networking/cluster/terragrunt/default.nix b/pkgs/applications/networking/cluster/terragrunt/default.nix
index 36ade0527264f..5ed3b0e07a077 100644
--- a/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -37,6 +37,7 @@ buildGoModule rec {
     homepage = "https://terragrunt.gruntwork.io";
     changelog = "https://github.com/gruntwork-io/terragrunt/releases/tag/v${version}";
     description = "A thin wrapper for Terraform that supports locking for Terraform state and enforces best practices";
+    mainProgram = "terragrunt";
     license = licenses.mit;
     maintainers = with maintainers; [ jk qjoly kashw2 ];
   };
diff --git a/pkgs/applications/networking/cluster/terraspace/default.nix b/pkgs/applications/networking/cluster/terraspace/default.nix
index af7c1025356a7..da45541108f69 100644
--- a/pkgs/applications/networking/cluster/terraspace/default.nix
+++ b/pkgs/applications/networking/cluster/terraspace/default.nix
@@ -24,6 +24,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Terraform framework that provides an organized structure, and keeps your code DRY";
+    mainProgram = "terraspace";
     homepage    = "https://github.com/boltops-tools/terraspace";
     license     = licenses.asl20;
     platforms   = ruby.meta.platforms;
diff --git a/pkgs/applications/networking/cluster/tf-summarize/default.nix b/pkgs/applications/networking/cluster/tf-summarize/default.nix
index a16fb8b752081..14fec4795db0c 100644
--- a/pkgs/applications/networking/cluster/tf-summarize/default.nix
+++ b/pkgs/applications/networking/cluster/tf-summarize/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Command-line utility to print the summary of the terraform plan";
+    mainProgram = "tf-summarize";
     homepage = "https://github.com/dineshba/tf-summarize";
     license = licenses.mit;
     maintainers = with maintainers; [ pjrm ];
diff --git a/pkgs/applications/networking/cluster/tfautomv/default.nix b/pkgs/applications/networking/cluster/tfautomv/default.nix
index 358dfd0a39fde..fc9dadbf37b6f 100644
--- a/pkgs/applications/networking/cluster/tfautomv/default.nix
+++ b/pkgs/applications/networking/cluster/tfautomv/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/busser/tfautomv";
     description = "When refactoring a Terraform codebase, you often need to write moved blocks. This can be tedious. Let tfautomv do it for you";
+    mainProgram = "tfautomv";
     license = licenses.asl20;
     maintainers = with maintainers; [ qjoly ];
   };
diff --git a/pkgs/applications/networking/cluster/tfswitch/default.nix b/pkgs/applications/networking/cluster/tfswitch/default.nix
index c8f2fb070fbad..50079dc762d8f 100644
--- a/pkgs/applications/networking/cluster/tfswitch/default.nix
+++ b/pkgs/applications/networking/cluster/tfswitch/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
   meta = with lib; {
     description =
       "A command line tool to switch between different versions of terraform";
+    mainProgram = "tfswitch";
     homepage = "https://github.com/warrensbox/terraform-switcher";
     license = licenses.mit;
     maintainers = with maintainers; [ psibi ];
diff --git a/pkgs/applications/networking/cluster/tfupdate/default.nix b/pkgs/applications/networking/cluster/tfupdate/default.nix
index b60da990413bd..e7a4250f94445 100644
--- a/pkgs/applications/networking/cluster/tfupdate/default.nix
+++ b/pkgs/applications/networking/cluster/tfupdate/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Update version constraints in your Terraform configurations";
+    mainProgram = "tfupdate";
     homepage = "https://github.com/minamijoyo/tfupdate";
     changelog = "https://github.com/minamijoyo/tfupdate/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/tgswitch/default.nix b/pkgs/applications/networking/cluster/tgswitch/default.nix
index 25c301f0cbb5a..6196eeeac8eda 100644
--- a/pkgs/applications/networking/cluster/tgswitch/default.nix
+++ b/pkgs/applications/networking/cluster/tgswitch/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Command line tool to switch between different versions of terragrunt";
+    mainProgram = "tgswitch";
     homepage = "https://github.com/warrensbox/tgswitch";
     license = licenses.mit;
     maintainers = with maintainers; [ psibi ];
diff --git a/pkgs/applications/networking/cluster/tilt/binary.nix b/pkgs/applications/networking/cluster/tilt/binary.nix
index d326f0f92e806..ebb7f6e117891 100644
--- a/pkgs/applications/networking/cluster/tilt/binary.nix
+++ b/pkgs/applications/networking/cluster/tilt/binary.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = {
     description = "Local development tool to manage your developer instance when your team deploys to Kubernetes in production";
+    mainProgram = "tilt";
     homepage = "https://tilt.dev/";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ anton-dessiatov ];
diff --git a/pkgs/applications/networking/cluster/timoni/default.nix b/pkgs/applications/networking/cluster/timoni/default.nix
index 0efc9bb500553..a756212d3d67a 100644
--- a/pkgs/applications/networking/cluster/timoni/default.nix
+++ b/pkgs/applications/networking/cluster/timoni/default.nix
@@ -42,6 +42,7 @@ buildGo122Module rec {
     homepage = "https://timoni.sh";
     changelog = "https://github.com/stefanprodan/timoni/releases/tag/${src.rev}";
     description = "A package manager for Kubernetes, powered by CUE and inspired by Helm";
+    mainProgram = "timoni";
     license = licenses.asl20;
     maintainers = with maintainers; [ votava ];
   };
diff --git a/pkgs/applications/networking/cluster/tubekit/default.nix b/pkgs/applications/networking/cluster/tubekit/default.nix
index afcef293c1d86..1e4895118be15 100644
--- a/pkgs/applications/networking/cluster/tubekit/default.nix
+++ b/pkgs/applications/networking/cluster/tubekit/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Kubectl alternative with quick context switching";
+    mainProgram = "tubectl";
     homepage = "https://github.com/reconquest/tubekit";
     license = licenses.mit;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/applications/networking/cluster/vcluster/default.nix b/pkgs/applications/networking/cluster/vcluster/default.nix
index db2ea91fd0545..023bc2110e151 100644
--- a/pkgs/applications/networking/cluster/vcluster/default.nix
+++ b/pkgs/applications/networking/cluster/vcluster/default.nix
@@ -47,6 +47,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Create fully functional virtual Kubernetes clusters";
+    mainProgram = "vcluster";
     downloadPage = "https://github.com/loft-sh/vcluster";
     homepage = "https://www.vcluster.com/";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/waagent/default.nix b/pkgs/applications/networking/cluster/waagent/default.nix
index 5c980133ff6c7..65b6d780ffb29 100644
--- a/pkgs/applications/networking/cluster/waagent/default.nix
+++ b/pkgs/applications/networking/cluster/waagent/default.nix
@@ -65,6 +65,7 @@ python.pkgs.buildPythonApplication rec {
 
   meta = {
     description = "The Microsoft Azure Linux Agent (waagent)";
+    mainProgram = "waagent";
     longDescription = ''
       The Microsoft Azure Linux Agent (waagent)
       manages Linux provisioning and VM interaction with the Azure
diff --git a/pkgs/applications/networking/cluster/waypoint/default.nix b/pkgs/applications/networking/cluster/waypoint/default.nix
index 880095c720988..7e16417fe2b9d 100644
--- a/pkgs/applications/networking/cluster/waypoint/default.nix
+++ b/pkgs/applications/networking/cluster/waypoint/default.nix
@@ -70,6 +70,7 @@ buildGoModule rec {
     homepage = "https://waypointproject.io";
     changelog = "https://github.com/hashicorp/waypoint/blob/v${version}/CHANGELOG.md";
     description = "A tool to build, deploy, and release any application on any platform";
+    mainProgram = "waypoint";
     longDescription = ''
       Waypoint allows developers to define their application build, deploy, and
       release lifecycle as code, reducing the time to deliver deployments
diff --git a/pkgs/applications/networking/cluster/werf/default.nix b/pkgs/applications/networking/cluster/werf/default.nix
index 6699898945d24..85b97faabd3d6 100644
--- a/pkgs/applications/networking/cluster/werf/default.nix
+++ b/pkgs/applications/networking/cluster/werf/default.nix
@@ -83,6 +83,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "GitOps delivery tool";
+    mainProgram = "werf";
     longDescription = ''
       The CLI tool gluing Git, Docker, Helm & Kubernetes with any CI system to
       implement CI/CD and Giterminism.
diff --git a/pkgs/applications/networking/cluster/zarf/default.nix b/pkgs/applications/networking/cluster/zarf/default.nix
index 2d2b76cbb4180..a19cfa5bee584 100644
--- a/pkgs/applications/networking/cluster/zarf/default.nix
+++ b/pkgs/applications/networking/cluster/zarf/default.nix
@@ -28,6 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "DevSecOps for Air Gap & Limited-Connection Systems. https://zarf.dev";
+    mainProgram = "zarf";
     homepage = "https://github.com/defenseunicorns/zarf.git";
     license = licenses.asl20;
     maintainers = with maintainers; [ ragingpastry ];