构建control plane

准备

环境

  • 系统: MacOS
  • GO: 1.9.2
  • dep: devel
  • IDE: Goland
  • NodeJs: 6.7.0
  • yarn: 1.3.2

GO环境变量

GOPATH的默认会放在$HOME

export GOROOT=/usr/local/go
export GOPATH=/Users/addo/Workspaces/go_w
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN

安装dep

brew install dep

Prometheus

允许Prometheus集群外访问

kind: Service
apiVersion: v1
metadata:
  name: prometheus-external
  namespace: conduit
  labels:
    app: prometheus
    conduit.io/plane: control
  annotations:
    conduit.io/created-by: "conduit/cli v0.1.0"
spec:
  type: NodePort
  selector:
    app: prometheus
  ports:
  - name: http
    port: 9090
    nodePort: 30090
    targetPort: 9090

下载源码

cd $GOPATH
mkdir -p src/github.com
git clone [email protected]:runconduit/conduit.git runconduit/conduit
cd src/github.com/runconduit/conduit
dep ensure #会创建一个vendor目录
dep prune

IDE构建

打开Goland, 选择open project到$GOPATH/github.com/runconduit/conduit

CMD+,打开Preference:

  • 添加GOROOT (自动添加)
  • 添加GOPATH (自动添加)
  • 添加ProjectGOPATH: $GOPATH/github.com/runconduit/conduit/vendor

web

web需要单独构建.

cd web/app
yarn webpack #创建dist目录

运行

  1. telemetry 文件: controller/cmd/telemetry/main.go 参数:-kubeconfig=/Users/addo/.kube/config -addr=:8087 -metrics-addr=:9997 -prometheus-url=http://192.168.99.100:30090
  2. destination 文件: controller/cmd/destination/main.go 参数: -kubeconfig=/Users/addo/.kube/config -metrics-addr=:9999 -addr=:8089
  3. tab 文件: controller/cmd/tap/main.go 参数: -kubeconfig=/Users/addo/.kube/config -metrics-addr=:9998 -addr=:8088
  4. public-api 文件: controller/cmd/public-api/main.go 参数: -tap-addr=127.0.0.1:8088 -telemetry-addr=127.0.0.1:8087 -metrics-addr=:9995 -addr=:8085
  5. web 文件: web/main.go 参数: -addr=:8084 -metrics-addr=:9994 -api-addr=localhost:8085 -static-dir=/Users/addo/Workspaces/go_w/src/github.com/runconduit/conduit/web/app/dist -template-dir=/Users/addo/Workspaces/go_w/src/github.com/runconduit/conduit/web/templates -uuid=96e84670-0a7c-4c08-8c13-2c2d988f992e