Choerodon CLI工具

1、下载CLI工具

  • 首先需要下载CLI安装包,请下载0.17.0版本或者更高版本,下载地址如下:
  • 下载至本地后,将其解压至可执行文件bin目录下即可。
2、创建client

由于cli工具在访问choerodon平台的时候需要授权,所以采用password类型的oauth2方式去获取 token

需要去choerodon平台的组织下创建客户端,具体设置如下

.c7n.yaml 配置文件

登录

使用c7nctl登录之前,必须在用户根目录下创建.c7n.yaml配置文件

-U 用户名 -P 密码 –url 平台gateway地址

登陆完之后,会在用户根目录的回写部分信息,该文件为当前用户的信息,用于后续操作的授权,如果没有登陆然后去操作命令,会提示需要登陆,文件内容为:

  1. OrganizationCode: choerodon-01
  2. OrganizationId: 507
  3. ProjectCode: devops-19-b2
  4. ProjectId: 999
  5. Token: d4d92f34-57bd-4ce0-a7f5-2de31ef92750
  6. UserName: "25147"

image

登出

  1. ./c7nctl logout

登出之后,会清空.c7n.yaml文件,登出之后进行命令操作会提示需要 登陆

查询用户有权限的组织

  1. ./c7nctl get org

结果如下:

image

修改上下文中用户默认的组织,默认的组织用于后续命令的默认组织

  1. ./c7nctl use org -o xxx

查询用户有权限的项目

  1. ./c7nctl get proj

image

修改上下文中用户默认的项目,默认的项目用于后续命令的默认项目

  1. ./c7nctl use proj -p xxx

查询运维项目集群

  1. ./c7nctl get cluster -p xxx(-p 非必输)

创建运维项目集群

  1. ./c7nctl create cluster --name xxx --code xxx --description xxx -p xxx(-p 非必输)

image

查询集群节点

  1. ./c7nctl get node -c xxx -p xxx(-p 非必输)
  2. -c: 集群code

  1. ./c7nctl get app -p xxx(-p 非必输)

image

查询应用服务版本

  1. ./c7nctl get app-version -c xxx -p xxx(-p 非必输)
  2. -c: 应用code

创建项目应用服务

  1. ./c7nctl create app --name xxx --code xxx --type xxx --templateAppServiceId xxx --templateAppServiceVersionId xxx(--templateAppServiceId --templateAppServiceVersionId 非必须)

如果要从其他已经存在的应用进行引用,那么需要指定templateAppServiceId和templateAppServiceVersionId

image

查询环境列表

创建环境

  1. ./c7nctl create env --name xxx --code xxx --cluster xxx --description(非必须) -p xxx(-p 非必输)

image

查询实例列表

  1. ./c7nctl get instance -e xxx -p xxx(-p 非必输)

查询实例部署的value列表,并下载到本地

  1. ./c7nctl get value -e xxx -p xxx(-p 非必输)
  2. 保存路径是用户目录下的 c7nctl/value/

image

创建实例

  1. ./c7nctl create instance --env xxx --appServiceId xxx --appServiceVersionId xxx --instanceName xxx --valueFile xxx -p xxx(-p 非必输)

查询网络

  1. ./c7nctl get service --env xxx -p xxx(-p 非必输)

image

