Skip to content

FEATURE: Add zk start, stop, status, list, delete commands#45

Open
f1v3-dev wants to merge 1 commit into
developfrom
f1v3/zk-command
Open

FEATURE: Add zk start, stop, status, list, delete commands#45
f1v3-dev wants to merge 1 commit into
developfrom
f1v3/zk-command

Conversation

@f1v3-dev

@f1v3-dev f1v3-dev commented Jun 16, 2026

Copy link
Copy Markdown

🔗 Related Issue

⌨️ What I did

  • ZK Ensemble 관리를 위한 명령어(start, stop, status, list, delete)를 추가합니다.
    • arcusctl zk start <name> [--node <myid>]: 앙상블 전체 또는 특정 서버 기동
    • arcusctl zk stop <name> [--node <myid>]: 앙상블 전체 또는 특정 서버 중지
    • arcusctl zk status <name>: 각 서버의 상태(leader/follower) 출력
    • arcusctl zk list: 배포된 앙상블 목록 출력
    • arcusctl zk delete <name>: 원격 파일과 로컬 메타데이터 삭제

테스트 방법

로컬에 SSH가 설정되어 있다는 가정하에 local-test.yml 로 테스트할 수 있습니다.

MacOS 기준: 설정 - 일반 - 공유 - 원격 로그인 활성화

local-test.yml

name: local-test
path: /tmp/arcusctl-test/zookeeper

servers:
  - myid: 1
    address: localhost:3181:3281:3381
  - myid: 2
    address: localhost:3182:3282:3382
  - myid: 3
    address: localhost:3183:3283:3383

global_config:
  data_dir: /tmp/arcusctl-test/data

command

go build

./arcusctl zk deploy 3.5.9 local-test.yml
./arcusctl zk start local-test
./arcusctl zk status local-test           # leader, follower 확인
./arcusctl zk list                        # 앙상블 목록 출력
./arcusctl zk stop local-test --node 2    # 특정 노드만 중지
./arcusctl zk start local-test --node 2   # 특정 노드만 기동
./arcusctl zk stop local-test
./arcusctl zk delete local-test

@f1v3-dev f1v3-dev requested review from namsic and oliviarla June 16, 2026 08:30
@f1v3-dev f1v3-dev self-assigned this Jun 16, 2026
Comment thread internal/store/store.go Outdated
return nil, nil, err
}

return &topo, data, nil

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

data는 어떤 경우에 사용하나요?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

현재는 사용되지 않아 제거하도록 하겠습니다.

Comment thread internal/zk/delete.go Outdated
Comment on lines +26 to +28
if err := ssh.Run(server.Host(), stopCmd); err != nil {
fmt.Printf(" warning: stop failed: %v\n", err)
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

진행 중단해야 할 것 같습니다.

@f1v3-dev f1v3-dev Jun 19, 2026

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

설계안 스펙대로 아래의 흐름으로 수정하도록 하겠습니다.

  • 내부 topology의 servers 목록과 실제 형상이 다르면 실패 처리한다.
  • ensemble의 모든 ZK 서버가 중지 상태이지 않다면 실패 처리한다.
  • 각 장비마다 서버가 설치된 디렉토리를 제거하고, 내부 메타데이터에서도 제거한다.

@f1v3-dev f1v3-dev requested a review from namsic June 19, 2026 06:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants