Files
iris-context/commands/ops/k3d.go
T
VERSE 2ef3c90819 feat(commands): more commands (#30)
- I wrote a scripts to copy and generate all commands missing in iris
from fig repo: https://github.com/withfig/autocomplete
- Add a new script to generate commands docs about which commands
currently are inside commands folder
377d4aac663590e504fe39a92eb4dac4cbd333b2
- Add more icons e64d4e70a1db61e62053460a882e093bd6373ab1
2026-07-04 22:08:36 +07:00

100 lines
6.5 KiB
Go

package ops
import (
"github.com/versenilvis/iris/commands/core"
)
func init() {
core.Register(&core.Spec{
Name: "k3d",
Description: "Little helper to run k3s in Docker",
Subcommands: []core.Subcommand{
{Name: "cluster", Description: "Manage k3s clusters"},
{Name: "create", Description: "Create a new k3s cluster"},
{Name: "cluster name", Description: "Name of the cluster to create"},
{Name: "number of agents", Description: "Number of agents to create"},
{Name: "memory limit", Description: "Memory limit imposed on the agents nodes"},
{Name: "port", Description: "Specify the Kubernetes API server port exposed on the LoadBalancer"},
{Name: "path", Description: "Path of a config file to use"},
{Name: "environment variables", Description: "Add environment variables to nodes"},
{Name: "devices", Description: "GPU devices to add to the cluster node containers"},
{Name: "ip:host[,host,...]", Description: "Add ip:host[,host,...] mappings"},
{Name: "image", Description: "Specify k3s image that you want to use for the nodes"},
{Name: "ARG@NODEFILTER[;@NODEFILTER]", Description: "Additional args passed to k3s command"},
{Name: "network", Description: "Specify the docker network to use"},
{Name: "int", Description: "Specify how many servers you want to create"},
{Name: "string", Description: "Memory limit imposed on the server nodes [From docker]"},
{Name: "duration", Description: "Rollback changes if cluster couldn't be created in specified duration"},
{Name: "delete", Description: "Delete a cluster"},
{Name: "edit", Description: "Edit a cluster"},
{Name: "list", Description: "List clusters"},
{Name: "start", Description: "Start a cluster"},
{Name: "a", Description: "Start all clusters"},
{Name: "stop", Description: "Stop a cluster"},
{Name: "completion", Description: "Generate shell completion scripts"},
{Name: "shell", Description: "Shell to generate completion script for"},
{Name: "config", Description: "Manage k3d config"},
{Name: "init", Description: "Create a new config file"},
{Name: "migrate", Description: "Migrate a config file to the latest version"},
{Name: "import", Description: "Import image(s) from docker into k3d cluster(s)"},
{Name: "mode", Description: "Import mode"},
{Name: "kubeconfig", Description: "Manage k3d kubeconfig"},
{Name: "merge", Description: "Write/Merge kubeconfig(s) from cluster(s) into new or existing kubeconfig/file"},
{Name: "node", Description: "Manage k3d nodes"},
{Name: "Node Name", Description: "Name of the node"},
{Name: "k3s-arg", Description: "Additional k3s arguments"},
{Name: "memory", Description: "Memory limit for the node container"},
{Name: "replicas", Description: "Number of replicas to create"},
{Name: "role", Description: "Node role"},
{Name: "timeout", Description: "Maximum waiting time for '--wait' before canceling/returning"},
{Name: "port-add", Description: "Map ports from the node container to the host"},
{Name: "output", Description: "Output format"},
{Name: "registry", Description: "Manage registry/registries"},
{Name: "Registry Name", Description: "Name of the registry"},
{Name: "version", Description: "Show k3d and default k3s version"},
},
Options: []core.Option{
{Name: "-a", Description: "Number of agents to create"},
{Name: "--agents-memory", Description: "Memory limit imposed on the agents nodes"},
{Name: "--api-port", Description: "Specify the Kubernetes API server port exposed on the LoadBalancer"},
{Name: "-c", Description: "Path of a config file to use"},
{Name: "-e", Description: "Add environment variables to nodes"},
{Name: "--gpus", Description: "GPU devices to add to the cluster node containers"},
{Name: "-h", Description: "Help for create"},
{Name: "--host-alias", Description: "Add ip:host[,host,...] mappings"},
{Name: "--host-pid-mode", Description: "Enable host pid mode of server(s) and agent(s)"},
{Name: "-i", Description: "Specify k3s image that you want to use for the nodes"},
{Name: "--k3s-arg", Description: "Additional args passed to k3s command"},
{Name: "--k3s-node-label", Description: "Add label to k3s node"},
{Name: "--kubeconfig-switch-context", Description: "Use dotted YAML path syntax to override nginx loadbalancer settings"},
{Name: "--network", Description: "Specify the docker network to use"},
{Name: "--no-image-volume", Description: "Don't create a volume for the container's root filesystem"},
{Name: "--no-lb", Description: "Don't create a loadbalancer for the cluster"},
{Name: "--no-rollback", Description: "Don't rollback changes if cluster creation failed"},
{Name: "-p", Description: "Map ports from the node containers (via the serverlb) to the host"},
{Name: "--registry-config", Description: "Specify path to an extra registries.yaml file"},
{Name: "--registry-create", Description: "Connect to one or more k3d-managed registries running locally"},
{Name: "--runtime-label", Description: "Specify how many servers you want to create"},
{Name: "--servers-memory", Description: "Memory limit imposed on the server nodes [From docker]"},
{Name: "--subnet", Description: "[Experimental: IPAM] Define a subnet for the newly created container network"},
{Name: "--timeout", Description: "Rollback changes if cluster couldn't be created in specified duration"},
{Name: "--token", Description: "Specify a cluster token. By default, we generate one"},
{Name: "-v", Description: "Mount volumes into the nodes"},
{Name: "--wait", Description: "Wait for the server(s) to be ready before returning"},
{Name: "--port-add", Description: "Map ports from the node containers"},
{Name: "--no-headers", Description: "Don't print headers"},
{Name: "-o", Description: "Output format"},
{Name: "-f", Description: "Force overwrite of target file"},
{Name: "-k", Description: "Do not delete the tarball containing the saved images from the shared volume"},
{Name: "-t", Description: "Do not delete the tools node after import"},
{Name: "-m", Description: "Import mode"},
{Name: "-s", Description: "Switch to new context (default true)"},
{Name: "-u", Description: "Update conflicting fields in existing kubeconfig (default true)"},
{Name: "--memory", Description: "Memory limit for the node container"},
{Name: "-n", Description: "Add node to (another) runtime network"},
{Name: "--replicas", Description: "Number of replicas to create"},
{Name: "--role", Description: "Node role"},
},
})
}