Skip to content

How to use CLI Tool

Jihoon Seo edited this page Sep 15, 2021 · 7 revisions

Build a CLI Tool(cbadm)

$ git clone https://github.com/cloud-barista/cb-mcks.git
$ cd cb-mcks
$ go build -o cbadm src/grpc-api/cbadm/cbadm.go
$ chmod +x cbadm

Usage

cbadm [command]
  • Available Commands:

    • cluster This is a command for managing cluster
    • completion generate the autocompletion script for the specified shell
    • healthy This is a command for checking CB-MCKS's health
    • help Help about any command
    • node This is a command for managing node
    • version This is a command to check the version of cbadm
  • Flags:

    • -c, --config string config file (default "./grpc_conf.yaml")
    • -h, --help help for cbadm
    • -i, --input string input format (json/yaml) (default "yaml")
    • -o, --output string output format (json/yaml) (default "yaml")
  • Use "cbadm [command] --help" for more information about a command.

Create a cluster

cbadm cluster create --config ${GRPC_CONFIG} -i json -o json -d \
'{
  "namespace":  "<Namespace Name>",
  "ReqInfo": {
    "name": "<Cluster Name>",
    "config": {
      "kubernetes": {
        "networkCni": "<Network CNI addon>",
        "podCidr": "<Pod CIDR>",
        "serviceCidr": "<Service CIDR>",
        "serviceDnsDomain": "<Service DNS Domain>"
      }
    },
    "controlPlane": [
      {
        "connection": "<Connection info. Name>",
        "count": <Node Count>,
        "spec": "<CSP Machine Spec.>"
      }
    ],
    "worker": [
      {
        "connection": "<Connection info. Name>",
        "count": <Node Count>,
        "spec": "<CSP Machine  Spec.>"
      }
    ]
  }
}'
  • Parameters

    • GRPC_CONFIG : gRPC 클라이언트 설정 파일
  • Values

    • Namespace Name : Cloud-Barista 네임스페이스 이름
    • Network CNI addon : "kilo", "canal"
    • Pod CIDR : K8s Pod CIDR (default) 10.244.0.0/16
    • Service CIDR : K8s Service CIDR (default) 10.96.0.0/12
    • Service DNS Domain : Service 기본 도메인 이름 (default) cluster.local
    • Connection info. Name : Cloud-Barista Cloud Connection Info.
    • Node Count : 생성할 노드 갯수 (ex.) 1,3,5, ...
    • CSP Machine Sepc. : CSP별 VM 인스턴스 타입 (ex.) t2.medium, n1-standard-2, Standard_B2s, ..
  • Example

$ ./cbadm cluster create --config src/grpc-api/cbadm/grpc_conf.yaml -i json -o json -d \
'{
  "namespace":  "<Namespace Name>",
  "ReqInfo": {
    "name": "mcks-cluster",
    "config": {
      "kubernetes": {
        "networkCni": "kilo",
        "podCidr": "10.244.0.0/16",
        "serviceCidr": "10.96.0.0/12",
        "serviceDnsDomain": "cluster.local"
      }
    },
    "controlPlane": [
      {
        "connection": "config-aws-ap-northeast-1",
        "count": 1,
        "spec": "t2.medium"
      }
    ],
    "worker": [
      {
        "connection": "config-gcp-asia-northeast3",
        "count": 3,
        "spec": "n1-standard-2"
      }
    ]
  }
}'

Get a cluster

cbadm cluster get --config ${GRPC_CONFIG} -o json --ns ${NAMESPACE_NAME} --cluster ${CLUSTER_NAME}
  • Parameters

    • GRPC_CONFIG : gRPC 클라이언트 설정 파일
    • NAMESPACE_NAME : Cloud-Barista 네임스페이스 이름
    • CLUSTER_NAME : MCKS 클러스터 이름
  • Example

$ ./cbadm cluster get --config src/grpc-api/cbadm/grpc_conf.yaml -o json --ns mcks-demo-ns --cluster mcks-cluster

Get clusters

cbadm cluster list --config ${GRPC_CONFIG} -o json --ns ${NAMESPACE_NAME}
  • Parameters

    • GRPC_CONFIG : gRPC 클라이언트 설정 파일
    • NAMESPACE_NAME : Cloud-Barista 네임스페이스 이름
  • Example

