MaxLang操作资源示例

MaxLang 操作MaxCloud相关功能示例

登录MaxCloud

loginMaxCloud("用户名","密码")

参数1:用户名(登录MaxCloud账户)

参数2:密码(登录MaxCloud密码)

loginMaxcloud("[email protected]", <<password>>)

使用Credential 方式登录MaxCloud

setCredential("maxcloud", "[email protected]", <<password>>)

loginMaxcloud("maxcloud")

setCredential("maxcloudab", "[email protected]", <<password>>)

loginMaxcloud("maxcloudab")

获取Team列表

获取登录账号可以使用的所有Team列表

listTeam()

获取Team下的所有项目列表

listProject(teamId)

参数1:团队ID

获取项目下的所有集群列表

listCluster(teamId, projectId)

参数1:团队ID

参数2:项目ID

初始化集群参数变量

使用一个map变量保存teamId、projectId,clusterId、namespace 等参数,使用一个方便识别的名称,后续集群相关方法调用第一个参数都传入这个变量,用于指定集群环境。

teamId,projectId,clusterId 等参数可以直接从MaxCloud项目管理页面复制,如下图所示

image-20221010151738693

从网页中复制的一下内容,只有 teamIdprojectIdclusterIdnamespace 几个参数是必填的,Name相关参数只是为了方便您识别

设置当前环境的kubeconfig

参数1:集群环境变量

此函数执行后会把当前集群环境变量指定集群的kubeconfig放在当前环境的~/.kube/config 文件中,后续可以使用 exec(xxx)执行shell 命令,如果使用exec(kubectl get pod -n namespaceName) 就可以获取指定namespace下的pod列表

如果需要切换kubeconfig需要重新执行useCluster,该操作会用新集群kubeconfig覆盖之前的文件

展示设置集群kubeconfig后使用shell命令操作集群

创建命名空间

参数1:集群环境变量

参数2:新命名空间名称

获取资源Yaml

参数1:集群环境变量

参数2:资源类型

参数3:资源名称

Describe 资源

参数1:集群环境变量

参数2: 资源类型

参数3:资源名称

Scale Deployment

参数1:集群环境变量

参数2:Deployment 名称

参数3: Replicas 数量

Scale Statefulset

参数1:集群环境变量

参数2:Statefulset 名称

参数3:Replicas 数量

列举所有资源

参数1:集群环境变量

参数2:资源类型

listResource 指定资源类型后可以获取上面指定集群命名空间下的所有资源 listResource 可以只传入一个类型参数,也可以传入第二个参数作为零时命名空间(不会覆盖之前useCluster设置的命名空间)

目前支持的资源为:

  • deployment

  • job

  • cronjob

  • daemonset

  • statefulset

  • service

  • ingress

  • persistentvolumeclaim

  • configmap

  • secret

  • gateway

  • namespace

  • pod

  • horizontalpodautoscaler

  • serviceaccount

  • replicaset

  • poddisruptionbudget

  • node

  • storageclass

获取随机字符串

randStr参数为需要获取随机字符串长度,如果不传参数默认为6

把Maxlang对象转换成Json

测试把Map转换为json

测试把数组对象转换成json

测试把函数返回对象转为json

等待N秒

sleep(second)

参数1:休眠秒数

使用模版Apply Yaml

声明字符串模版

模版语法同Golang 语法

声明一个Map数据用于替换上面模版的占位

Map 数据key、value 都必须是字符串,暂不支持其他类型

使用fillTemp 方法用map 替换模版中的占位符,获取最终可执行的yaml字符串

调用applyYaml 方法在集群中部署yaml

HPA

锁定HPA

参数1:当前集群环境 参数2:HPA 名称 参数3:minReplicas

设置minReplicas值,默认MaxReplicas不变,如果当前MaxReplicas小于要设置的minReplicas则修改 MaxReplicas为minReplicas一样 例如:

调用 localHpa(env, "demo-hpa", 3),锁定为3则执行后结果为

如果再次调用调用 localHpa(env, "demo-hpa", 10),锁定为10则执行后结果为

设置HPA 的Replicas

参数1:HPA名称

参数2:minReplicas

参数3:maxReplicas

获取HPA的minReplicas

参数1:集群环境

参数2:HPA名称

获取HPA的maxReplicas

参数1:集群环境

参数2:HPA名称

获取HPA当前Replicas

参数1:集群环境

参数2:HPA名称

Helm 安装

添加Repo

参数1:集群环境变量

参数2:repo name

参数3:repo URL

设置sets

安装Chart

参数1:集群环境变量

参数2:releaseName

参数3:chart name

参数4:chart版本

参数5:sets参数 (可选)

查循已安装的Helm列表

参…-stage-old.detailroi.mintegral.com")

AWS ASG Size查询和更改

ASG 相关方法都支持通过公共方法执行云商,或者用云商的方法名,以获取asg为例

  • 参数中指定云商(aws、aliyun、huawei)

  • 直接用云商的方法

listASGs、getASG、updateASG、lockASG 都支持上述使用方式

usage:

列出region的ASG, 如果asgName是空, 列出所有的ASG

更新ASG的最小容量、最大容量、所需容量

获取ASG的最大、最小、所需容量

锁定ASG到lockSize

e.g.

查询ASG(s)

参数1:云商credential ,请先试用setCredential(name, key, value 设置)

参数2:region

参数3:asgName (可选)

  • 获取Aws asg列表

  • 获取阿里云 asg 列表

  • 获取huawei asg 列表

使用参数指定云商

更改ASG的最小容量、最大容量、所需容量

参数1:云商credential ,请先试用setCredential(name, key, value 设置)

参数2:region

参数3:asgName

参数4:最小

参数5:最大

参数6:期望值

  • 修改Aws asg

  • 修改阿里云 asg

  • 修改 huawei asg

使用参数指定云商

锁定ASG容量

参数1:云商credential ,请先试用setCredential(name, key, value 设置)

参数2:region

参数3:asgName

参数4:锁定值

如果参数4锁定值小于1,则最小值会被修改为当前的期望值 如果参数4大于最大值,则最大值会被修改为锁定值 如果期望值小于参数4锁定值,则期望值修改为所定值

  • 锁定Aws asg

  • 锁定aliyun asg

  • 锁定huawei asg

获取asg

参数1:云商credential ,请先试用setCredential(name, key, value 设置)

参数2:region

参数3:asgName

  • 获取Aws asg列表

  • 获取阿里云 asg 列表

  • 获取huawei asg 列表

Bucket 管理

列出Bucket

参数1:credential

参数2:云商provider

参数3:endpoint(aliyun的时候必传)

  • 列出Aws bucket

  • 列出Aliyun bucket

创建文件夹

参数1:credential

参数2:云商provider (aws,aliyun)

参数3:bucketName

参数4:dirName

参数5:endpoint(aliyun的时候必传)

  • aws 指定bucket下创建文件

  • aliyun 指定bucket下创建文件

列出Bucket 中的文件

参数1:credential

参数2:云商provider

参数3:bucketName

参数4:前缀 Prefix

参数5:endpoint(aliyun的时候必传)

  • 列出aws 指定bucket 下的文件

  • 列出aliyun 指定bucket 下的文件

最后更新于

这有帮助吗?