Files
iris-context/commands/sys/kafkactl.go
VERSE ebde9ba68f refactor(commands): separate commands and its core into two folders (#32)
- I think it would be better if one for commands only, one for the spec
handling core logic so people won't be confused by the core logic inside
the commands folder (cleaner I guess)
- Regen docs
2026-07-05 11:27:30 +07:00

84 lines
5.2 KiB
Go

package sys
import (
"github.com/versenilvis/iris/spec"
)
func init() {
spec.Register(&spec.Spec{
Name: "kafkactl",
Description: "Command-line interface for Apache Kafka",
Subcommands: []spec.Subcommand{
{Name: "edit", Description: "Alter topics, partitions"},
{Name: "partition", Description: "Alter a partition"},
{Name: "topic", Description: "Alter a topic"},
{Name: "attach", Description: "Run kafkactl pod in kubernetes and attach to it"},
{Name: "clone", Description: "Clone topics, consumerGroups"},
{Name: "cg", Description: "Clone existing consumerGroup with all offsets"},
{Name: "completion", Description: "Generate shell auto-completion file"},
{Name: "config", Description: "Show and edit configurations"},
{Name: "currentContext", Description: "Show current context"},
{Name: "getContexts", Description: "List configured contexts"},
{Name: "useContext", Description: "Switch active context"},
{Name: "view", Description: "Show contents of config file"},
{Name: "consume", Description: "Consume messages from a topic"},
{Name: "create", Description: "Create topics, consumerGroups, acls"},
{Name: "acl", Description: "Create an acl"},
{Name: "delete", Description: "Delete topics, consumerGroups, consumer-group-offset, acls"},
{Name: "consumer-groups", Description: "Delete a consumer-group"},
{Name: "cgo", Description: "Delete a consumer-group-offset"},
{Name: "describe", Description: "Describe topics, consumerGroups, brokers"},
{Name: "broker", Description: "Describe a broker"},
{Name: "list", Description: "Get info about topics, consumerGroups, acls, brokers"},
{Name: "brokers", Description: "List brokers"},
{Name: "topics", Description: "List available topics"},
{Name: "produce", Description: "Produce messages to a topic"},
{Name: "reset", Description: "Reset consumerGroupsOffset"},
{Name: "version", Description: "Print the version of kafkactl"},
{Name: "help", Description: "Help about any command"},
},
Options: []spec.Option{
{Name: "--replicas", Description: "Set replicas for a partition"},
{Name: "--validate-only", Description: "Validate only"},
{Name: "--config", Description: "Configs in format `key=value`"},
{Name: "--partitions", Description: "Number of partitions"},
{Name: "--replication-factor", Description: "Replication factor"},
{Name: "--output", Description: "Output format. One of: compact"},
{Name: "--exit", Description: "Stop consuming when latest offset is reached"},
{Name: "--from-beginning", Description: "Set offset for consumer to the oldest offset"},
{Name: "--group", Description: "Consumer group to join"},
{Name: "--key-encoding", Description: "Key encoding (auto-detected by default). One of: none|hex|base64"},
{Name: "--key-proto-type", Description: "Key protobuf message type"},
{Name: "--max-messages", Description: "Stop consuming after n messages have been read"},
{Name: "--offset", Description: "Output format. One of: json|yaml"},
{Name: "--print-headers", Description: "Print message headers"},
{Name: "--print-keys", Description: "Print message keys"},
{Name: "--print-schema", Description: "Print details about avro schema used for decoding"},
{Name: "--print-timestamps", Description: "Print message timestamps"},
{Name: "--proto-file", Description: "Additional protobuf description file for searching message description"},
{Name: "--proto-import-path", Description: "Additional path to search files listed in proto 'import' directive"},
{Name: "--protoset-file", Description: "Additional compiled protobuf description file for searching message description"},
{Name: "--separator", Description: "Separator to split key and value"},
{Name: "--tail", Description: "Show only the last n messages on the topic"},
{Name: "--value-encoding", Description: "Value encoding (auto-detected by default). One of: none|hex|base64"},
{Name: "--value-proto-type", Description: "Value protobuf message type"},
{Name: "--allow", Description: "Acl of permissionType 'allow' (choose this or 'deny')"},
{Name: "--cluster", Description: "Create acl for the cluster"},
{Name: "--deny", Description: "Acl of permissionType 'deny' (choose this or 'allow')"},
{Name: "--host", Description: "Hosts to allow"},
{Name: "--operation", Description: "Operations of acl"},
{Name: "--pattern", Description: "Pattern type. one of (match, prefixed, literal)"},
{Name: "--principal", Description: "Principal to be authenticated"},
{Name: "--topic", Description: "Create acl for a topic"},
{Name: "--newest", Description: "Set the offset to newest offset (for all partitions or the specified partition)"},
{Name: "--oldest", Description: "Set the offset to oldest offset (for all partitions or the specified partition)"},
{Name: "--partition", Description: "Partition to create group for. -1 stands for all partitions"},
{Name: "--groups", Description: "Delete acl for a consumer group"},
{Name: "--topics", Description: "Delete acl for a topic"},
{Name: "--only-with-lag", Description: "Show only partitions that have a lag"},
{Name: "--print-members", Description: "Print group members"},
{Name: "--print-topics", Description: "Print topic details"},
},
})
}