Loadbalancer: type: object description: Loadbalancer实例 properties: id: type: string description: 实例uuid readOnly: true address: type: string description: 实例IP地址,即virtual ip readOnly: true LoadbalancerListener: type: object description: Loadbalancer监听实例 properties: id: type: string description: 实例uuid readOnly: true loadbalancer_id: type: string description: 所属的loadbalancer的uuid readOnly: true listener_type: type: string description: 监听协议类型 enum: - tcp readOnly: true listener_port: type: integer description: 监听端口,即virtual port readOnly: true scheduler: type: string description: 调度算法 readOnly: true LoadbalancerListenerRule: type: object description: Loadbalancer转发规则实例 properties: id: type: string description: 实例uuid readOnly: true listener_id: type: string description: 所属的loadbalancer监听uuid readOnly: true domain: type: string description: 转发规则匹配的域名 path: type: string description: 转发规则匹配的路径 backend_group_id: type: string description: 转发规则对应的后端服务器组 LoadbalancerBackendGroup: type: object description: Loadbalancer后端服务器组实例 properties: id: type: string description: 实例uuid readOnly: true loadbalancer_id: type: string description: 所属的loadbalancer的uuid readOnly: true LoadbalancerBackend: type: object description: Loadbalancer后端实例 properties: id: type: string description: 实例uuid readOnly: true backend_group_id: type: string description: 所属的loadbalancer后端服务器组uuid readOnly: true backend_type: type: string description: 后端服务器类型 readOnly: true enum: - guest - host - ip address: type: string description: 后端IP地址,即real ip readOnly: true port: type: string description: 后端端口,即real port readOnly: true weight: type: integer description: 后端权重 LoadbalancerListResponse: type: object properties: loadbalancers: type: array items: $ref: "#/Loadbalancer" LoadbalancerResponse: type: object properties: loadbalancer: type: object $ref: "#/Loadbalancer" LoadbalancerListenerCreateRequest: type: object properties: loadbalancerlistener: type: object required: - loadbalancer - listener_type - listener_port - scheduler properties: loadbalancer: type: string description: 指定loadbalaner实例uuid listener_type: type: string enum: - tcp description: 指定loadbalaner监听协议 listener_port: type: integer description: 指定loadbalaner监听端口 scheduler: type: string description: 指定监听的调度算法 enum: - rr - wrr - wlc - sch - tch backend_group: type: string description: 指定后端服务器组uuid LoadbalancerListenerListResponse: type: object properties: loadbalancerlisteners: type: array items: $ref: "#/LoadbalancerListener" LoadbalancerListenerResponse: type: object properties: loadbalancerlistener: type: object $ref: "#/LoadbalancerListener" LoadbalancerListenerRuleCreateRequest: type: object properties: loadbalancerlistenerrule: type: object required: - listener - backend_group properties: listener: type: string description: 所属的loadbalancer监听id backend_group: type: string description: 规则应对的后端服务器组uuid domain: type: string description: 转发规则匹配的域名 path: type: string description: 转发规则匹配的路径 LoadbalancerListenerRuleListResponse: type: object properties: loadbalancerlistenerrules: type: array items: $ref: "#/LoadbalancerListenerRule" LoadbalancerListenerRuleResponse: type: object properties: loadbalancer: type: object $ref: "#/LoadbalancerListenerRule" LoadbalancerBackendGroupListResponse: type: object properties: loadbalancerbackendgroups: type: array items: $ref: "#/LoadbalancerBackendGroup" LoadbalancerBackendGroupResponse: type: object properties: loadbalancerbackendgroup: type: object $ref: "#/LoadbalancerBackendGroup" LoadbalancerBackendCreateRequest: type: object properties: loadbalancerbackend: type: object required: - backend_group - backend_type - backend - port - weight properties: backend_group: type: string description: 指定loadbalaner后端服务器组uuid backend_type: type: string enum: - guest - host - ip description: 指定后端服务器的类型。仅管理员能够指定host, ip为后端服务器 backend: type: string description: 后端服务器的标识信息 当backend_type为guest时,该字段的值应当是服务器的uuid 当backend_type为host时,该字段的值应为宿主机的uuid 当backend_type为ip时,该字段的值应为有效的IP地址 port: type: integer description: 后端服务器的端口 weight: type: integer description: 后端服务器的权重 LoadbalancerBackendListResponse: type: object properties: loadbalancerbackends: type: array items: $ref: "#/LoadbalancerBackend" LoadbalancerBackendResponse: type: object properties: loadbalancerbackend: type: object $ref: "#/LoadbalancerBackend" LoadbalancerAclEntry: type: object properties: cidr: type: string example: 192.168.0.1/24 description: 网段 readOnly: true comment: type: string description: 注释 readOnly: true LoadbalancerAclEntries: type: array items: $ref: "#/LoadbalancerAclEntry" LoadbalancerCachedAclCreateRequest: type: object properties: cachedloadbalanceracl: type: object required: - cloudregion - cloudprovider - acl properties: cloudregion: type: string description: 指定公有云region cloudprovider: type: string description: 指定云账号订阅ID acl: type: string description: 指定需要同步的ACL ID listener: type: string description: 指定负载均衡监听器ID,华为云必须指定该参数。 LoadbalancerCachedAcl: allOf: - $ref: "./common.yaml#/SharableVirtualResourceBaseResponse" - $ref: "./common.yaml#/ExternalizedResourceBaseResponse" - type: object properties: acl_id: type: string description: 所属的本地访问控制uuid acl_entries: $ref: "#/LoadbalancerAclEntries" LoadbalancerCachedAclResponse: $ref: "#/LoadbalancerCachedAcl" LoadbalancerCachedAclListResponse: type: object properties: cached_loadbalancer_acls: type: array items: $ref: "#/LoadbalancerCachedAcl" LoadbalancerCachedCertificateCreateRequest: type: object properties: cachedloadbalancercertificate: type: object required: - cloudregion - cloudprovider - certificate properties: cloudregion: type: string description: 指定公有云region cloudprovider: type: string description: 指定云账号订阅ID certificate: type: string description: 指定需要同步的SSL证书 ID LoadbalancerCachedCertificateResponse: allOf: - $ref: "./common.yaml#/SharableVirtualResourceBaseResponse" - $ref: "./common.yaml#/ExternalizedResourceBaseResponse" - type: object properties: certificate_id: type: string example: ab58813d83284a7f95040901639013d3 description: 所属的本地证书uuid readOnly: true private_key: type: string description: 私钥内容 readOnly: true publicKey_algorithm: type: string description: 公钥算法 readOnly: true publicKey_bitLen: type: integer description: 公钥长度 readOnly: true signature_algorithm: type: string description: 签名算法 readOnly: true fingerprint: type: string example: sha1:da:39:a3:ee:5e:6b:4b:0d:32:55:bf:ef:95:60:18:90:af:d8:07:09 description: 证书指纹 readOnly: true not_before: type: string example: 2019-05-23T11:50:33.000000Z description: 最早生效时间 readOnly: true not_after: type: string example: 2020-05-23T11:50:33.000000Z description: 失效时间 readOnly: true common_name: type: string example: www.onecloud.com description: 域名 readOnly: true subject_alternative_names: type: string example: "" description: 附加域名 readOnly: true LoadbalancerCachedCertificateListResponse: type: object properties: cached_loadbalancercertificates: type: array items: $ref: "#/LoadbalancerCachedCertificateResponse" LoadbalancerCluster: type: object description: Loadbalancer集群实例 properties: id: type: string description: 实例uuid readOnly: true zone_id: type: string description: 集群所在的zone uuid readOnly: true LoadbalancerClusterCreateRequest: type: object properties: loadbalancercluster: type: object required: - zone properties: zone: type: string description: 指定集群所属的zone uuid LoadbalancerClusterListResponse: type: object properties: loadbalancerclusters: type: array items: $ref: "#/LoadbalancerCluster" LoadbalancerClusterResponse: type: object properties: loadbalancercluster: type: object $ref: "#/LoadbalancerCluster" LoadbalancerAgent: type: object description: | Loadbalancer转发实例 - 同cluster中的lbagent - vrrp virtual_router_id, preempt, pass必须相同 - vrrp priority必须不同 - 同zone不同cluster中的lbagent - vrrp virtual_router_id必须不同 - 创建时,若不满足以上条件,则创建失败 - 更新参数时(`params-patch`),同时更新同cluster的peer lbagents properties: id: type: string description: 实例uuid readOnly: true cluster_id: type: string description: 转发实例所属的集群id readOnly: true ha_state: type: string description: 转发实例的主备状态 readOnly: true enum: - MASTER - BACKUP - UNKNOWN ha_last_seen: type: string format: date-time description: 转发实例上次心跳UTC时间 readOnly: true example: "2019-07-24T06:38:07.000000Z" ha_timeout: type: integer description: | 转发实例心跳超时时间 若上次心跳时间距离当前时间超过此值,则认为实例已离线,进入非活跃状态 unit: seconds ip: type: string description: 转发实例自上报的IP地址 readOnly: true params: $ref: "#/LoadbalancerAgentParams" deployment: $ref: "#/LoadbalancerAgentDeployment" readOnly: true loadbalancer_acls: type: string format: date-time description: 转发实例当前同步到的最新LB访问控制对象时戳 loadbalancer_backend_groups: type: string format: date-time description: 转发实例当前同步到的最新LB后端服务器组对象时戳 loadbalancer_backends: type: string format: date-time description: 转发实例当前同步到的最新LB后端对象时戳 loadbalancer_certificates: type: string format: date-time description: 转发实例当前同步到的最新LB证书对象时戳 loadbalancer_listener_rules: type: string format: date-time description: 转发实例当前同步到的最新LB访问策略对象时戳 loadbalancer_listeners: type: string format: date-time description: 转发实例当前同步到的最新LB监听对象时戳 loadbalancers: type: string format: date-time description: 转发实例当前同步到的最新LB对象时戳 LoadbalancerAgentDeployment: type: object properties: host: type: string ansibleplaybook: type: string description: | 部署对应的ansibleplaybook uuid 可通过此字段获取部署的执行结果 LoadbalancerAgentParams: type: object properties: vrrp: $ref: "#/LoadbalancerAgentParamsVrrp" haproxy: $ref: "#/LoadbalancerAgentParamsHaproxy" telegraf: $ref: "#/LoadbalancerAgentParamsTelegraf" keepalived_conf_tmpl: type: string description: | 以base64编码的KeepAlived配置模板 创建时可选,服务端会设定默认值 example: Z2xvYmFsX2RlZnMgewoJcm91dGVyX2lkIHt7IC5hZ2VudC5pZCB9fQoJI3ZycnBfc3RyaWN0Cgl2cnJwX3NraXBfY2hlY2tfYWR2X2FkZHIKCWVuYWJsZV9zY3JpcHRfc2VjdXJpdHkKfQoKdnJycF9pbnN0YW5jZSBZdW5pb25MQiB7CglpbnRlcmZhY2Uge3sgLnZycnAuaW50ZXJmYWNlIH19Cgl2aXJ0dWFsX3JvdXRlcl9pZCB7eyAudnJycC52aXJ0dWFsX3JvdXRlcl9pZCB9fQoJYXV0aGVudGljYXRpb24gewoJCWF1dGhfdHlwZSBQQVNTCgkJYXV0aF9wYXNzIHt7IC52cnJwLnBhc3MgfX0KCX0KCXt7IGlmIC52cnJwLm5vdGlmeV9zY3JpcHQgLX19IG5vdGlmeSB7eyAudnJycC5ub3RpZnlfc2NyaXB0IH19IHJvb3Qge3stIGVuZCB9fQoJe3sgaWYgLnZycnAudW5pY2FzdF9wZWVyIC19fSB1bmljYXN0X3BlZXIgeyB7ey0gcHJpbnRsbiB9fQoJCXt7LSByYW5nZSAudnJycC51bmljYXN0X3BlZXIgfX0JCXt7IHByaW50bG4gLiB9fSB7ey0gZW5kIH19Cgl9Cgl7ey0gZW5kIH19Cglwcmlvcml0eSB7eyAudnJycC5wcmlvcml0eSB9fQoJYWR2ZXJ0X2ludCB7eyAudnJycC5hZHZlcnRfaW50IH19CglnYXJwX21hc3Rlcl9yZWZyZXNoIHt7IC52cnJwLmdhcnBfbWFzdGVyX3JlZnJlc2ggfX0KCXt7IGlmIC52cnJwLnByZWVtcHQgLX19IHByZWVtcHQge3stIGVsc2UgLX19IG5vcHJlZW1wdCB7ey0gZW5kIH19Cgl2aXJ0dWFsX2lwYWRkcmVzcyB7CgkJe3stIHByaW50ZiAiXG4iIH19CgkJe3stIHJhbmdlIC52cnJwLmFkZHJlc3NlcyB9fQkJe3sgcHJpbnRsbiAuIH19IHt7LSBlbmQgfX0KCQl7ey0gcHJpbnRmICJcdCIgLX19Cgl9Cn0K haproxy_conf_tmpl: type: string description: | 以base64编码的HAProxy配置模板 创建时可选,服务端会设定默认值 example: Cmdsb2JhbAoJbWF4Y29ubiA0MDk2MAoJdHVuZS5zc2wuZGVmYXVsdC1kaC1wYXJhbSAyMDQ4Cgl7ey0gcHJpbnRsbiB9fQoJe3stIGlmIC5oYXByb3h5Lmdsb2JhbF9zdGF0c19zb2NrZXQgfX0Je3sgcHJpbnRsbiAuaGFwcm94eS5nbG9iYWxfc3RhdHNfc29ja2V0IH19IHt7LSBlbmQgfX0KCXt7LSBpZiAuaGFwcm94eS5nbG9iYWxfbmJ0aHJlYWQgfX0JbmJ0aHJlYWQge3sgcHJpbnRsbiAuaGFwcm94eS5nbG9iYWxfbmJ0aHJlYWQgfX0ge3stIGVuZCB9fQoJe3stIGlmIC5oYXByb3h5Lmdsb2JhbF9sb2cgfX0Je3sgcHJpbnRsbiAuaGFwcm94eS5nbG9iYWxfbG9nIH19IHt7LSBlbmQgfX0KCmRlZmF1bHRzCgl0aW1lb3V0IGNvbm5lY3QgMTBzCgl0aW1lb3V0IGNsaWVudCA2MHMKCXRpbWVvdXQgc2VydmVyIDYwcwoJdGltZW91dCB0dW5uZWwgMWgKCXt7LSBwcmludGxuIH19Cgl7ey0gaWYgLmhhcHJveHkuZ2xvYmFsX2xvZyB9fQl7eyBwcmludGxuICJsb2cgZ2xvYmFsIiB9fSB7ey0gZW5kIH19Cgl7ey0gaWYgbm90IC5oYXByb3h5LmxvZ19ub3JtYWwgfX0Je3sgcHJpbnRsbiAib3B0aW9uIGRvbnRsb2ctbm9ybWFsIiB9fSB7ey0gZW5kIH19CgpsaXN0ZW4gc3RhdHMKCW1vZGUgaHR0cAoJYmluZCA6Nzc4CglzdGF0cyBlbmFibGUKCXN0YXRzIGhpZGUtdmVyc2lvbgoJc3RhdHMgcmVhbG0gIkhhcHJveHkgU3RhdGlzdGljcyIKCXN0YXRzIGF1dGggWXVuaW9uOkxCU3RhdHMKCXN0YXRzIHVyaSAvCg== telegraf_conf_tmpl: type: string description: | 以base64编码的Telegraf配置模板 创建时可选,服务端会设定默认值 example: Cltbb3V0cHV0cy5pbmZsdXhkYl1dCgl1cmxzID0gWyJ7eyAudGVsZWdyYWYuaW5mbHV4X2RiX291dHB1dF91cmwgfX0iXQoJZGF0YWJhc2UgPSAie3sgLnRlbGVncmFmLmluZmx1eF9kYl9vdXRwdXRfbmFtZSB9fSIKCWluc2VjdXJlX3NraXBfdmVyaWZ5ID0gdHJ1ZQoKW1tpbnB1dHMuaGFwcm94eV1dCglpbnRlcnZhbCA9ICJ7eyAudGVsZWdyYWYuaGFwcm94eV9pbnB1dF9pbnRlcnZhbCB9fXMiCglzZXJ2ZXJzID0gWyJ7eyAudGVsZWdyYWYuaGFwcm94eV9pbnB1dF9zdGF0c19zb2NrZXQgfX0iXQoJa2VlcF9maWVsZF9uYW1lcyA9IHRydWUK LoadbalancerAgentParamsVrrp: type: object description: VRRP参数 properties: advert_int: type: integer description: VRRP通告间隔,单位秒 mininum: 1 example: 1 interface: type: string description: VRRP通告发送的网口名 example: eth0 garp_master_refresh: type: integer description: | MASTER状态时发送免费ARP通告的最小间隔 单位秒,默认值27,为0时表示不发送通告 unit: seconds mininum: 0 example: 27 pass: type: string description: VRRP通告共享密码 example: OneCloudLB preempt: type: boolean description: 是否进行抢占式选举 example: false priority: type: integer description: VRRP实例优先级 mininum: 1 maximum: 255 example: 110 virtual_router_id: type: integer description: VRRP集群ID mininum: 1 maximum: 255 example: 100 LoadbalancerAgentParamsHaproxy: type: object description: HAProxy参数 properties: global_log: type: string description: HAProxy配置文件global段中关于日志的配置 example: "log /dev/log local0 info" global_nbthread: type: integer description: HAProxy配置文件global段中关于线程数的配置 example: 1 mininum: 1 maximum: 64 log_http: type: boolean description: 是否记录HTTP访问日志 log_tcp: type: boolean description: 是否记录TCP访问日志 log_normal: type: boolean description: 是否记录结果正常的访问 LoadbalancerAgentParamsTelegraf: type: object description: Telegraf参数 properties: haproxy_input_interval: type: integer description: HAProxy统计数据的采样间隔 unit: seconds minimum: 1 influx_db_output_name: type: string description: 存储监控数据的InfluxDB数据库的名称 example: "telegraf" influx_db_output_unsafe_ssl: type: boolean description: 访问InfluxDB时是否忽略证书校验 influx_db_output_url: type: string description: InfluxDB的API地址 example: https://10.168.222.136:8086/ LoadbalancerAgentCreateRequest: type: object properties: loadbalanceragent: type: object required: - cluster properties: cluster: type: string description: 指定转发实例所属的集群 params: $ref: "#/LoadbalancerAgentParams" LoadbalancerAgentListResponse: type: object properties: loadbalanceragents: type: array items: $ref: "#/LoadbalancerAgent" LoadbalancerAgentResponse: type: object properties: loadbalanceragent: type: object $ref: "#/LoadbalancerAgent" LoadbalancerAgentDeployRequest: type: object properties: loadbalanceragent: type: object properties: host: $ref: "./ansibleplaybook.yaml#/AnsiblePlaybookInventoryHost" deploy_method: type: string description: 部署方法 enum: - yum - copy example: host: name: server:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx vars: user: lbagent pass: lbagentpassword proj: system repo_base_url: https://10.168.222.136/yumrepo deploy_method: yum LoadbalancerBackendStatus: allOf: - $ref: '#/LoadbalancerBackend' - description: 后端及其健康检查状态描述 properties: check_time: type: string format: date-time description: 上一次检查时间 check_code: type: integer description: HTTP检查时,报端返回时的http状态码 check_status: type: string description: | 状态描述 { "UNK": "未知", "INI": "启动中", "SOCKERR": "socket错误", "L4OK": "L4正常", "L4TOUT": "L4超时", "L4CON": "L4连接错误", "L6OK": "L6正常", "L6TOUT": "L6超时", "L6RSP": "L6协议错误", "L7OK": "L7正常", "L7OKC": "L7正常", "L7TOUT": "L7超时", "L7RSP": "L7协议错误", "L7STS": "L7响应错误" } LoadbalancerListenerBackendStatusResponse: type: object properties: loadbalancerlistener: type: array items: $ref: "#/LoadbalancerBackendStatus" LoadbalancerListenerRuleBackendStatusResponse: type: object properties: loadbalancerlistener: type: array items: $ref: "#/LoadbalancerBackendStatus"