Skip to content

Commit

Permalink
Add kubectl-etcd plugin (#220)
Browse files Browse the repository at this point in the history
fixes #212

```
Manage etcd pods spawned by etcd-operator

Usage:
  kubectl-etcd [command]

Available Commands:
  alarm              Manage etcd alarms
  completion         Generate the autocompletion script for the specified shell
  defrag             Defragment etcd database on the node
  forfeit-leadership Tell node to forfeit etcd cluster leadership
  help               Help about any command
  leave              Tell node to leave etcd cluster
  members            Get the list of etcd cluster members
  remove-member      Remove a node from the etcd cluster
  snapshot           Stream snapshot of the etcd node to the path.
  status             Get the status of etcd cluster member

Flags:
  -h, --help                help for kubectl-etcd
  -k, --kubeconfig string   Path to the kubeconfig file (default "/Users/kvaps/git/clients/fin-dev/infra/clusters/dev2/kubeconfig")
  -n, --namespace string    Namespace of the etcd pod (default is the current namespace from kubeconfig)
  -p, --pod string          Name of the etcd pod

Use "kubectl-etcd [command] --help" for more information about a command.
```

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
  • Loading branch information
kvaps committed Jun 18, 2024
1 parent eb3f6e5 commit df56b4d
Show file tree
Hide file tree
Showing 6 changed files with 730 additions and 2 deletions.
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ COPY internal/ ./internal/
# was called. For example, if we call make docker-build in a local env which has the Apple Silicon M1 SO
# the docker BUILDPLATFORM arg will be linux/arm64 when for Apple x86 it will be linux/amd64. Therefore,
# by leaving it empty we can ensure that the container and binary shipped on it will have the same platform.
RUN CGO_ENABLED=0 GOOS="${TARGETOS:-linux}" GOARCH="${TARGETARCH}" go build -a -o manager cmd/main.go
RUN CGO_ENABLED=0 GOOS="${TARGETOS:-linux}" GOARCH="${TARGETARCH}" go build -a -o manager cmd/manager/main.go

# Use distroless as minimal base image to package the manager binary
# Refer to https://github.com/GoogleContainerTools/distroless for more details
Expand Down
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,10 @@ helm-crd-copy: yq kustomize ## Copy CRDs from kustomize to helm-chart

.PHONY: build
build: manifests generate fmt vet ## Build manager binary.
go build -o bin/manager cmd/main.go
go build -o bin/manager cmd/manager/main.go

build-plugin:
go build -o bin/kubectl-etcd cmd/kubectl-etcd/main.go

.PHONY: run
run: manifests generate fmt vet ## Run a controller from your host.
Expand Down
Loading

0 comments on commit df56b4d

Please sign in to comment.