创建网络

    1. ---
    2. apiVersion: v1
    3. kind: Service
    4. metadata:
    5. annotations:
    6. choerodon.io/network-service-instances: spring-test-15ae5+spring-test-d43f5+spring-test-97935+spring-test-1234
    7. choerodon.io/network-service-app: gogo
    8. labels:
    9. choerodon.io/network: service
    10. name: spring-aklfjasdklfjssss
    11. spec:
    12. externalIPs:
    13. - 172.18.2.11
    14. ports:
    15. - name: http1
    16. port: 9999
    17. protocol: TCP
    18. targetPort: 9999
    19. sessionAffinity: None
    20. type: ClusterIP
    21. selector:
    22. app: test
    23. test: app

    查询域名

    1. ./c7nctl get ingress --env xxxx

    1. ./c7nctl create ingress --env xxx --file xxx -p xxx (-p 非必输, file是绝对路径)
    1. apiVersion: networking.k8s.io/v1beta1
    2. metadata:
    3. annotations: {}
    4. labels:
    5. choerodon.io/network: ingress
    6. name: c7ncli-test
    7. spec:
    8. rules:
    9. - host: 2223.c7nctl-test.com
    10. http:
    11. paths:
    12. - backend:
    13. serviceName: test-test
    14. servicePort: 4321
    15. path: /
    16. tls:
    17. - hosts:
    18. - 2223.c7nctl-test.com
    19. secretName: asdf

    创建域名的前提是有成功创建的Service,并且serviceName指定为成功创建的service的name

    image

    查询证书

    1. ./c7nctl get cert --env xxxx -p xxx(-p 非必输)

    创建证书

    1. ./c7nctl create cert --env xxx --file xxx -p xxx (-p 非必输, file是绝对路径)
    1. ---
    2. apiVersion: certmanager.k8s.io/v1alpha1
    3. kind: Certificate
    4. metadata:
    5. name: c7nctl-cli-test
    6. namespace: staging-test
    7. spec:
    8. commonName: 1.c7nctl-test.com
    9. dnsNames:
    10. - 2.c7nctl-test.com
    11. - 3.c7nctl-test.com
    12. - 4.c7nctl-test.com
    13. existCert:
    14. cert: |
    15. -----BEGIN CERTIFICATE-----
    16. MIICYTCCAcoCCQCs45mePIbzRTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQGEwJV
    17. UzENMAsGA1UECAwETWFyczETMBEGA1UEBwwKaVRyYW5zd2FycDETMBEGA1UECgwK
    18. aVRyYW5zd2FycDETMBEGA1UECwwKaVRyYW5zd2FycDEYMBYGA1UEAwwPd3d3LjU5
    19. MXdpZmkuY29tMB4XDTE4MTAxNzAyMTA0OFoXDTI4MTAxNDAyMTA0OFowdTELMAkG
    20. A1UEBhMCVVMxDTALBgNVBAgMBE1hcnMxEzARBgNVBAcMCmlUcmFuc3dhcnAxEzAR
    21. BgNVBAoMCmlUcmFuc3dhcnAxEzARBgNVBAsMCmlUcmFuc3dhcnAxGDAWBgNVBAMM
    22. cxgppTHrbzWloh26fXfIyLZI+YpNMCnJ+4wcv3jnZZ6OZsvnoo0z/yl/A9kDY9r5
    23. Rft9fwE4WKMSPNKlGd4psPLw1XNHAXhi8RAy1cHgkBMuwor6ZJhFgnsqKk4Xp68D
    24. jaCI2oxu2SYIBU67Fxy+h7G5BsWKwARtj5kP8NECAwEAATANBgkqhkiG9w0BAQUF
    25. AAOBgQC2Pko8q1NicJ0oPuhFTPm7n03LtPhCaV/aDf3mqtGxraYifg8iFTxVyZ1c
    26. ol0eEJFsibrQrPEwdSuSVqzwif5Tab9dV92PPFm+Sq0D1Uc0xI4ziXQ+a55K9wrV
    27. TKXxS48TOpnTA8fVFNkUkFNB54Lhh9AwKsx123kJmyaWccbt9Q==
    28. -----END CERTIFICATE-----
    29. key: |
    30. -----BEGIN RSA PRIVATE KEY-----
    31. MIICXgIBAAKBgQC3G09zGCmlMetvNaWiHbp9d8jItkj5ik0wKcn7jBy/eOdlno5m
    32. y+eijTP/KX8D2QNj2vlF+31/AThYoxI80qUZ3imw8vDVc0cBeGLxEDLVweCQEy7C
    33. ivpkmEWCeyoqThenrwONoIjajG7ZJggFTrsXHL6HsbkGxYrABG2PmQ/w0QIDAQAB
    34. AoGBAIxvTcggSBCC8OciZh6oXlfMfxoxdFavU/QUmO1s0L+pow+1Q9JjoQxy7+ZL
    35. JqwBI/04G7se+RouHyXjRS9U76HnPM8+/IS2h+T6CbXLOpYBAkEA2j0JmyGVs+WV
    36. I9sG5glamJqTBa4CfTORrdFW4EULoGkUc24ZFFqn9W4e5yfl/pCkPptCenvIrAWp
    37. /ymnHeLn6QJBANbKGO9uBizAt4+o+kHYdANcbU/Cs3PLj8yOOtjkuMbH4tPNQmB6
    38. /u3npiVk7/Txfkg0BjRzDDZib109eKbvGKkCQBgMneBghRS7+gFng40Z/sfOUOFR
    39. WajeY/FZnk88jJlyuvQ1b8IUc2nSZslmViwFWHQlu9+vgF+kiCU8O9RJSvECQQCl
    40. Vkx7giYerPqgC2MY7JXhQHSkwSuCJ2A6BgImk2npGlTw1UATJJq4Z2jtwBU2Z+7d
    41. ha6BEU6FTqCLFZaaadKBAkEAxko4hrgBsX9BKpFJE3aUIUcMTJfJQdiAhq0k4DV8
    42. 5GVrcp8zl6mUTPZDaOmDhuAjGdAQJqj0Xo0PZ0fOZPtR+w==
    43. -----END RSA PRIVATE KEY-----

    image

    查找配置映射

    创建配置映射

    1. ./c7nctl create cm --env xxx --file xxx -p xxx (-p 非必输, file是绝对路径)
    1. apiVersion: v1
    2. data:
    3. key: value
    4. kind: ConfigMap
    5. metadata:
    6. name: c7nctl-cli-test2

    image

    查询密文

    1. ./c7nctl get secret --env xxxx -p xxx(-p 非必输)

    创建密文

    1. ./c7nctl create secret --env xxx --file xxx -p xxx (-p 非必输, file是绝对路径)

    apiVersion: v1kind: Secretmetadata:name: secret-c7n-ctlstringData:key1: value1key2: value2

    1. apiVersion: v1
    2. kind: Secret
    3. metadata:
    4. name: secret-c7n-ctl
    5. stringData:
    6. key1: value1
    7. key2: value2

    image

    查询自定义资源

    1. ./c7nctl get custom --env xxxx -p xxx(-p 非必输)

    创建自定义资源

    1. ./c7nctl create custom --env xxx --file xxx -p xxx (-p 非必输, file是绝对路径)
    1. apiVersion: v1
    2. kind: PersistentVolume
    3. metadata:
    4. name: pv-12-18-023
    5. spec:
    6. accessModes:
    7. - ReadWriteMany
    8. capacity:
    9. storage: 1Gi
    10. nfs:
    11. path: /u01/staging
    12. server: 192.168.16.215

    image

    查询PV

    1. ./c7nctl get pv

    创建PV

    1. ./c7nctl ceate pv --clusterCode xxx --file xxx
    1. apiVersion: v1
    2. kind: PersistentVolume
    3. metadata:
    4. name: pv-12-18-023
    5. spec:
    6. accessModes:
    7. - ReadWriteMany
    8. capacity:
    9. storage: 1Gi
    10. nfs:
    11. path: /u01/staging
    12. server: 192.168.16.215
    1. ./c7nctl get pvc --env xxx

    创建PVC