$ ./cbadm cluster list --config src/grpc-api/cbadm/grpc_conf.yaml -o json --ns mcks-demo-ns

Delete a cluster

cbadm cluster delete --config ${GRPC_CONFIG} -o json --ns ${NAMESPACE_NAME} --cluster ${CLUSTER_NAME}
  • Parameters

    • GRPC_CONFIG : gRPC 클라이언트 설정 파일
    • NAMESPACE_NAME : Cloud-Barista 네임스페이스 이름
    • CLUSTER_NAME : MCKS 클러스터 이름
  • Example

./cbadm cluster delete --config src/grpc-api/cbadm/grpc_conf.yaml -o json --ns mcks-demo-ns --cluster mcks-cluster

Add a Node

only worker node

cbadm node add --config ${GRPC_CONFIG} -i json -o json -d \
'{
  "namespace":  "<Namespace Name>",
  "cluster":  "<Cluster Name>",
  "ReqInfo": {
    "worker": [
      {
        "connection": "<Connection info. Name>",
        "count": <Node Count>,
        "spec": "<CSP Machine Sepc>"
      }
    ]
  }
}'
  • Parameters

    • GRPC_CONFIG : gRPC 클라이언트 설정 파일
  • Values

    • Namespace Name : Cloud-Barista 네임스페이스 이름
    • Cluster Name : MCKS 클러스터 이름
    • Connection info. Name : Cloud-Barista Cloud Connection Info.
    • Node Count : 추가할 노드 갯수 (ex.) 1,3,5, ...
    • CSP Machine Sepc. : CSP별 VM 인스턴스 타입 (ex.) t2.medium, n1-standard-2, Standard_B2s, ..
  • Example

$ ./cbadm node add --config src/grpc-api/cbadm/grpc_conf.yaml -i json -o json -d \
'{
  "namespace":  "mcks-demo-ns",
  "cluster":  "mcks-cluster",
  "ReqInfo": {
    "worker": [
      {
        "connection": "config-azure-koreacentral",
        "count": 1,
        "spec": "Standard_B2s"
      }
    ]
  }
}'

Get a Node

cbadm node get --config ${GRPC_CONFIG} -o json --ns ${NAMESPACE_NAME} --cluster ${CLUSTER_NAME} --node ${NODE_NAME}	
  • Parameters

    • GRPC_CONFIG : gRPC 클라이언트 설정 파일
    • NAMESPACE_NAME : Cloud-Barista 네임스페이스 이름
    • CLUSTER_NAME : MCKS 클러스터 이름
    • NODE_NAME : 노드 이름
  • Example

$ ./cbadm node get --config src/grpc-api/cbadm/grpc_conf.yaml -o json --ns mcks-demo-ns --cluster mcks-cluster --node mcks-cluster-worker-1-asefv

Get Nodes

cbadm node list --config ${GRPC_CONFIG} -o json --ns ${NAMESPACE_NAME} --cluster ${CLUSTER_NAME}
  • Parameters

    • GRPC_CONFIG : gRPC 클라이언트 설정 파일
    • NAMESPACE_NAME : Cloud-Barista 네임스페이스 이름
    • CLUSTER_NAME : MCKS 클러스터 이름
  • Example

$ ./cbadm node list --config src/grpc-api/cbadm/grpc_conf.yaml -o json --ns mcks-demo-ns --cluster mcks-cluster

Remove a Node

only worker node

cbadm node remove --config src/grpc-api/cbadm/grpc_conf.yaml -o json --ns mcks-demo-ns --cluster mcks-cluster --node mcks-cluster-worker-1-asefv
  • Parameters

    • GRPC_CONFIG : gRPC 클라이언트 설정 파일
    • NAMESPACE_NAME : Cloud-Barista 네임스페이스 이름
    • CLUSTER_NAME : MCKS 클러스터 이름
    • NODE_NAME : 노드 이름
  • Example

$ ./cbadm node remove --config src/grpc-api/cbadm/grpc_conf.yaml -o json --ns mcks-demo-ns --cluster mcks-cluster --node mcks-cluster-worker-1-asefv