diff --git a/ucloud/services/uk8s/client.py b/ucloud/services/uk8s/client.py index 624dad0..fe8e036 100644 --- a/ucloud/services/uk8s/client.py +++ b/ucloud/services/uk8s/client.py @@ -13,6 +13,66 @@ def __init__( ): super(UK8SClient, self).__init__(config, transport, middleware, logger) + def add_uk8s_auto_scaling_group_v2( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """AddUK8SAutoScalingGroupV2 - 创建绑定已有节点池的自动伸缩组。当前请求校验仍要求提供 CPU、Mem、MachineType 和 Zone。 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID + - **Region** (str) - (Config) 地域 + - **CPU** (int) - (Required) 节点CPU大小 + - **ClusterId** (str) - (Required) 集群ID + - **MachineType** (str) - (Required) 云主机机型。该参数仍需传入;实际节点规格取自绑定的节点池。 + - **Max** (int) - (Required) 最大节点数,范围 1–100,且不得小于 Min。 + - **Mem** (int) - (Required) 节点Mem大小 + - **Min** (int) - (Required) 最小节点数,范围 0–100,且不得大于 Max。必须显式传入,允许为 0。 + - **Name** (str) - (Required) 伸缩组名字 + - **NodeGroupId** (str) - (Required) 伸缩组绑定的有效节点池 ID。当前实现必须提供,节点配置取自该节点池。 + - **Zone** (str) - (Required) 可用区 + - **BootDiskSize** (int) - 系统盘大小,单位GB。默认40。范围:[40, 500]。注意SSD本地盘无法调整。 + - **BootDiskType** (str) - 磁盘类型。请参考 `磁盘类型 `_ 。默认为SSD云盘 + - **ChargeType** (str) - 计费模式:Year、Month、Dynamic、Postpay,默认 Dynamic。此接口不接受 Preemptive。 + - **DataDiskSize** (int) - 数据磁盘大小,单位GB。默认0。范围 :[20, 1000] + - **DataDiskType** (str) - 磁盘类型。请参考 `磁盘类型 `_ 。默认为SSD云盘 + - **GPU** (int) - GPU卡核心数。仅GPU机型支持此字段 + - **GpuType** (str) - GPU 类型;实际节点规格取自绑定的节点池。 + - **ImageId** (str) - 镜像 Id,不填时后台程序会自动选用一个可用的镜像 Id,不支持用户自定义镜像,传入自定义镜像 Id 将报错 + - **InitScript** (str) - Base64 编码的用户脚本,在 UK8S 节点初始化完成后执行。 + - **IsolationGroup** (str) - 硬件隔离组id。可通过DescribeIsolationGroup获取。 + - **KeyPairId** (str) - 登录密钥对 ID。LoginMode 为 KeyPair 时必填。 + - **Labels** (str) - key=value,多组用”,“隔开,最多5组 + - **LoginMode** (str) - 节点登录方式:Password 或 KeyPair,默认 Password。 + - **MaxPods** (int) - 默认110, 支持16-512 + - **MinimalCpuPlatform** (str) - 最低 CPU 平台;优先于兼容字段 MinmalCpuPlatform。 + - **MinmalCpuPlatform** (str) - 最低 CPU 平台的兼容字段;同时提供 MinimalCpuPlatform 时以其为准。 + - **Password** (str) - Base64 编码的节点登录密码。LoginMode 为 Password(默认)时必填,不会自动生成随机密码;KeyPair 模式下可不填。 + - **Priority** (int) - 伸缩组的优先级,取值[1, 100],数值越大优先级越高,在扩容的时候会被更优先考虑。 + - **Tag** (str) - 业务组 + - **Taints** (str) - Node节点污点,形式为key=value:effect,多组taints用”,“隔开,最多支持五组。 + - **UserData** (str) - Base64 编码的 cloud-init 用户数据。 + + **Response** + + - **AsgId** (str) - 创建的伸缩组 ID。 + - **Message** (str) - 错误描述信息。 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.AddUK8SAutoScalingGroupV2RequestSchema().dumps(d) + + # build options + kwargs["max_retries"] = 0 # ignore retry when api is not idempotent + + resp = self.invoke("AddUK8SAutoScalingGroupV2", d, **kwargs) + return apis.AddUK8SAutoScalingGroupV2ResponseSchema().loads(resp) + def add_uk8s_existing_uhost( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: @@ -111,13 +171,6 @@ def add_uk8s_node_group( - **ShareBandwidthId** (str) - 绑定的共享带宽Id,仅当PayMode为ShareBandwidth时有效 - **AddUK8SNodeGroupParamKubeletConfigurationEvictionHard** - - **ImagefsAvailable** (str) - 触发Pod驱逐操作的硬性门限之容器镜像剩余空间: 需以%结尾。控制台展示为evictionHard - imagefs.available - - **MemoryAvailable** (str) - 触发Pod驱逐操作的硬性门限之内存用量: 需以Mi或Gi结尾。控制台展示为evictionHard - memory.available - - **NodefsAvailable** (str) - 触发Pod驱逐操作的硬性门限之节点存储剩余空间: 需以%结尾。控制台展示为evictionHard - nodefs.available - - **NodefsInodesFree** (str) - 触发Pod驱逐操作的硬性门限节点inode剩余量: 需以%结尾。控制台展示为evictionHard - nodefs.inodesFree - - **AddUK8SNodeGroupParamKubeletConfigurationEvictionSoft** - **ImagefsAvailable** (str) - 触发Pod驱逐操作的软性门限之容器镜像剩余空间: 需以%结尾。配置此值时必须同时配置EvictionSoftGracePeriod.ImagefsAvailable。控制台展示为evictionSoft - imagefs.available - **MemoryAvailable** (str) - 触发Pod驱逐操作的软性门限之内存用量: 需以Mi或Gi结尾。配置此值时必须同时配置EvictionSoftGracePeriod.MemoryAvailable。控制台展示为evictionSoft - memory.available @@ -125,8 +178,18 @@ def add_uk8s_node_group( - **NodefsInodesFree** (str) - 触发Pod驱逐操作的软性门限节点inode剩余量: 需以%结尾。配置此值时必须同时配置EvictionSoftGracePeriod.NodefsInodesFree。控制台展示为evictionSoft - nodefs.inodesFree - **AddUK8SNodeGroupParamNetworkInterface** - - **EIP** (dict) - 见 **AddUK8SNodeGroupParamNetworkInterfaceEIP** 模型定义 + **AddUK8SNodeGroupParamKubeletConfigurationKubeReserved** + - **CPU** (str) - kubelet预留CPU资源,以m结尾。控制台展示为kubeReserved - cpu + - **EphemeralStorage** (str) - kubelet预留存储空间,以Gi结尾。控制台展示为kubeReserved - ephemeral-storage + - **Memory** (str) - kubelet预留内存资源,以Mi结尾。控制台展示为kubeReserved - memory + - **Pid** (str) - kubelet预留pid数量,必须大于等于500, string方式提供。控制台展示为kubeReserved - pid + + + **AddUK8SNodeGroupParamKubeletConfigurationEvictionHard** + - **ImagefsAvailable** (str) - 触发Pod驱逐操作的硬性门限之容器镜像剩余空间: 需以%结尾。控制台展示为evictionHard - imagefs.available + - **MemoryAvailable** (str) - 触发Pod驱逐操作的硬性门限之内存用量: 需以Mi或Gi结尾。控制台展示为evictionHard - memory.available + - **NodefsAvailable** (str) - 触发Pod驱逐操作的硬性门限之节点存储剩余空间: 需以%结尾。控制台展示为evictionHard - nodefs.available + - **NodefsInodesFree** (str) - 触发Pod驱逐操作的硬性门限节点inode剩余量: 需以%结尾。控制台展示为evictionHard - nodefs.inodesFree **AddUK8SNodeGroupParamKubeletConfigurationEvictionSoftGracePeriod** @@ -143,13 +206,6 @@ def add_uk8s_node_group( - **Pid** (str) - 系统预留pid数量,必须大于等于500, string方式提供。控制台展示为systemReserved - pid - **AddUK8SNodeGroupParamKubeletConfigurationKubeReserved** - - **CPU** (str) - kubelet预留CPU资源,以m结尾。控制台展示为kubeReserved - cpu - - **EphemeralStorage** (str) - kubelet预留存储空间,以Gi结尾。控制台展示为kubeReserved - ephemeral-storage - - **Memory** (str) - kubelet预留内存资源,以Mi结尾。控制台展示为kubeReserved - memory - - **Pid** (str) - kubelet预留pid数量,必须大于等于500, string方式提供。控制台展示为kubeReserved - pid - - **AddUK8SNodeGroupParamKubeletConfiguration** - **ContainerLogMaxFiles** (int) - 容器的日志文件个数上限,需大于等于2。控制台展示为containerLogMaxFiles - **ContainerLogMaxSize** (str) - 容器日志文件轮换生成新文件的最大阈值,需以Mi结尾。控制台展示为containerLogMaxSize @@ -169,6 +225,10 @@ def add_uk8s_node_group( - **Priority** (str) - 安全组优先级。取值范围[1, 5] + **AddUK8SNodeGroupParamNetworkInterface** + - **EIP** (dict) - 见 **AddUK8SNodeGroupParamNetworkInterfaceEIP** 模型定义 + + """ # build request d = { @@ -282,6 +342,15 @@ def add_uk8s_uhost_node( **Request Model** + **AddUK8SUHostNodeParamUserLabels** + - **Key** (str) - UK8S用户资源标签的键值 + - **Value** (str) - UK8S用户资源标签的值 + + + **AddUK8SUHostNodeParamKubeletConfiguration** + - **ContainerLogMaxFiles** (str) - 全量KubeletConfiguration.XXX定义参考AddUK8SNodeGroup接口: https://uxiao.ucloudadmin.com/#/api-manager/api/detail/UK8S/AddUK8SNodeGroup + + **AddUK8SUHostNodeParamNetworkInterfaceEIP** - **Bandwidth** (int) - 【若绑定EIP,此参数必填】弹性IP的外网带宽, 单位为Mbps. 共享带宽模式下非必传, 非共享带宽模式必须指定非0Mbps带宽. 各地域非共享带宽的带宽范围如下: 流量计费[1-300],带宽计费[1-800] - **CouponId** (str) - 当前EIP代金券id。请通过DescribeCoupon接口查询,或登录用户中心查看。 @@ -294,15 +363,6 @@ def add_uk8s_uhost_node( - **EIP** (dict) - 见 **AddUK8SUHostNodeParamNetworkInterfaceEIP** 模型定义 - **AddUK8SUHostNodeParamUserLabels** - - **Key** (str) - UK8S用户资源标签的键值 - - **Value** (str) - UK8S用户资源标签的值 - - - **AddUK8SUHostNodeParamKubeletConfiguration** - - **ContainerLogMaxFiles** (str) - 全量KubeletConfiguration.XXX定义参考AddUK8SNodeGroup接口: https://uxiao.ucloudadmin.com/#/api-manager/api/detail/UK8S/AddUK8SNodeGroup - - **AddUK8SUHostNodeParamSecGroupId** - **Id** (str) - 安全组 ID。至多可以同时绑定5个安全组。 - **Name** (str) - 安全组名称。 @@ -402,15 +462,6 @@ def create_uk8s_cluster_v2( - **ContainerLogMaxFiles** (str) - 全量KubeletConfiguration.XXX定义参考AddUK8SNodeGroup接口: https://uxiao.ucloudadmin.com/#/api-manager/api/detail/UK8S/AddUK8SNodeGroup - **CreateUK8SClusterV2ParamKubeProxy** - - **Mode** (str) - 集群kube-proxy模式。支持iptables和ipvs,默认为iptables。 - - - **CreateUK8SClusterV2ParamMaster** - - **SecGroupId** (list) - 见 **CreateUK8SClusterV2ParamMasterSecGroupId** 模型定义 - - **Zone** (str) - Master节点所属可用区,需要设置 Master.0.Zone、 Master.1.Zone、Master.2.Zone 三个 Master 节点的可用区。 三个节点可部署在不同可用区。参见 `可用区列表 `_ - - **CreateUK8SClusterV2ParamNodes** - **BootDiskSize** (int) - Node节点的系统盘大小,单位GB,默认为40。范围:[40, 500]。注意SSD本地盘无法调整。 - **BootDiskType** (str) - 一组Node节点的系统盘类型,请参考 `磁盘类型 `_ 。默认为SSD云盘 @@ -445,6 +496,15 @@ def create_uk8s_cluster_v2( - **Value** (str) - UK8S用户资源标签的值 + **CreateUK8SClusterV2ParamKubeProxy** + - **Mode** (str) - 集群kube-proxy模式。支持iptables和ipvs,默认为iptables。 + + + **CreateUK8SClusterV2ParamMaster** + - **SecGroupId** (list) - 见 **CreateUK8SClusterV2ParamMasterSecGroupId** 模型定义 + - **Zone** (str) - Master节点所属可用区,需要设置 Master.0.Zone、 Master.1.Zone、Master.2.Zone 三个 Master 节点的可用区。 三个节点可部署在不同可用区。参见 `可用区列表 `_ + + """ # build request d = { @@ -482,29 +542,21 @@ def create_uk8s_uls_config( **Request Model** - **CreateUK8SULSConfigParamMatchRulePodLabelsLabels** - - **Key** (str) - 按 Pod 标签匹配时,要匹配的标签的 Key。 - - **Value** (str) - 按 Pod 标签匹配时,要匹配的标签的值。 - - **ValueOperator** (str) - 按 Pod 标签匹配时,标签值的匹配操作符。可选值: in, notin。 - - - **CreateUK8SULSConfigParamMatchRulePodLabels** - - **Labels** (list) - 见 **CreateUK8SULSConfigParamMatchRulePodLabelsLabels** 模型定义 - - **Namespace** (str) - 命名空间名称 - - **NamespaceOperator** (str) - 指定/排除命名空间, 可选值: in/notin + **CreateUK8SULSConfigParamInputDetailMetadata** + - **Container** (str) - 指定具体要采集元数据的容器名。如果留空,则不采集容器的元数据,可选字段:container_name,namespace,pod_name,pod_ip,pod_uid,container_id,image_name。Pod Label 元数据通过指定 InputDetail.Metadata.Labels字段。 + - **Labels** (str) - 定义要采集哪些 Pod 的标签 (Labels)。可选值: * (采集所有标签), "app,version" (仅采集 app 和 version), "" (不采集任何标签)。 - **CreateUK8SULSConfigParamMatchRuleWorkloads** - - **Name** (str) - 按工作负载匹配时,工作负载的名称。 - - **Namespace** (str) - 按工作负载匹配时,工作负载所在的命名空间。 - - **Type** (str) - 按工作负载匹配时,工作负载的类型,例如 deployment, statefulset, daemonset,job, cronjob。 + **CreateUK8SULSConfigParamInputDetailFilePaths** + - **File** (str) - 定义采集路径的文件名 + - **Path** (str) - 定义采集路径 - **CreateUK8SULSConfigParamMatchRule** - - **Container** (str) - 要匹配的容器名称,*表示所有容器,用逗号分隔 - - **ContainerOperator** (str) - 容器名称匹配操作符。支持:in(包含),notin(不包含) - - **PodLabels** (dict) - 见 **CreateUK8SULSConfigParamMatchRulePodLabels** 模型定义 - - **Workloads** (list) - 见 **CreateUK8SULSConfigParamMatchRuleWorkloads** 模型定义 + **CreateUK8SULSConfigParamInputDetail** + - **FilePaths** (list) - 见 **CreateUK8SULSConfigParamInputDetailFilePaths** 模型定义 + - **Metadata** (dict) - 见 **CreateUK8SULSConfigParamInputDetailMetadata** 模型定义 + - **Stream** (str) - all、stdout、stderr,默认 all (用于 InputDetail.Type = container_stdout) + - **Type** (str) - 日志输入类型。支持 container_file 和 container_stdout **CreateUK8SULSConfigParamExtractRuleExtractRule** @@ -528,21 +580,29 @@ def create_uk8s_uls_config( - **UnMatchUpload** (str) - 是否上传解析失败的日志。true 表示上传,false 表示丢弃。默认为 false。 - **CreateUK8SULSConfigParamInputDetailMetadata** - - **Container** (str) - 指定具体要采集元数据的容器名。如果留空,则不采集容器的元数据,可选字段:container_name,namespace,pod_name,pod_ip,pod_uid,container_id,image_name。Pod Label 元数据通过指定 InputDetail.Metadata.Labels字段。 - - **Labels** (str) - 定义要采集哪些 Pod 的标签 (Labels)。可选值: * (采集所有标签), "app,version" (仅采集 app 和 version), "" (不采集任何标签)。 + **CreateUK8SULSConfigParamMatchRulePodLabelsLabels** + - **Key** (str) - 按 Pod 标签匹配时,要匹配的标签的 Key。 + - **Value** (str) - 按 Pod 标签匹配时,要匹配的标签的值。 + - **ValueOperator** (str) - 按 Pod 标签匹配时,标签值的匹配操作符。可选值: in, notin。 - **CreateUK8SULSConfigParamInputDetailFilePaths** - - **File** (str) - 定义采集路径的文件名 - - **Path** (str) - 定义采集路径 + **CreateUK8SULSConfigParamMatchRulePodLabels** + - **Labels** (list) - 见 **CreateUK8SULSConfigParamMatchRulePodLabelsLabels** 模型定义 + - **Namespace** (str) - 命名空间名称 + - **NamespaceOperator** (str) - 指定/排除命名空间, 可选值: in/notin - **CreateUK8SULSConfigParamInputDetail** - - **FilePaths** (list) - 见 **CreateUK8SULSConfigParamInputDetailFilePaths** 模型定义 - - **Metadata** (dict) - 见 **CreateUK8SULSConfigParamInputDetailMetadata** 模型定义 - - **Stream** (str) - all、stdout、stderr,默认 all (用于 InputDetail.Type = container_stdout) - - **Type** (str) - 日志输入类型。支持 container_file 和 container_stdout + **CreateUK8SULSConfigParamMatchRuleWorkloads** + - **Name** (str) - 按工作负载匹配时,工作负载的名称。 + - **Namespace** (str) - 按工作负载匹配时,工作负载所在的命名空间。 + - **Type** (str) - 按工作负载匹配时,工作负载的类型,例如 deployment, statefulset, daemonset,job, cronjob。 + + + **CreateUK8SULSConfigParamMatchRule** + - **Container** (str) - 要匹配的容器名称,*表示所有容器,用逗号分隔 + - **ContainerOperator** (str) - 容器名称匹配操作符。支持:in(包含),notin(不包含) + - **PodLabels** (dict) - 见 **CreateUK8SULSConfigParamMatchRulePodLabels** 模型定义 + - **Workloads** (list) - 见 **CreateUK8SULSConfigParamMatchRuleWorkloads** 模型定义 """ @@ -616,6 +676,33 @@ def del_uk8s_cluster_node_v2( resp = self.invoke("DelUK8SClusterNodeV2", d, **kwargs) return apis.DelUK8SClusterNodeV2ResponseSchema().loads(resp) + def delete_uk8s_auto_scaling_group( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DeleteUK8SAutoScalingGroup - 删除伸缩组 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ClusterId** (str) - (Required) 集群ID + - **Id** (str) - (Required) 伸缩组ID + + **Response** + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DeleteUK8SAutoScalingGroupRequestSchema().dumps(d) + + resp = self.invoke("DeleteUK8SAutoScalingGroup", d, **kwargs) + return apis.DeleteUK8SAutoScalingGroupResponseSchema().loads(resp) + def delete_uk8s_uls_config( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: @@ -644,96 +731,238 @@ def delete_uk8s_uls_config( resp = self.invoke("DeleteUK8SULSConfig", d, **kwargs) return apis.DeleteUK8SULSConfigResponseSchema().loads(resp) - def describe_uk8s_cluster( + def describe_uk8s_autoscaler_group( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: - """DescribeUK8SCluster - 获取集群信息 + """DescribeUK8SAutoscalerGroup - 获取autoscaler与auto scaling group信息 **Request** - - **ProjectId** (str) - (Config) 项目id - - **Region** (str) - (Config) 所属区域 - - **ClusterId** (str) - (Required) k8s集群ID + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ClusterId** (str) - (Required) 集群id + - **Zone** (str) - 可用区,可选。此接口按集群 ID 查询。 **Response** - - **ApiServer** (str) - 集群apiserver地址 + - **AutoScalingGroup** (list) - 见 **AutoScalingGroup** 模型定义 - **Autoscaler** (dict) - 见 **Autoscaler** 模型定义 - - **CACert** (str) - 集群CA根证书 - - **CNIMode** (str) - CNI模式,可选值VPC/Calico - - **ClusterDomain** (str) - 自定义或者默认的clusterdomain - - **ClusterId** (str) - 集群ID - - **ClusterName** (str) - 资源名字 - - **ClusterType** (str) - 集群版本 - - **CreateTime** (int) - 创建时间 - - **DedicatedPodSubnet** (bool) - Pod是否使用独立子网 - - **DeleteProtection** (int) - 删除保护开关。0表示不开启,1表示开启。默认不开启 - - **EnableUserAuth** (bool) - 是否开启了授权管理功能 - - **EtcdCert** (str) - 集群etcd服务证书 - - **EtcdKey** (str) - 集群etcd服务密钥 - - **ExternalApiServer** (str) - 集群外部apiserver地址 - - **ExternalUlb** (str) - 外部 API Server 负载均衡实例 ID - - **InternalUlb** (str) - 内部 API Server 负载均衡实例 ID - - **KubeProxy** (dict) - 见 **KubeProxy** 模型定义 - - **LbClass** (str) - 负载均衡类型 - - **LoopbackClientCert** (dict) - 见 **LoopbackClientCert** 模型定义 - - **MasterCount** (int) - Master 节点数量 - - **MasterList** (list) - 见 **UhostInfo** 模型定义 - - **MasterResourceStatus** (str) - Master配置预警:Normal正常;Warning 需要升级;Error 需要紧急升级; - - **MonitorType** (str) - 集群的监控类型:no无监控;cloudwatch统一监控平台;prometheus内置监控 - - **NodeCIDR** (str) - 节点网段 - - **NodeCount** (int) - Node节点数量 - - **NodeList** (list) - 见 **UhostInfo** 模型定义 - - **PodCIDR** (str) - Pod网段 - - **PodSubnetIds** (list) - Pod使用的独立子网列表 - - **PodSubnetSecGroups** (list) - Pod独立子网内的ip使用的安全组 - - **RuntimeName** (str) - 容器运行时名称 - - **RuntimeVersion** (str) - 容器运行时版本 - - **ServiceCIDR** (str) - 服务网段 - - **Status** (str) - 状态 - - **SubnetId** (str) - 所属子网 - - **UpdateTime** (int) - 更新时间 - - **VPCId** (str) - 所属VPC - - **Version** (str) - K8S版本 + - **Update** (int) - 0:无需更新1:有更新2:强制更新 **Response Model** **SecGroupId** - - **Id** (str) - 安全组名称 - - **Name** (str) - 安全组id + - **Id** (str) - 安全组 ID + - **Name** (str) - 安全组名称 - **Priority** (str) - 安全组优先级 - **KubeProxy** - - **Mode** (str) - KubeProxy模式,枚举值为[ipvs,iptables] + **EIP** + - **Bandwidth** (int) - 【若绑定EIP,此参数必填】弹性IP的外网带宽, 单位为Mbps. 共享带宽模式下非必传, 非共享带宽模式必须指定非0Mbps带宽. 各地域非共享带宽的带宽范围如下: 流量计费[1-300],带宽计费[1-800] + - **CouponId** (str) - 当前EIP代金券id。请通过DescribeCoupon接口查询,或登录用户中心查看。 + - **OperatorName** (str) - 【若绑定EIP,此参数必填】弹性IP的线路。枚举值: 国际: International,BGP: Bgp。 各地域允许的线路参数如下: cn-sh1: Bgp cn-sh2: Bgp cn-gd: Bgp cn-bj1: Bgp cn-bj2: Bgp hk: International us-ca: International th-bkk: International kr-seoul:International us-ws:International ge-fra:International sg:International tw-kh:International.其他海外线路均为 International + - **PayMode** (str) - 弹性IP的计费模式. 枚举值: "Traffic", 流量计费; "Bandwidth", 带宽计费; "ShareBandwidth",共享带宽模式. "Free":免费带宽模式,默认为 "Bandwidth" + - **ShareBandwidthId** (str) - 绑定的共享带宽Id,仅当PayMode为ShareBandwidth时有效 - **DiskSet** - - **BackupType** (str) - 备份方案,枚举类型:BASIC_SNAPSHOT,普通快照;DATAARK,方舟。无快照则不返回该字段。 - - **DiskId** (str) - 磁盘长ID - - **DiskType** (str) - LOCAL_NOMAL| CLOUD_NORMAL| LOCAL_SSD| CLOUD_SSD|EXCLUSIVE_LOCAL_DISK - - **Drive** (str) - 磁盘盘符 - - **Encrypted** (str) - Yes: 加密 No: 非加密 - - **IOPS** (int) - 当前主机的IOPS值 - - **IsBoot** (str) - True| False - - **Name** (str) - UDisk名字(仅当磁盘是UDisk时返回) - - **Size** (int) - 磁盘大小,单位: GB - - **Type** (str) - 磁盘类型。系统盘: Boot,数据盘: Data,网络盘:Udisk + **NetworkInterface** + - **EIP** (dict) - 见 **EIP** 模型定义 - **IPSet** - - **Bandwidth** (int) - IP对应的带宽, 单位: Mb (内网IP不显示带宽信息) - - **Default** (str) - 是否默认的弹性网卡的信息。true: 是默认弹性网卡;其他值:不是。 - - **IP** (str) - IP地址 - - **IPId** (str) - IP资源ID (内网IP无对应的资源ID) - - **IPMode** (str) - IP 地址分配模式 - - **Mac** (str) - 网卡的 MAC 地址 - - **NetworkInterfaceId** (str) - 虚拟网卡 Id - - **SubnetId** (str) - IP 所在的 子网 Id + **EvictionCondition** + - **ImagefsAvailable** (str) - 镜像文件系统存储相关驱逐条件或宽限时间。 + - **MemoryAvailable** (str) - 内存相关驱逐条件或宽限时间。 + - **NodefsAvailable** (str) - 节点存储余量相关驱逐条件或宽限时间。 + - **NodefsInodesFree** (str) - 节点剩余inodes驱逐条件或宽限时间。 + + + **ReservedResource** + - **CPU** (str) - CPU + - **EphemeralStorage** (str) - 存储 + - **Memory** (str) - 内存 + - **Pid** (str) - Pid + + + **KubeletConfiguration** + - **ContainerLogMaxFiles** (int) - 最大日志文件数量 + - **ContainerLogMaxSize** (str) - 最大日志文件大小 + - **EvictionHard** (dict) - 见 **EvictionCondition** 模型定义 + - **EvictionSoft** (dict) - 见 **EvictionCondition** 模型定义 + - **EvictionSoftGracePeriod** (dict) - 见 **EvictionCondition** 模型定义 + - **ImageGCHighThresholdPercent** (int) - 镜像垃圾收集阈值 + - **ImageGCLowThresholdPercent** (int) - 停止镜像垃圾收集阈值 + - **KubeReserved** (dict) - 见 **ReservedResource** 模型定义 + - **MaxPods** (int) - 最大Pod数量 + - **SystemReserved** (dict) - 见 **ReservedResource** 模型定义 + + + **AutoScalingGroup** + - **BootDiskSize** (int) - 节点系统盘大小 + - **BootDiskType** (str) - 节点系统盘类型。请参考 `磁盘类型 `_ 。默认为SSD云盘 + - **CPU** (int) - 节点CPU + - **ChargeType** (str) - 伸缩组的计费模式。 + - **CreateTime** (int) - 创建时间,Unix 时间戳,单位秒。 + - **CurrentNodeNum** (int) - 当前该伸缩组管理的node数量 + - **DataDiskSize** (int) - 节点数据盘大小 + - **DataDiskType** (str) - 节点数据盘类型。请参考 `磁盘类型 `_ 。默认为SSD云盘 + - **GPU** (int) - GPU 数量。 + - **GpuType** (str) - GPU 类型。 + - **Id** (str) - 伸缩组ID + - **ImageId** (str) - 镜像 ID。 + - **InitScript** (str) - Base64 编码的节点初始化后脚本。 + - **IsolationGroup** (str) - 硬件隔离组id。可通过DescribeIsolationGroup获取。 + - **KeyPairId** (str) - 登录密钥对 ID。 + - **KubeletConfiguration** (dict) - 见 **KubeletConfiguration** 模型定义 + - **Labels** (str) - 节点标签 key=value,多组用”,“隔开,最多5组 + - **LoginMode** (str) - 节点登录方式:Password 或 KeyPair。 + - **MachineType** (str) - 云主机机型。 + - **Max** (int) - 最大node数量 + - **MaxPods** (int) - Pods数量 默认110, 支持16-512 + - **Mem** (int) - 节点内存 + - **Min** (int) - 最小node数量 + - **MinimalCpuPlatform** (str) - 最低 CPU 平台。 + - **MinmalCpuPlatform** (str) - 最低 CPU 平台的兼容字段,与 MinimalCpuPlatform 相同。 + - **Name** (str) - 伸缩组名字 + - **NetworkInterface** (list) - 见 **NetworkInterface** 模型定义 + - **NodeBootDiskType** (str) - 旧伸缩组的系统盘类型。 + - **NodeCPU** (int) - 节点CPU【兼容】 + - **NodeDataDiskSize** (int) - 节点数据盘大小【兼容】 + - **NodeDataDiskType** (str) - 节点数据盘类型【兼容】 + - **NodeGroupId** (str) - 节点所属节点池id + - **NodeMem** (int) - 节点内存【兼容】 + - **NodeUHostType** (str) - 节点云主机机型【兼容】 + - **OsName** (str) - 操作系统名称。 + - **Password** (str) - Base64 编码的节点登录密码。 + - **Priority** (int) - 优先级 + - **SecGroupId** (list) - 见 **SecGroupId** 模型定义 + - **SecurityGroupId** (str) - 防火墙 ID。 + - **SecurityMode** (str) - 节点安全模式:Firewall 或 SecGroup。 + - **SubnetId** (str) - 节点子网id【兼容】 + - **Tag** (str) - 业务组。 + - **Taints** (str) - 节点污点配置。 + - **UHostFamily** (str) - 主机规格族 + - **UpdateTime** (int) - 更新时间,Unix 时间戳,单位秒。 + - **UserData** (str) - Base64 编码的 cloud-init 用户数据。 + - **Zone** (str) - 可用区 + + + **Autoscaler** + - **Enabled** (int) - 打开/关闭 + - **ScaleDownDelayAfterAdd** (int) - 添加节点后等待缩容的时间,单位分钟。 + - **ScaleDownGpuUtilizationThreshold** (int) - GPU 缩容利用率阈值,单位百分比,范围 0–100。 + - **ScaleDownUnneededTime** (int) - 节点持续不需要后触发缩容的等待时间,单位分钟。 + - **ScaleDownUtilizationThreshold** (int) - 节点缩容利用率阈值,单位百分比,范围 0–100。 + - **UpdateTime** (int) - 配置更新时间,Unix 时间戳,单位秒。 + - **Version** (str) - 伸缩器版本 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DescribeUK8SAutoscalerGroupRequestSchema().dumps(d) + + resp = self.invoke("DescribeUK8SAutoscalerGroup", d, **kwargs) + return apis.DescribeUK8SAutoscalerGroupResponseSchema().loads(resp) + + def describe_uk8s_cluster( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DescribeUK8SCluster - 获取集群信息 + + **Request** + + - **ProjectId** (str) - (Config) 项目id + - **Region** (str) - (Config) 所属区域 + - **ClusterId** (str) - (Required) k8s集群ID + + **Response** + + - **ApiServer** (str) - 集群apiserver地址 + - **Autoscaler** (dict) - 见 **Autoscaler** 模型定义 + - **CACert** (str) - 集群CA根证书 + - **CNIMode** (str) - CNI模式,可选值VPC/Calico + - **ClusterDomain** (str) - 自定义或者默认的clusterdomain + - **ClusterId** (str) - 集群ID + - **ClusterName** (str) - 资源名字 + - **ClusterType** (str) - 集群版本 + - **CreateTime** (int) - 创建时间 + - **DedicatedPodSubnet** (bool) - Pod是否使用独立子网 + - **DeleteProtection** (int) - 删除保护开关。0表示不开启,1表示开启。默认不开启 + - **EnableUserAuth** (bool) - 是否开启了授权管理功能 + - **EtcdCert** (str) - 集群etcd服务证书 + - **EtcdKey** (str) - 集群etcd服务密钥 + - **ExternalApiServer** (str) - 集群外部apiserver地址 + - **ExternalUlb** (str) - 外部 API Server 负载均衡实例 ID + - **InternalUlb** (str) - 内部 API Server 负载均衡实例 ID + - **KubeProxy** (dict) - 见 **KubeProxy** 模型定义 + - **LbClass** (str) - 负载均衡类型 + - **LoopbackClientCert** (dict) - 见 **LoopbackClientCert** 模型定义 + - **MasterCount** (int) - Master 节点数量 + - **MasterList** (list) - 见 **UhostInfo** 模型定义 + - **MasterResourceStatus** (str) - Master配置预警:Normal正常;Warning 需要升级;Error 需要紧急升级; + - **MonitorType** (str) - 集群的监控类型:no无监控;cloudwatch统一监控平台;prometheus内置监控 + - **NodeCIDR** (str) - 节点网段 + - **NodeCount** (int) - Node节点数量 + - **NodeList** (list) - 见 **UhostInfo** 模型定义 + - **PodCIDR** (str) - Pod网段 + - **PodSubnetIds** (list) - Pod使用的独立子网列表 + - **PodSubnetSecGroups** (list) - Pod独立子网内的ip使用的安全组 + - **RuntimeName** (str) - 容器运行时名称 + - **RuntimeVersion** (str) - 容器运行时版本 + - **ServiceCIDR** (str) - 服务网段 + - **Status** (str) - 状态 + - **SubnetId** (str) - 所属子网 + - **UpdateTime** (int) - 更新时间 + - **VPCId** (str) - 所属VPC + - **Version** (str) - K8S版本 + + **Response Model** + + **KubeProxy** + - **Mode** (str) - KubeProxy模式,枚举值为[ipvs,iptables] + + + **SecGroupId** + - **Id** (str) - 安全组名称 + - **Name** (str) - 安全组id + - **Priority** (str) - 安全组优先级 + + + **DiskSet** + - **BackupType** (str) - 备份方案,枚举类型:BASIC_SNAPSHOT,普通快照;DATAARK,方舟。无快照则不返回该字段。 + - **DiskId** (str) - 磁盘长ID + - **DiskType** (str) - LOCAL_NOMAL| CLOUD_NORMAL| LOCAL_SSD| CLOUD_SSD|EXCLUSIVE_LOCAL_DISK + - **Drive** (str) - 磁盘盘符 + - **Encrypted** (str) - Yes: 加密 No: 非加密 + - **IOPS** (int) - 当前主机的IOPS值 + - **IsBoot** (str) - True| False + - **Name** (str) - UDisk名字(仅当磁盘是UDisk时返回) + - **Size** (int) - 磁盘大小,单位: GB + - **Type** (str) - 磁盘类型。系统盘: Boot,数据盘: Data,网络盘:Udisk + + + **IPSet** + - **Bandwidth** (int) - IP对应的带宽, 单位: Mb (内网IP不显示带宽信息) + - **Default** (str) - 是否默认的弹性网卡的信息。true: 是默认弹性网卡;其他值:不是。 + - **IP** (str) - IP地址 + - **IPId** (str) - IP资源ID (内网IP无对应的资源ID) + - **IPMode** (str) - IP 地址分配模式 + - **Mac** (str) - 网卡的 MAC 地址 + - **NetworkInterfaceId** (str) - 虚拟网卡 Id + - **SubnetId** (str) - IP 所在的 子网 Id - **Type** (str) - 国际: Internation,BGP: Bgp,内网: Private - **VPCId** (str) - IP 所属的 VPC Id + **LoopbackClientCert** + - **ExpireTime** (int) - 证书到期时间 + - **Warn** (bool) - 证书是否进入过期告警状态 + + **UhostInfo** - **BasicImageName** (str) - 基础镜像名称 - **CPU** (int) - Cpu数量 @@ -756,11 +985,6 @@ def describe_uk8s_cluster( - **Zone** (str) - 所在机房 - **LoopbackClientCert** - - **ExpireTime** (int) - 证书到期时间 - - **Warn** (bool) - 证书是否进入过期告警状态 - - **Autoscaler** - **Enabled** (int) - 打开/关闭 - **ScaleDownDelayAfterAdd** (str) - 静默时间 @@ -828,96 +1052,589 @@ def describe_uk8s_image( "Region": self.config.region, } req and d.update(req) - d = apis.DescribeUK8SImageRequestSchema().dumps(d) + d = apis.DescribeUK8SImageRequestSchema().dumps(d) + + resp = self.invoke("DescribeUK8SImage", d, **kwargs) + return apis.DescribeUK8SImageResponseSchema().loads(resp) + + def describe_uk8s_node( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DescribeUK8SNode - 用于获取 UK8S 节点详情 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ClusterId** (str) - (Required) UK8S 集群 Id + - **Name** (str) - (Required) K8S 节点IP或者节点ID + + **Response** + + - **Action** (str) - 操作名称 + - **AllocatedPodCount** (int) - 已分配到当前节点的 Pod 数量 + - **Annotations** (list) - 字符串数组,每一项是类似 "node.alpha.kubernetes.io/ttl=0" 的注解 + - **CPUCapacity** (str) - 节点 CPU 总量 + - **CPULimits** (str) - 节点上已分配 Pod 的 CPU 限制值 + - **CPULimitsFraction** (str) - 节点上已分配 Pod 的 CPU 限制值占 CPU 总量的比例 + - **CPURequests** (str) - 节点上已分配 Pod 的 CPU 请求量 + - **CPURequestsFraction** (str) - 节点上已分配 Pod 的 CPU 请求量占 CPU 总量的比例 + - **Conditions** (list) - 见 **K8SNodeCondition** 模型定义 + - **ContainerImages** (list) - 节点上镜像名称数组 + - **ContainerRuntimeVersion** (str) - 容器运行时版本,如:"docker://18.9.9" + - **CreationTimestamp** (int) - 时间戳,单位是 秒 + - **Hostname** (str) - 主机名 + - **InternalIP** (str) - 内部 IP 地址 + - **KernelVersion** (str) - 内核版本,如:"4.19.0-6.el7.ucloud.x86_64" + - **KubeProxyVersion** (str) - kubeproxy 版本 + - **KubeletVersion** (str) - kubelet 版本 + - **Labels** (list) - 字符串数组,每一项是类似 "kubernetes.io/arch=amd64" 的标签 + - **MemoryCapacity** (str) - 节点内存总量 + - **MemoryLimits** (str) - 节点上已分配 Pod 的内存限制量 + - **MemoryLimitsFraction** (str) - 节点上已分配 Pod 的内存限制量占内存总量的比例,如返回值为 "18",则意味着限制量占总量的 18% + - **MemoryRequests** (str) - 节点上已分配 Pod 的内存请求量 + - **MemoryRequestsFraction** (str) - 节点上已分配 Pod 的内存请求量占内存总量的比例,如返回值为 "4.5",则意味着请求量占总量的 4.5% + - **Message** (str) - 操作出错时的提示信息 + - **Name** (str) - 节点名称 + - **OSImage** (str) - 操作系统类型,如:"CentOS Linux 7 (Core)" + - **PodCapacity** (int) - 节点允许的可分配 Pod 最大数量 + - **ProviderID** (str) - 字符串,如:"UCloud://cn-sh2-02//uk8s-vsc0vgob-n-mpzxc" + - **RetCode** (int) - 返回码 + - **Taints** (list) - 字符串数组,每一项是类似 "node-role.kubernetes.io/master:NoSchedule" 的污点 + - **Unschedulable** (bool) - 是否禁止调度 + + **Response Model** + + **K8SNodeCondition** + - **LastProbeTime** (str) - 最后一次上报状态的时间 + - **LastTransitionTime** (str) - 最后一次状态转变时间 + - **Message** (str) - 状态变化的描述信息 + - **Reason** (str) - 状态变化的原因 + - **Status** (str) - 状态,False、True + - **Type** (str) - Condition 类型,如 MemoryPressure、DiskPressure、PIDPressure、Ready + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DescribeUK8SNodeRequestSchema().dumps(d) + + resp = self.invoke("DescribeUK8SNode", d, **kwargs) + return apis.DescribeUK8SNodeResponseSchema().loads(resp) + + def enable_uk8s_autoscaler( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """EnableUK8SAutoscaler - 开启/关闭伸缩器 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ClusterId** (str) - (Required) 集群ID + - **Enabled** (int) - (Required) 1开启;0关闭 + + **Response** + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.EnableUK8SAutoscalerRequestSchema().dumps(d) + + resp = self.invoke("EnableUK8SAutoscaler", d, **kwargs) + return apis.EnableUK8SAutoscalerResponseSchema().loads(resp) + + def get_cluster_config( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """GetClusterConfig - 获取集群配置文件,管理集群的凭证 + + **Request** + + - **ProjectId** (str) - (Config) 所在项目 + - **Region** (str) - (Config) 所在区域 + - **ClusterId** (str) - (Required) 集群ID + + **Response** + + - **ExternalKubeConfig** (str) - 开启公网apiserver的情况下,有数据返回。 + - **KubeConfig** (str) - 配置信息 + - **Updatable** (bool) - 用于标示 kubeconfig 是否可以进行替换更新 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.GetClusterConfigRequestSchema().dumps(d) + + resp = self.invoke("GetClusterConfig", d, **kwargs) + return apis.GetClusterConfigResponseSchema().loads(resp) + + def get_uk8s_available_instance_types( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """GetUK8SAvailableInstanceTypes - 获取uk8s节点可用机型 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **AvailableInstanceTypes** (list) - 见 **UK8SAvailableInstanceType** 模型定义 + - **Status** (str) - 当前区域是否可售 + + **Response Model** + + **InstanceTypeBootDisk** + - **Features** (list) - 磁盘特性列表 + - **InstantResize** (bool) - 是否支持即时扩容 + - **MaximalSize** (int) - 最大磁盘容量 + - **Name** (str) - 系统盘类型名称 + + + **InstanceTypeDataDisk** + - **Features** (list) - 磁盘特性列表 + - **MaximalSize** (int) - 最大磁盘容量 + - **MinimalSize** (int) - 最小磁盘容量 + - **Name** (str) - 数据盘类型名称 + + + **InstanceTypeFeatureMode** + - **MinimalCpuPlatform** (list) - 最低 CPU 平台列表 + - **Name** (str) - 模式名称 + - **RelatedToImageFeature** (list) - 关联的镜像特性 + + + **InstanceTypeValueRate** + - **Rate** (int) - 评分 + - **Value** (float) - 数值 + + + **InstanceTypeCpuPlatform** + - **CpuFrequency** (str) - CPU 频率 + - **CpuModels** (list) - CPU 型号列表 + - **Name** (str) - CPU 平台名称 + + + **InstanceTypeUHostFamily** + - **CpuFrequency** (str) - CPU 频率 + - **CpuPlatforms** (list) - 见 **InstanceTypeCpuPlatform** 模型定义 + - **Name** (str) - 规格族名称 + + + **InstanceTypeDisk** + - **BootDisk** (list) - 见 **InstanceTypeBootDisk** 模型定义 + - **DataDisk** (list) - 见 **InstanceTypeDataDisk** 模型定义 + - **Name** (str) - 磁盘配置名称 + + + **InstanceTypeFeature** + - **Modes** (list) - 见 **InstanceTypeFeatureMode** 模型定义 + - **Name** (str) - 特性名称 + + + **InstanceTypeMachineSizeCollection** + - **Cpu** (int) - CPU 核数 + - **Memory** (list) - 可用内存容量列表 + - **MinimalCpuPlatform** (list) - 最低 CPU 平台列表 + + + **InstanceTypeMachineSize** + - **Collection** (list) - 见 **InstanceTypeMachineSizeCollection** 模型定义 + - **Gpu** (int) - GPU 数量 + + + **UK8SAvailableInstanceType** + - **Description** (str) - 机型描述 + - **Disks** (list) - 见 **InstanceTypeDisk** 模型定义 + - **Features** (list) - 见 **InstanceTypeFeature** 模型定义 + - **GraphicsMemory** (dict) - 见 **InstanceTypeValueRate** 模型定义 + - **InstanceType** (str) - 实例类型 + - **MachineClass** (str) - 机型类别 + - **MachineSizes** (list) - 见 **InstanceTypeMachineSize** 模型定义 + - **Name** (str) - 机型名称 + - **ParentType** (str) - 父机型类型 + - **Performance** (dict) - 见 **InstanceTypeValueRate** 模型定义 + - **Status** (str) - 机型状态 + - **UHostFamilies** (list) - 见 **InstanceTypeUHostFamily** 模型定义 + - **Zone** (str) - 可用区 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.GetUK8SAvailableInstanceTypesRequestSchema().dumps(d) + + resp = self.invoke("GetUK8SAvailableInstanceTypes", d, **kwargs) + return apis.GetUK8SAvailableInstanceTypesResponseSchema().loads(resp) + + def get_uk8s_cni_node_info( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """GetUK8SCNINodeInfo - 获取 UK8S 集群各节点的 CNI 版本、状态及版本同步情况。 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ClusterId** (str) - (Required) UK8S 集群 ID + - **Zone** (str) - 可用区,可选。 + + **Response** + + - **AllNodesSynced** (bool) - 是否所有节点实时查询成功且 CNI 版本一致。数据来源为 database 时返回 false。 + - **DataSource** (str) - 数据来源:database 表示数据库记录,ipamd_http 表示通过 ipamd 实时查询。 + - **HighestVersion** (str) - 节点中的最高有效 CNI 版本 + - **NodeInfoSet** (list) - 见 **NodePluginInfo** 模型定义 + - **Partial** (bool) - 是否存在部分节点实时查询失败 + + **Response Model** + + **NodePluginInfo** + - **IP** (str) - Node节点IP + - **Node** (str) - Node节点名称 + - **OperationResult** (int) - 上次插件操作结果,0:没有上次操作结果,或当前正在执行升级或查询 1:获取成功 2 获取失败 3 升级成功 4 升级失败 + - **Status** (int) - 插件工作状态,0:未知,1:正常,2:异常, 3: 升级中 + - **UpdateTime** (int) - 插件信息更新时间 + - **Version** (str) - 插件版本 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.GetUK8SCNINodeInfoRequestSchema().dumps(d) + + resp = self.invoke("GetUK8SCNINodeInfo", d, **kwargs) + return apis.GetUK8SCNINodeInfoResponseSchema().loads(resp) + + def get_uk8s_ipamd_status( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """GetUK8SIpamdStatus - 查询 ipamd 插件的安装状态、版本、CNI 初始化模式及模式切换能力。 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ClusterId** (str) - (Required) 集群id + - **Zone** (str) - 可用区,可选。 + + **Response** + + - **CNIInitMode** (str) - 当前 CNI 初始化模式。 + - **CNIInitVersionReady** (bool) - 当前已安装的 ipamd 版本是否支持切换 CNI 初始化模式。 + - **Installed** (bool) - 是否已经安装 + - **LastVersion** (str) - ipamd可用最新版本 + - **OpenTime** (int) - 当前 ipamd 插件的创建时间,Unix 时间戳,单位秒。 + - **ReleaseDate** (int) - 最新版本的发布日期 + - **Version** (str) - 当前ipamd的版本 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.GetUK8SIpamdStatusRequestSchema().dumps(d) + + resp = self.invoke("GetUK8SIpamdStatus", d, **kwargs) + return apis.GetUK8SIpamdStatusResponseSchema().loads(resp) + + def get_uk8s_load_balancer_controller( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """GetUK8SLoadBalancerController - 获取 uk8s LoadBalancerController 信息 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ClusterId** (str) - (Required) 集群 id + - **Zone** (str) - 可用区,可选。 + + **Response** + + - **CreateTime** (int) - 安装时间,Unix 时间戳,单位秒。 + - **Installed** (bool) - 是否安装 + - **LastVersion** (str) - 最新可用版本。 + - **Status** (str) - 运行状态:unknown、running、notReady。 + - **Version** (str) - 当前安装版本。 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.GetUK8SLoadBalancerControllerRequestSchema().dumps(d) + + resp = self.invoke("GetUK8SLoadBalancerController", d, **kwargs) + return apis.GetUK8SLoadBalancerControllerResponseSchema().loads(resp) + + def get_uk8s_node_group( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """GetUK8SNodeGroup - 列出某个UK8S节点池 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ClusterId** (str) - (Required) 集群ID + - **NodeGroupId** (str) - (Required) 节点池Id + + **Response** + + - **NodeGroup** (dict) - 见 **NodeGroupSet** 模型定义 + + **Response Model** + + **EvictionCondition** + - **ImagefsAvailable** (str) - 镜像文件系统存储相关驱逐条件或宽限时间。 + - **MemoryAvailable** (str) - 内存相关驱逐条件或宽限时间。 + - **NodefsAvailable** (str) - 节点存储余量相关驱逐条件或宽限时间。 + - **NodefsInodesFree** (str) - 节点剩余inodes驱逐条件或宽限时间。 + + + **ReservedResource** + - **CPU** (str) - CPU + - **EphemeralStorage** (str) - 存储 + - **Memory** (str) - 内存 + - **Pid** (str) - Pid + + + **EIP** + - **Bandwidth** (int) - 【若绑定EIP,此参数必填】弹性IP的外网带宽, 单位为Mbps. 共享带宽模式下非必传, 非共享带宽模式必须指定非0Mbps带宽. 各地域非共享带宽的带宽范围如下: 流量计费[1-300],带宽计费[1-800] + - **CouponId** (str) - 当前EIP代金券id。请通过DescribeCoupon接口查询,或登录用户中心查看。 + - **OperatorName** (str) - 【若绑定EIP,此参数必填】弹性IP的线路。枚举值: 国际: International,BGP: Bgp。 各地域允许的线路参数如下: cn-sh1: Bgp cn-sh2: Bgp cn-gd: Bgp cn-bj1: Bgp cn-bj2: Bgp hk: International us-ca: International th-bkk: International kr-seoul:International us-ws:International ge-fra:International sg:International tw-kh:International.其他海外线路均为 International + - **PayMode** (str) - 弹性IP的计费模式. 枚举值: "Traffic", 流量计费; "Bandwidth", 带宽计费; "ShareBandwidth",共享带宽模式. "Free":免费带宽模式,默认为 "Bandwidth" + - **ShareBandwidthId** (str) - 绑定的共享带宽Id,仅当PayMode为ShareBandwidth时有效 + + + **NetworkInterface** + - **EIP** (dict) - 见 **EIP** 模型定义 + + + **NodeGroupDiskConfig** + - **IsBoot** (bool) - 是否为系统盘 + - **KmsKeyId** (str) - 磁盘加密密钥 ID + - **Size** (int) - 磁盘大小,单位 GB + - **Type** (str) - 磁盘类型 + + + **KubeletConfiguration** + - **ContainerLogMaxFiles** (int) - 最大日志文件数量 + - **ContainerLogMaxSize** (str) - 最大日志文件大小 + - **EvictionHard** (dict) - 见 **EvictionCondition** 模型定义 + - **EvictionSoft** (dict) - 见 **EvictionCondition** 模型定义 + - **EvictionSoftGracePeriod** (dict) - 见 **EvictionCondition** 模型定义 + - **ImageGCHighThresholdPercent** (int) - 镜像垃圾收集阈值 + - **ImageGCLowThresholdPercent** (int) - 停止镜像垃圾收集阈值 + - **KubeReserved** (dict) - 见 **ReservedResource** 模型定义 + - **MaxPods** (int) - 最大Pod数量 + - **SystemReserved** (dict) - 见 **ReservedResource** 模型定义 + + + **SecGroupId** + - **Id** (str) - 安全组 ID + - **Name** (str) - 安全组名称 + - **Priority** (str) - 安全组优先级 + + + **NodeGroupSet** + - **BootDiskSize** (int) - 系统盘大小 + - **BootDiskType** (str) - 系统盘类型 + - **CPU** (int) - 虚拟CPU核数 + - **ChargeType** (str) - 付费方式 + - **CreateTime** (int) - 节点池创建时间 + - **DataDiskKmsKeyId** (str) - 数据盘加密密钥 ID + - **DataDiskSize** (int) - 数据盘大小 + - **DataDiskType** (str) - 数据盘类型 + - **Disks** (list) - 见 **NodeGroupDiskConfig** 模型定义 + - **GPU** (int) - GPU卡核心数 + - **GpuType** (str) - GPU类型 + - **ImageId** (str) - 镜像ID + - **ImageName** (str) - 镜像名称 + - **ImageStatus** (str) - 镜像状态:Unknown、Normal、Deleted、NotLatest + - **ImageType** (str) - 镜像类型 + - **InitScript** (str) - 用户自定义Shell脚本。与UserData的区别在于InitScript在节点初始化完毕后才执行,UserData则是云主机初始化时执行。 + - **IsolationGroupId** (str) - 硬件隔离组id。可通过DescribeIsolationGroup获取。 + - **KubeletConfiguration** (dict) - 见 **KubeletConfiguration** 模型定义 + - **Labels** (str) - Node节点标签。key=value形式,多组用”,“隔开,最多5组。 如env=pro,type=game + - **MachineType** (str) - 机型 + - **MaxPods** (int) - int默认110,生产环境建议小于等于110。 + - **Mem** (int) - 内存大小 + - **MinimalCpuPlatform** (str) - cpu平台 + - **NetCapability** (str) - 网络配置 + - **NetworkInterface** (list) - 见 **NetworkInterface** 模型定义 + - **NodeGroupId** (str) - 节点池ID + - **NodeGroupName** (str) - 节点池名字 + - **NodeList** (list) - 节点id列表 + - **NodeNamePrefix** (str) - 自定义Uhost主机名前缀。完整的自定义Uhost主机名为{NodeNamePrefix}-{NodeIP}。 + - **OsName** (str) - 操作系统名称 + - **OsType** (str) - 操作系统类型 + - **RelatedAsg** (list) - 节点池关联的弹性伸缩组ID + - **SecGroupId** (list) - 见 **SecGroupId** 模型定义 + - **SecurityGroupId** (str) - 防火墙ID,默认:Web推荐防火墙。如何查询SecurityGroupId请参见 `DescribeFirewall `_ 。 + - **SecurityMode** (str) - 主机安全模式。Firewall:防火墙;SecGroup:安全组;默认值:Firewall。 + - **SubnetId** (str) - 子网 ID。默认为集群创建时填写的子网ID,也可以填写集群同VPC内的子网ID。 + - **Tag** (str) - 业务组 + - **Taints** (str) - Node节点污点,形式为key=value:effect,多组taints用”,“隔开,最多支持五组。 + - **UHostFamily** (str) - 主机规格族 + - **UNIFeature** (bool) - 是否启用 UNI 网络特性 + - **UpdateTime** (int) - 节点池更新时间 + - **UserData** (str) - 用户自定义数据。当镜像支持Cloud-init Feature时可填写此字段。注意:1、总数据量大小不超过 16K;2、使用base64编码。 + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.GetUK8SNodeGroupRequestSchema().dumps(d) - resp = self.invoke("DescribeUK8SImage", d, **kwargs) - return apis.DescribeUK8SImageResponseSchema().loads(resp) + resp = self.invoke("GetUK8SNodeGroup", d, **kwargs) + return apis.GetUK8SNodeGroupResponseSchema().loads(resp) - def describe_uk8s_node( + def get_uk8s_plugin_info( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: - """DescribeUK8SNode - 用于获取 UK8S 节点详情 + """GetUK8SPluginInfo - 查询集群插件信息 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ - - **ClusterId** (str) - (Required) UK8S 集群 Id - - **Name** (str) - (Required) K8S 节点IP或者节点ID + - **ClusterId** (str) - (Required) 集群ID **Response** - - **Action** (str) - 操作名称 - - **AllocatedPodCount** (int) - 已分配到当前节点的 Pod 数量 - - **Annotations** (list) - 字符串数组,每一项是类似 "node.alpha.kubernetes.io/ttl=0" 的注解 - - **CPUCapacity** (str) - 节点 CPU 总量 - - **CPULimits** (str) - 节点上已分配 Pod 的 CPU 限制值 - - **CPULimitsFraction** (str) - 节点上已分配 Pod 的 CPU 限制值占 CPU 总量的比例 - - **CPURequests** (str) - 节点上已分配 Pod 的 CPU 请求量 - - **CPURequestsFraction** (str) - 节点上已分配 Pod 的 CPU 请求量占 CPU 总量的比例 - - **Conditions** (list) - 见 **K8SNodeCondition** 模型定义 - - **ContainerImages** (list) - 节点上镜像名称数组 - - **ContainerRuntimeVersion** (str) - 容器运行时版本,如:"docker://18.9.9" - - **CreationTimestamp** (int) - 时间戳,单位是 秒 - - **Hostname** (str) - 主机名 - - **InternalIP** (str) - 内部 IP 地址 - - **KernelVersion** (str) - 内核版本,如:"4.19.0-6.el7.ucloud.x86_64" - - **KubeProxyVersion** (str) - kubeproxy 版本 - - **KubeletVersion** (str) - kubelet 版本 - - **Labels** (list) - 字符串数组,每一项是类似 "kubernetes.io/arch=amd64" 的标签 - - **MemoryCapacity** (str) - 节点内存总量 - - **MemoryLimits** (str) - 节点上已分配 Pod 的内存限制量 - - **MemoryLimitsFraction** (str) - 节点上已分配 Pod 的内存限制量占内存总量的比例,如返回值为 "18",则意味着限制量占总量的 18% - - **MemoryRequests** (str) - 节点上已分配 Pod 的内存请求量 - - **MemoryRequestsFraction** (str) - 节点上已分配 Pod 的内存请求量占内存总量的比例,如返回值为 "4.5",则意味着请求量占总量的 4.5% - - **Message** (str) - 操作出错时的提示信息 - - **Name** (str) - 节点名称 - - **OSImage** (str) - 操作系统类型,如:"CentOS Linux 7 (Core)" - - **PodCapacity** (int) - 节点允许的可分配 Pod 最大数量 - - **ProviderID** (str) - 字符串,如:"UCloud://cn-sh2-02//uk8s-vsc0vgob-n-mpzxc" - - **RetCode** (int) - 返回码 - - **Taints** (list) - 字符串数组,每一项是类似 "node-role.kubernetes.io/master:NoSchedule" 的污点 - - **Unschedulable** (bool) - 是否禁止调度 + - **CNIInfoSet** (dict) - 见 **NodePlugin** 模型定义 + - **CSIInfo** (dict) - 见 **CSIInfo** 模型定义 + - **CloudProviderInfo** (dict) - 见 **CloudProviderInfo** 模型定义 + - **ClusterId** (str) - 集群ID + - **ClusterStatus** (str) - 集群状态信息 + - **ClusterUpgradeInfo** (dict) - 见 **ClusterUpgradeInfo** 模型定义 + - **Message** (str) - 错误描述信息 + - **MonitorInfo** (dict) - 见 **MonitorInfo** 模型定义 + - **RuntimeConvertInfo** (dict) - 见 **RuntimeConvertInfo** 模型定义 + - **VKInfo** (dict) - 见 **VKNode** 模型定义 **Response Model** - **K8SNodeCondition** - - **LastProbeTime** (str) - 最后一次上报状态的时间 - - **LastTransitionTime** (str) - 最后一次状态转变时间 - - **Message** (str) - 状态变化的描述信息 - - **Reason** (str) - 状态变化的原因 - - **Status** (str) - 状态,False、True - - **Type** (str) - Condition 类型,如 MemoryPressure、DiskPressure、PIDPressure、Ready + **ClusterUpdateNodeInfo** + - **IP** (str) - Node节点IP + - **Node** (str) - Node节点名称 + - **OperationResult** (int) - 上次插件操作结果,0:没有上次操作结果,或当前正在执行升级或查询 1:获取成功 2 获取失败 3 升级成功 4 升级失败 + - **Role** (str) - 节点角色, master 或者 node + - **Status** (int) - 插件工作状态,0:未知,1:正常,2:异常, 3: 升级中 + - **UpdateTime** (int) - 插件信息更新时间 + - **Version** (str) - 插件版本 - """ - # build request - d = { - "ProjectId": self.config.project_id, - "Region": self.config.region, - } - req and d.update(req) - d = apis.DescribeUK8SNodeRequestSchema().dumps(d) + **ClusterUpgradeInfo** + - **AvailableVersions** (list) - string 数组,可用新版本,例如 ["1.15.12","1.16.15","1.17.4","1.18.9"] + - **NodeInfoSet** (list) - 见 **ClusterUpdateNodeInfo** 模型定义 + - **Stage** (str) - string,集群升级所处阶段 Unknown、Precheck、MasterUpdating、NodeUpdating、Failed、Success集群从未进行过升级则返回 Unknown集群开始升级过程几个阶段 Precheck->MasterUpdating->NodeUpdating→Success如果升级失败则为 Failed + - **TargetVersion** (str) - string,集群升级目标版本 + - **UpdateTime** (int) - 集群信息更新时间戳,单位 s + - **Version** (str) - string, 集群当前版本 - resp = self.invoke("DescribeUK8SNode", d, **kwargs) - return apis.DescribeUK8SNodeResponseSchema().loads(resp) - def get_cluster_config( - self, req: typing.Optional[dict] = None, **kwargs - ) -> dict: - """GetClusterConfig - 获取集群配置文件,管理集群的凭证 + **VKNodeInfo** + - **Node** (str) - 节点 ID。 + - **OperationResult** (int) - 上次插件操作结果:0 无结果,1 查询成功,2 查询失败,3 升级成功,4 升级失败。 + - **Status** (int) - 插件状态:0 未知,1 正常,2 异常,3 升级中。 + - **UpdateTime** (int) - 更新时间,Unix 时间戳,单位秒。 + - **Version** (str) - 插件版本。 - **Request** - - **ProjectId** (str) - (Config) 所在项目 - - **Region** (str) - (Config) 所在区域 - - **ClusterId** (str) - (Required) 集群ID + **VKNode** + - **AvailableVersion** (str) - 最新版本 + - **ManageEnabled** (bool) - 插件管理是否开启 + - **Name** (str) - 插件名称 + - **PluginInfoSet** (list) - 见 **VKNodeInfo** 模型定义 + - **ReleaseTime** (str) - 发布时间 - **Response** - - **ExternalKubeConfig** (str) - 开启公网apiserver的情况下,有数据返回。 - - **KubeConfig** (str) - 配置信息 - - **Updatable** (bool) - 用于标示 kubeconfig 是否可以进行替换更新 + **MonitorInfo** + - **AvailableVersion** (str) - 最新可用监控插件版本。 + + + **CSIInfo** + - **AvailableVersion** (str) - 最新可用插件版本。 + - **ManageEnabled** (bool) - 是否开启插件托管。 + - **Name** (str) - 插件名称。 + - **OperationResult** (int) - 上次插件操作结果。 + - **ReleaseTime** (str) - 最新可用版本的发布时间。 + - **Status** (int) - 插件状态。 + - **UpdateTime** (int) - 更新时间,Unix 时间戳,单位秒。 + - **Version** (str) - 当前插件版本。 + + + **CloudProviderInfo** + - **AvailableVersion** (str) - 最新可用插件版本。 + - **ManageEnabled** (bool) - 是否开启插件托管。 + - **Name** (str) - 插件名称。 + - **OperationResult** (int) - 上次插件操作结果。 + - **ReleaseTime** (str) - 最新可用版本的发布时间。 + - **Status** (int) - 插件状态。 + - **UpdateTime** (int) - 更新时间,Unix 时间戳,单位秒。 + - **Version** (str) - 当前插件版本。 + + + **NodePluginInfo** + - **IP** (str) - Node节点IP + - **Node** (str) - Node节点名称 + - **OperationResult** (int) - 上次插件操作结果,0:没有上次操作结果,或当前正在执行升级或查询 1:获取成功 2 获取失败 3 升级成功 4 升级失败 + - **Status** (int) - 插件工作状态,0:未知,1:正常,2:异常, 3: 升级中 + - **UpdateTime** (int) - 插件信息更新时间 + - **Version** (str) - 插件版本 + + + **RuntimeConvertInfo** + - **NodeInfoSet** (list) - 见 **NodePluginInfo** 模型定义 + - **RuntimeName** (str) - 容器运行时名称。 + - **RuntimeVersion** (str) - 容器运行时版本。 + - **Stage** (str) - 集群从未进行过运行时转换则返回 Unknown集群运行时转换几个阶段 Precheck->Updating→Success如果转换失败则为 Failed + - **UpdateTime** (int) - 运行时转换信息更新时间,Unix 时间戳,单位秒。 + + + **NodePlugin** + - **AvailableVersion** (str) - 最新插件版本 + - **ManageEnabled** (bool) - 插件管理是否开启 + - **Name** (str) - 插件名称, 如 CNI, CSI, Flexv, CloudProvider + - **PluginInfoSet** (list) - 见 **NodePluginInfo** 模型定义 + - **ReleaseTime** (str) - 最新插件发布时间 + """ # build request @@ -926,10 +1643,10 @@ def get_cluster_config( "Region": self.config.region, } req and d.update(req) - d = apis.GetClusterConfigRequestSchema().dumps(d) + d = apis.GetUK8SPluginInfoRequestSchema().dumps(d) - resp = self.invoke("GetClusterConfig", d, **kwargs) - return apis.GetClusterConfigResponseSchema().loads(resp) + resp = self.invoke("GetUK8SPluginInfo", d, **kwargs) + return apis.GetUK8SPluginInfoResponseSchema().loads(resp) def get_uk8s_versions( self, req: typing.Optional[dict] = None, **kwargs @@ -1138,6 +1855,13 @@ def list_uk8s_node_group( **Response Model** + **ReservedResource** + - **CPU** (str) - CPU + - **EphemeralStorage** (str) - 存储 + - **Memory** (str) - 内存 + - **Pid** (str) - Pid + + **EvictionCondition** - **ImagefsAvailable** (str) - 镜像文件系统存储相关驱逐条件或宽限时间。 - **MemoryAvailable** (str) - 内存相关驱逐条件或宽限时间。 @@ -1145,11 +1869,10 @@ def list_uk8s_node_group( - **NodefsInodesFree** (str) - 节点剩余inodes驱逐条件或宽限时间。 - **ReservedResource** - - **CPU** (str) - CPU - - **EphemeralStorage** (str) - 存储 - - **Memory** (str) - 内存 - - **Pid** (str) - Pid + **SecGroupId** + - **Id** (str) - 安全组名称 + - **Name** (str) - 安全组id + - **Priority** (str) - 安全组优先级 **KubeletConfiguration** @@ -1165,14 +1888,6 @@ def list_uk8s_node_group( - **SystemReserved** (dict) - 见 **ReservedResource** 模型定义 - **EIP** - - **Bandwidth** (int) - 【若绑定EIP,此参数必填】弹性IP的外网带宽, 单位为Mbps. 共享带宽模式下非必传, 非共享带宽模式必须指定非0Mbps带宽. 各地域非共享带宽的带宽范围如下: 流量计费[1-300],带宽计费[1-800] - - **CouponId** (str) - 当前EIP代金券id。请通过DescribeCoupon接口查询,或登录用户中心查看。 - - **OperatorName** (str) - 【若绑定EIP,此参数必填】弹性IP的线路。枚举值: 国际: International,BGP: Bgp。 各地域允许的线路参数如下: cn-sh1: Bgp cn-sh2: Bgp cn-gd: Bgp cn-bj1: Bgp cn-bj2: Bgp hk: International us-ca: International th-bkk: International kr-seoul:International us-ws:International ge-fra:International sg:International tw-kh:International.其他海外线路均为 International - - **PayMode** (str) - 弹性IP的计费模式. 枚举值: "Traffic", 流量计费; "Bandwidth", 带宽计费; "ShareBandwidth",共享带宽模式. "Free":免费带宽模式,默认为 "Bandwidth" - - **ShareBandwidthId** (str) - 绑定的共享带宽Id,仅当PayMode为ShareBandwidth时有效 - - **DiskSet** - **BackupType** (str) - 备份方案,枚举类型:BASIC_SNAPSHOT,普通快照;DATAARK,方舟。无快照则不返回该字段。 - **DiskId** (str) - 磁盘长ID @@ -1186,14 +1901,16 @@ def list_uk8s_node_group( - **Type** (str) - 磁盘类型。系统盘: Boot,数据盘: Data,网络盘:Udisk - **NetworkInterface** - - **EIP** (dict) - 见 **EIP** 模型定义 + **EIP** + - **Bandwidth** (int) - 【若绑定EIP,此参数必填】弹性IP的外网带宽, 单位为Mbps. 共享带宽模式下非必传, 非共享带宽模式必须指定非0Mbps带宽. 各地域非共享带宽的带宽范围如下: 流量计费[1-300],带宽计费[1-800] + - **CouponId** (str) - 当前EIP代金券id。请通过DescribeCoupon接口查询,或登录用户中心查看。 + - **OperatorName** (str) - 【若绑定EIP,此参数必填】弹性IP的线路。枚举值: 国际: International,BGP: Bgp。 各地域允许的线路参数如下: cn-sh1: Bgp cn-sh2: Bgp cn-gd: Bgp cn-bj1: Bgp cn-bj2: Bgp hk: International us-ca: International th-bkk: International kr-seoul:International us-ws:International ge-fra:International sg:International tw-kh:International.其他海外线路均为 International + - **PayMode** (str) - 弹性IP的计费模式. 枚举值: "Traffic", 流量计费; "Bandwidth", 带宽计费; "ShareBandwidth",共享带宽模式. "Free":免费带宽模式,默认为 "Bandwidth" + - **ShareBandwidthId** (str) - 绑定的共享带宽Id,仅当PayMode为ShareBandwidth时有效 - **SecGroupId** - - **Id** (str) - 安全组名称 - - **Name** (str) - 安全组id - - **Priority** (str) - 安全组优先级 + **NetworkInterface** + - **EIP** (dict) - 见 **EIP** 模型定义 **NodeGroupSet** @@ -1271,29 +1988,9 @@ def list_uk8s_uls_config( **Response Model** - **ULSLabels** - - **Key** (str) - 要匹配的标签的 Key。 - - **Value** (str) - 要匹配的标签的值。 - - **ValueOperator** (str) - 标签值的匹配操作符。可选值: in, notin。 - - - **ULSPodLabelsMatch** - - **Labels** (list) - 见 **ULSLabels** 模型定义 - - **Namespace** (str) - 要匹配的命名空间。namespaceOperator 存在时必需。 - - **NamespaceOperator** (str) - 命名空间名称的匹配操作符。可选值: in, notin。 - - - **ULSWorkloadMatch** - - **Name** (str) - 工作负载的名称。 - - **Namespace** (str) - 工作负载所在的命名空间。 - - **Type** (str) - 工作负载的类型,例如 deployment, statefulset, daemonset,cronjob,job。 - - - **ULSMatchRule** - - **Container** (str) - 要匹配的容器名称,*表示所有容器,用逗号分隔 - - **ContainerOperator** (str) - 容器名称匹配操作符。支持:in(包含),notin(不包含) - - **PodLabels** (dict) - 见 **ULSPodLabelsMatch** 模型定义 - - **Workloads** (list) - 见 **ULSWorkloadMatch** 模型定义 + **ULSFilePaths** + - **File** (str) - 采集文件 + - **Path** (str) - 定义采集路径 **ULSInputMetadata** @@ -1301,6 +1998,13 @@ def list_uk8s_uls_config( - **Labels** (str) - 定义要采集哪些 Pod 的标签 (Labels)。可选值:*:采集所有标签。app,version:仅采集 app 和 version 这两个标签。""(空字符串):不采集任何标签。 + **ULSInputDetail** + - **FilePaths** (list) - 见 **ULSFilePaths** 模型定义 + - **InputMetadata** (dict) - 见 **ULSInputMetadata** 模型定义 + - **Stream** (str) - 容器标准输出流类型。仅适用于 container_stdout,可选值:all、stdout、stderr,默认为 all。 + - **Type** (str) - 日志输入类型。可选值:container_file、container_stdout。 + + **ULSExtractRule** - **BeginningRegex** (str) - 行首正则表达式。在 multi_line、multi_line_full_regex 或 multi_line_delimiter 模式下,BeginningRegex 和 BeginningRegexBase64 必须至少填写一个。 - **BeginningRegexBase64** (str) - Base64 编码的行首正则表达式。填写时优先于 BeginningRegex。 @@ -1318,16 +2022,29 @@ def list_uk8s_uls_config( - **UnMatchUpload** (str) - 是否上传解析失败的日志。字符串 true 表示上传,false 表示丢弃。默认为 false。 - **ULSFilePaths** - - **File** (str) - 采集文件 - - **Path** (str) - 定义采集路径 + **ULSWorkloadMatch** + - **Name** (str) - 工作负载的名称。 + - **Namespace** (str) - 工作负载所在的命名空间。 + - **Type** (str) - 工作负载的类型,例如 deployment, statefulset, daemonset,cronjob,job。 - **ULSInputDetail** - - **FilePaths** (list) - 见 **ULSFilePaths** 模型定义 - - **InputMetadata** (dict) - 见 **ULSInputMetadata** 模型定义 - - **Stream** (str) - 容器标准输出流类型。仅适用于 container_stdout,可选值:all、stdout、stderr,默认为 all。 - - **Type** (str) - 日志输入类型。可选值:container_file、container_stdout。 + **ULSLabels** + - **Key** (str) - 要匹配的标签的 Key。 + - **Value** (str) - 要匹配的标签的值。 + - **ValueOperator** (str) - 标签值的匹配操作符。可选值: in, notin。 + + + **ULSPodLabelsMatch** + - **Labels** (list) - 见 **ULSLabels** 模型定义 + - **Namespace** (str) - 要匹配的命名空间。namespaceOperator 存在时必需。 + - **NamespaceOperator** (str) - 命名空间名称的匹配操作符。可选值: in, notin。 + + + **ULSMatchRule** + - **Container** (str) - 要匹配的容器名称,*表示所有容器,用逗号分隔 + - **ContainerOperator** (str) - 容器名称匹配操作符。支持:in(包含),notin(不包含) + - **PodLabels** (dict) - 见 **ULSPodLabelsMatch** 模型定义 + - **Workloads** (list) - 见 **ULSWorkloadMatch** 模型定义 **ULSLogConfig** @@ -1406,6 +2123,69 @@ def remove_uk8s_node_group( resp = self.invoke("RemoveUK8SNodeGroup", d, **kwargs) return apis.RemoveUK8SNodeGroupResponseSchema().loads(resp) + def update_uk8s_auto_scaling_group_v2( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """UpdateUK8SAutoScalingGroupV2 - 更新伸缩组的名称、节点数上下限和优先级。节点规格等配置请通过关联节点池修改。 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID + - **Region** (str) - (Config) 地域 + - **ClusterId** (str) - (Required) 集群ID + - **Id** (str) - (Required) 伸缩组ID + - **Max** (int) - (Required) 最大节点数,范围 1–100。 + - **Min** (int) - (Required) 最小节点数,范围 0–100。 + - **Name** (str) - (Required) 伸缩组名称 + - **Priority** (int) - 伸缩组优先级,范围 1–100,值越大越优先。省略或传 0 时保持原优先级。 + - **Zone** (str) - 可用区,可选。此接口按集群和伸缩组 ID 更新配置。 + + **Response** + + - **Message** (str) - + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.UpdateUK8SAutoScalingGroupV2RequestSchema().dumps(d) + + resp = self.invoke("UpdateUK8SAutoScalingGroupV2", d, **kwargs) + return apis.UpdateUK8SAutoScalingGroupV2ResponseSchema().loads(resp) + + def update_uk8s_autoscaler( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """UpdateUK8SAutoscaler - 更新集群级缩容阈值和等待时间。调用前必须关闭 cluster-autoscaler;修改后重新开启,使新配置生效。 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ClusterId** (str) - (Required) 集群ID + - **ScaleDownDelayAfterAdd** (int) - (Required) 添加节点后等待缩容的时间,单位分钟,范围 1–1440。 + - **ScaleDownUnneededTime** (int) - (Required) 节点持续不需要后触发缩容的等待时间,单位分钟,范围 1–1440。 + - **ScaleDownUtilizationThreshold** (int) - (Required) 节点缩容利用率阈值,单位百分比,范围 0–100。例如 50 表示 50%。 + - **ScaleDownGPUUtilizationThreshold** (int) - GPU 缩容利用率阈值,单位百分比,范围 0–100。省略时使用 ScaleDownUtilizationThreshold。 + + **Response** + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.UpdateUK8SAutoscalerRequestSchema().dumps(d) + + resp = self.invoke("UpdateUK8SAutoscaler", d, **kwargs) + return apis.UpdateUK8SAutoscalerResponseSchema().loads(resp) + def update_uk8s_node_group( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: @@ -1457,10 +2237,6 @@ def update_uk8s_node_group( **Request Model** - **UpdateUK8SNodeGroupParamKubeletConfiguration** - - **ContainerLogMaxFiles** (int) - 全量KubeletConfiguration.XXX定义参考AddUK8SNodeGroup接口: https://uxiao.ucloudadmin.com/#/api-manager/api/detail/UK8S/AddUK8SNodeGroup - - **UpdateUK8SNodeGroupParamNetworkInterfaceEIP** - **Bandwidth** (int) - 【若绑定EIP,此参数必填】弹性IP的外网带宽, 单位为Mbps. 共享带宽模式下非必传, 非共享带宽模式必须指定非0Mbps带宽. 各地域非共享带宽的带宽范围如下: 流量计费[1-300],带宽计费[1-800] - **CouponId** (str) - 当前EIP代金券id。请通过DescribeCoupon接口查询,或登录用户中心查看。 @@ -1479,6 +2255,10 @@ def update_uk8s_node_group( - **Priority** (str) - 安全组优先级。取值范围[1, 5] + **UpdateUK8SNodeGroupParamKubeletConfiguration** + - **ContainerLogMaxFiles** (int) - 全量KubeletConfiguration.XXX定义参考AddUK8SNodeGroup接口: https://uxiao.ucloudadmin.com/#/api-manager/api/detail/UK8S/AddUK8SNodeGroup + + """ # build request d = { @@ -1532,13 +2312,6 @@ def update_uk8s_uls_config( - **Type** (str) - 工作负载类型。可选值:deployment、statefulset、daemonset、job、cronjob。 - **UpdateUK8SULSConfigParamMatchRule** - - **Container** (str) - 要匹配的容器名称,*表示所有容器,多个名称使用逗号分隔。 - - **ContainerOperator** (str) - 容器名称匹配操作符。可选值:in、notin。填写该参数时必须同时填写MatchRule.Container。 - - **PodLabels** (dict) - 见 **UpdateUK8SULSConfigParamMatchRulePodLabels** 模型定义 - - **Workloads** (list) - 见 **UpdateUK8SULSConfigParamMatchRuleWorkloads** 模型定义 - - **UpdateUK8SULSConfigParamInputDetailFilePaths** - **File** (str) - 要采集的文件名。仅适用于container_file。 - **Path** (str) - 日志采集路径。仅适用于container_file。 @@ -1549,11 +2322,11 @@ def update_uk8s_uls_config( - **Labels** (str) - 要采集的Pod标签。*表示采集所有标签,app,version表示仅采集指定标签,空字符串表示不采集标签。 - **UpdateUK8SULSConfigParamInputDetail** - - **FilePaths** (list) - 见 **UpdateUK8SULSConfigParamInputDetailFilePaths** 模型定义 - - **Metadata** (dict) - 见 **UpdateUK8SULSConfigParamInputDetailMetadata** 模型定义 - - **Stream** (str) - 容器标准输出流类型。仅适用于container_stdout,可选值:all、stdout、stderr,默认为all。 - - **Type** (str) - 日志输入类型。可选值:container_file、container_stdout。 + **UpdateUK8SULSConfigParamMatchRule** + - **Container** (str) - 要匹配的容器名称,*表示所有容器,多个名称使用逗号分隔。 + - **ContainerOperator** (str) - 容器名称匹配操作符。可选值:in、notin。填写该参数时必须同时填写MatchRule.Container。 + - **PodLabels** (dict) - 见 **UpdateUK8SULSConfigParamMatchRulePodLabels** 模型定义 + - **Workloads** (list) - 见 **UpdateUK8SULSConfigParamMatchRuleWorkloads** 模型定义 **UpdateUK8SULSConfigParamExtractRule** @@ -1573,6 +2346,13 @@ def update_uk8s_uls_config( - **UnMatchUpload** (str) - 是否上传解析失败的日志。字符串true表示上传,false表示丢弃。默认为false。 + **UpdateUK8SULSConfigParamInputDetail** + - **FilePaths** (list) - 见 **UpdateUK8SULSConfigParamInputDetailFilePaths** 模型定义 + - **Metadata** (dict) - 见 **UpdateUK8SULSConfigParamInputDetailMetadata** 模型定义 + - **Stream** (str) - 容器标准输出流类型。仅适用于container_stdout,可选值:all、stdout、stderr,默认为all。 + - **Type** (str) - 日志输入类型。可选值:container_file、container_stdout。 + + """ # build request d = { diff --git a/ucloud/services/uk8s/schemas/apis.py b/ucloud/services/uk8s/schemas/apis.py index dece01e..b4b108f 100644 --- a/ucloud/services/uk8s/schemas/apis.py +++ b/ucloud/services/uk8s/schemas/apis.py @@ -7,6 +7,65 @@ """ +""" +API: AddUK8SAutoScalingGroupV2 + +创建绑定已有节点池的自动伸缩组。当前请求校验仍要求提供 CPU、Mem、MachineType 和 Zone。 +""" + + +class AddUK8SAutoScalingGroupV2RequestSchema(schema.RequestSchema): + """AddUK8SAutoScalingGroupV2 - 创建绑定已有节点池的自动伸缩组。当前请求校验仍要求提供 CPU、Mem、MachineType 和 Zone。""" + + fields = { + "BootDiskSize": fields.Int(required=False, dump_to="BootDiskSize"), + "BootDiskType": fields.Str(required=False, dump_to="BootDiskType"), + "CPU": fields.Int(required=True, dump_to="CPU"), + "ChargeType": fields.Str(required=False, dump_to="ChargeType"), + "ClusterId": fields.Str(required=True, dump_to="ClusterId"), + "DataDiskSize": fields.Int(required=False, dump_to="DataDiskSize"), + "DataDiskType": fields.Str(required=False, dump_to="DataDiskType"), + "GPU": fields.Int(required=False, dump_to="GPU"), + "GpuType": fields.Str(required=False, dump_to="GpuType"), + "ImageId": fields.Str(required=False, dump_to="ImageId"), + "InitScript": fields.Str(required=False, dump_to="InitScript"), + "IsolationGroup": fields.Str(required=False, dump_to="IsolationGroup"), + "KeyPairId": fields.Str(required=False, dump_to="KeyPairId"), + "Labels": fields.Str(required=False, dump_to="Labels"), + "LoginMode": fields.Str(required=False, dump_to="LoginMode"), + "MachineType": fields.Str(required=True, dump_to="MachineType"), + "Max": fields.Int(required=True, dump_to="Max"), + "MaxPods": fields.Int(required=False, dump_to="MaxPods"), + "Mem": fields.Int(required=True, dump_to="Mem"), + "Min": fields.Int(required=True, dump_to="Min"), + "MinimalCpuPlatform": fields.Str( + required=False, dump_to="MinimalCpuPlatform" + ), + "MinmalCpuPlatform": fields.Str( + required=False, dump_to="MinmalCpuPlatform" + ), + "Name": fields.Str(required=True, dump_to="Name"), + "NodeGroupId": fields.Str(required=True, dump_to="NodeGroupId"), + "Password": fields.Str(required=False, dump_to="Password"), + "Priority": fields.Int(required=False, dump_to="Priority"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Tag": fields.Str(required=False, dump_to="Tag"), + "Taints": fields.Str(required=False, dump_to="Taints"), + "UserData": fields.Str(required=False, dump_to="UserData"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class AddUK8SAutoScalingGroupV2ResponseSchema(schema.ResponseSchema): + """AddUK8SAutoScalingGroupV2 - 创建绑定已有节点池的自动伸缩组。当前请求校验仍要求提供 CPU、Mem、MachineType 和 Zone。""" + + fields = { + "AsgId": fields.Str(required=False, load_from="AsgId"), + "Message": fields.Str(required=True, load_from="Message"), + } + + """ API: AddUK8SExistingUHost @@ -65,10 +124,10 @@ class AddUK8SNodeGroupParamNetworkInterfaceEIPSchema(schema.RequestSchema): } -class AddUK8SNodeGroupParamKubeletConfigurationEvictionHardSchema( +class AddUK8SNodeGroupParamKubeletConfigurationEvictionSoftSchema( schema.RequestSchema ): - """AddUK8SNodeGroupParamKubeletConfigurationEvictionHard -""" + """AddUK8SNodeGroupParamKubeletConfigurationEvictionSoft -""" fields = { "ImagefsAvailable": fields.Str( @@ -86,10 +145,25 @@ class AddUK8SNodeGroupParamKubeletConfigurationEvictionHardSchema( } -class AddUK8SNodeGroupParamKubeletConfigurationEvictionSoftSchema( +class AddUK8SNodeGroupParamKubeletConfigurationKubeReservedSchema( schema.RequestSchema ): - """AddUK8SNodeGroupParamKubeletConfigurationEvictionSoft -""" + """AddUK8SNodeGroupParamKubeletConfigurationKubeReserved -""" + + fields = { + "CPU": fields.Str(required=False, dump_to="CPU"), + "EphemeralStorage": fields.Str( + required=False, dump_to="EphemeralStorage" + ), + "Memory": fields.Str(required=False, dump_to="Memory"), + "Pid": fields.Str(required=False, dump_to="Pid"), + } + + +class AddUK8SNodeGroupParamKubeletConfigurationEvictionHardSchema( + schema.RequestSchema +): + """AddUK8SNodeGroupParamKubeletConfigurationEvictionHard -""" fields = { "ImagefsAvailable": fields.Str( @@ -107,16 +181,6 @@ class AddUK8SNodeGroupParamKubeletConfigurationEvictionSoftSchema( } -class AddUK8SNodeGroupParamNetworkInterfaceSchema(schema.RequestSchema): - """AddUK8SNodeGroupParamNetworkInterface -""" - - fields = { - "EIP": AddUK8SNodeGroupParamNetworkInterfaceEIPSchema( - required=False, dump_to="EIP" - ), - } - - class AddUK8SNodeGroupParamKubeletConfigurationEvictionSoftGracePeriodSchema( schema.RequestSchema ): @@ -153,21 +217,6 @@ class AddUK8SNodeGroupParamKubeletConfigurationSystemReservedSchema( } -class AddUK8SNodeGroupParamKubeletConfigurationKubeReservedSchema( - schema.RequestSchema -): - """AddUK8SNodeGroupParamKubeletConfigurationKubeReserved -""" - - fields = { - "CPU": fields.Str(required=False, dump_to="CPU"), - "EphemeralStorage": fields.Str( - required=False, dump_to="EphemeralStorage" - ), - "Memory": fields.Str(required=False, dump_to="Memory"), - "Pid": fields.Str(required=False, dump_to="Pid"), - } - - class AddUK8SNodeGroupParamKubeletConfigurationSchema(schema.RequestSchema): """AddUK8SNodeGroupParamKubeletConfiguration -""" @@ -213,6 +262,16 @@ class AddUK8SNodeGroupParamSecGroupIdSchema(schema.RequestSchema): } +class AddUK8SNodeGroupParamNetworkInterfaceSchema(schema.RequestSchema): + """AddUK8SNodeGroupParamNetworkInterface -""" + + fields = { + "EIP": AddUK8SNodeGroupParamNetworkInterfaceEIPSchema( + required=False, dump_to="EIP" + ), + } + + class AddUK8SNodeGroupRequestSchema(schema.RequestSchema): """AddUK8SNodeGroup - 添加UK8S节点池""" @@ -322,6 +381,25 @@ class AddUK8SPHostNodeResponseSchema(schema.ResponseSchema): """ +class AddUK8SUHostNodeParamUserLabelsSchema(schema.RequestSchema): + """AddUK8SUHostNodeParamUserLabels -""" + + fields = { + "Key": fields.Str(required=False, dump_to="Key"), + "Value": fields.Str(required=False, dump_to="Value"), + } + + +class AddUK8SUHostNodeParamKubeletConfigurationSchema(schema.RequestSchema): + """AddUK8SUHostNodeParamKubeletConfiguration -""" + + fields = { + "ContainerLogMaxFiles": fields.Str( + required=False, dump_to="ContainerLogMaxFiles" + ), + } + + class AddUK8SUHostNodeParamNetworkInterfaceEIPSchema(schema.RequestSchema): """AddUK8SUHostNodeParamNetworkInterfaceEIP -""" @@ -346,25 +424,6 @@ class AddUK8SUHostNodeParamNetworkInterfaceSchema(schema.RequestSchema): } -class AddUK8SUHostNodeParamUserLabelsSchema(schema.RequestSchema): - """AddUK8SUHostNodeParamUserLabels -""" - - fields = { - "Key": fields.Str(required=False, dump_to="Key"), - "Value": fields.Str(required=False, dump_to="Value"), - } - - -class AddUK8SUHostNodeParamKubeletConfigurationSchema(schema.RequestSchema): - """AddUK8SUHostNodeParamKubeletConfiguration -""" - - fields = { - "ContainerLogMaxFiles": fields.Str( - required=False, dump_to="ContainerLogMaxFiles" - ), - } - - class AddUK8SUHostNodeParamSecGroupIdSchema(schema.RequestSchema): """AddUK8SUHostNodeParamSecGroupId -""" @@ -510,25 +569,6 @@ class CreateUK8SClusterV2ParamNodesKubeletConfigurationSchema( } -class CreateUK8SClusterV2ParamKubeProxySchema(schema.RequestSchema): - """CreateUK8SClusterV2ParamKubeProxy -""" - - fields = { - "Mode": fields.Str(required=False, dump_to="Mode"), - } - - -class CreateUK8SClusterV2ParamMasterSchema(schema.RequestSchema): - """CreateUK8SClusterV2ParamMaster -""" - - fields = { - "SecGroupId": fields.List( - CreateUK8SClusterV2ParamMasterSecGroupIdSchema() - ), - "Zone": fields.Str(required=True, dump_to="Zone"), - } - - class CreateUK8SClusterV2ParamNodesSchema(schema.RequestSchema): """CreateUK8SClusterV2ParamNodes -""" @@ -589,6 +629,25 @@ class CreateUK8SClusterV2ParamUserLabelsSchema(schema.RequestSchema): } +class CreateUK8SClusterV2ParamKubeProxySchema(schema.RequestSchema): + """CreateUK8SClusterV2ParamKubeProxy -""" + + fields = { + "Mode": fields.Str(required=False, dump_to="Mode"), + } + + +class CreateUK8SClusterV2ParamMasterSchema(schema.RequestSchema): + """CreateUK8SClusterV2ParamMaster -""" + + fields = { + "SecGroupId": fields.List( + CreateUK8SClusterV2ParamMasterSecGroupIdSchema() + ), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + class CreateUK8SClusterV2RequestSchema(schema.RequestSchema): """CreateUK8SClusterV2 - 创建UK8S集群""" @@ -674,56 +733,36 @@ class CreateUK8SClusterV2ResponseSchema(schema.ResponseSchema): """ -class CreateUK8SULSConfigParamMatchRulePodLabelsLabelsSchema( - schema.RequestSchema -): - """CreateUK8SULSConfigParamMatchRulePodLabelsLabels -""" - - fields = { - "Key": fields.Str(required=False, dump_to="Key"), - "Value": fields.Str(required=False, dump_to="Value"), - "ValueOperator": fields.Str(required=False, dump_to="ValueOperator"), - } - - -class CreateUK8SULSConfigParamMatchRulePodLabelsSchema(schema.RequestSchema): - """CreateUK8SULSConfigParamMatchRulePodLabels -""" +class CreateUK8SULSConfigParamInputDetailMetadataSchema(schema.RequestSchema): + """CreateUK8SULSConfigParamInputDetailMetadata -""" fields = { - "Labels": fields.List( - CreateUK8SULSConfigParamMatchRulePodLabelsLabelsSchema() - ), - "Namespace": fields.Str(required=False, dump_to="Namespace"), - "NamespaceOperator": fields.Str( - required=False, dump_to="NamespaceOperator" - ), + "Container": fields.Str(required=False, dump_to="Container"), + "Labels": fields.Str(required=False, dump_to="Labels"), } -class CreateUK8SULSConfigParamMatchRuleWorkloadsSchema(schema.RequestSchema): - """CreateUK8SULSConfigParamMatchRuleWorkloads -""" +class CreateUK8SULSConfigParamInputDetailFilePathsSchema(schema.RequestSchema): + """CreateUK8SULSConfigParamInputDetailFilePaths -""" fields = { - "Name": fields.Str(required=False, dump_to="Name"), - "Namespace": fields.Str(required=False, dump_to="Namespace"), - "Type": fields.Str(required=False, dump_to="Type"), + "File": fields.Str(required=False, dump_to="File"), + "Path": fields.Str(required=False, dump_to="Path"), } -class CreateUK8SULSConfigParamMatchRuleSchema(schema.RequestSchema): - """CreateUK8SULSConfigParamMatchRule -""" +class CreateUK8SULSConfigParamInputDetailSchema(schema.RequestSchema): + """CreateUK8SULSConfigParamInputDetail -""" fields = { - "Container": fields.Str(required=False, dump_to="Container"), - "ContainerOperator": fields.Str( - required=False, dump_to="ContainerOperator" - ), - "PodLabels": CreateUK8SULSConfigParamMatchRulePodLabelsSchema( - required=False, dump_to="PodLabels" + "FilePaths": fields.List( + CreateUK8SULSConfigParamInputDetailFilePathsSchema() ), - "Workloads": fields.List( - CreateUK8SULSConfigParamMatchRuleWorkloadsSchema() + "Metadata": CreateUK8SULSConfigParamInputDetailMetadataSchema( + required=False, dump_to="Metadata" ), + "Stream": fields.Str(required=False, dump_to="Stream"), + "Type": fields.Str(required=True, dump_to="Type"), } @@ -764,36 +803,56 @@ class CreateUK8SULSConfigParamExtractRuleSchema(schema.RequestSchema): } -class CreateUK8SULSConfigParamInputDetailMetadataSchema(schema.RequestSchema): - """CreateUK8SULSConfigParamInputDetailMetadata -""" +class CreateUK8SULSConfigParamMatchRulePodLabelsLabelsSchema( + schema.RequestSchema +): + """CreateUK8SULSConfigParamMatchRulePodLabelsLabels -""" fields = { - "Container": fields.Str(required=False, dump_to="Container"), - "Labels": fields.Str(required=False, dump_to="Labels"), + "Key": fields.Str(required=False, dump_to="Key"), + "Value": fields.Str(required=False, dump_to="Value"), + "ValueOperator": fields.Str(required=False, dump_to="ValueOperator"), } -class CreateUK8SULSConfigParamInputDetailFilePathsSchema(schema.RequestSchema): - """CreateUK8SULSConfigParamInputDetailFilePaths -""" +class CreateUK8SULSConfigParamMatchRulePodLabelsSchema(schema.RequestSchema): + """CreateUK8SULSConfigParamMatchRulePodLabels -""" fields = { - "File": fields.Str(required=False, dump_to="File"), - "Path": fields.Str(required=False, dump_to="Path"), - } - - -class CreateUK8SULSConfigParamInputDetailSchema(schema.RequestSchema): - """CreateUK8SULSConfigParamInputDetail -""" - + "Labels": fields.List( + CreateUK8SULSConfigParamMatchRulePodLabelsLabelsSchema() + ), + "Namespace": fields.Str(required=False, dump_to="Namespace"), + "NamespaceOperator": fields.Str( + required=False, dump_to="NamespaceOperator" + ), + } + + +class CreateUK8SULSConfigParamMatchRuleWorkloadsSchema(schema.RequestSchema): + """CreateUK8SULSConfigParamMatchRuleWorkloads -""" + fields = { - "FilePaths": fields.List( - CreateUK8SULSConfigParamInputDetailFilePathsSchema() + "Name": fields.Str(required=False, dump_to="Name"), + "Namespace": fields.Str(required=False, dump_to="Namespace"), + "Type": fields.Str(required=False, dump_to="Type"), + } + + +class CreateUK8SULSConfigParamMatchRuleSchema(schema.RequestSchema): + """CreateUK8SULSConfigParamMatchRule -""" + + fields = { + "Container": fields.Str(required=False, dump_to="Container"), + "ContainerOperator": fields.Str( + required=False, dump_to="ContainerOperator" ), - "Metadata": CreateUK8SULSConfigParamInputDetailMetadataSchema( - required=False, dump_to="Metadata" + "PodLabels": CreateUK8SULSConfigParamMatchRulePodLabelsSchema( + required=False, dump_to="PodLabels" + ), + "Workloads": fields.List( + CreateUK8SULSConfigParamMatchRuleWorkloadsSchema() ), - "Stream": fields.Str(required=False, dump_to="Stream"), - "Type": fields.Str(required=True, dump_to="Type"), } @@ -878,6 +937,30 @@ class DelUK8SClusterNodeV2ResponseSchema(schema.ResponseSchema): } +""" +API: DeleteUK8SAutoScalingGroup + +删除伸缩组 +""" + + +class DeleteUK8SAutoScalingGroupRequestSchema(schema.RequestSchema): + """DeleteUK8SAutoScalingGroup - 删除伸缩组""" + + fields = { + "ClusterId": fields.Str(required=True, dump_to="ClusterId"), + "Id": fields.Str(required=True, dump_to="Id"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + } + + +class DeleteUK8SAutoScalingGroupResponseSchema(schema.ResponseSchema): + """DeleteUK8SAutoScalingGroup - 删除伸缩组""" + + fields = {} + + """ API: DeleteUK8SULSConfig @@ -903,6 +986,38 @@ class DeleteUK8SULSConfigResponseSchema(schema.ResponseSchema): fields = {} +""" +API: DescribeUK8SAutoscalerGroup + +获取autoscaler与auto scaling group信息 +""" + + +class DescribeUK8SAutoscalerGroupRequestSchema(schema.RequestSchema): + """DescribeUK8SAutoscalerGroup - 获取autoscaler与auto scaling group信息""" + + fields = { + "ClusterId": fields.Str(required=True, dump_to="ClusterId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class DescribeUK8SAutoscalerGroupResponseSchema(schema.ResponseSchema): + """DescribeUK8SAutoscalerGroup - 获取autoscaler与auto scaling group信息""" + + fields = { + "AutoScalingGroup": fields.List( + models.AutoScalingGroupSchema(), + required=False, + load_from="AutoScalingGroup", + ), + "Autoscaler": models.AutoscalerSchema(), + "Update": fields.Int(required=False, load_from="Update"), + } + + """ API: DescribeUK8SCluster @@ -1108,6 +1223,30 @@ class DescribeUK8SNodeResponseSchema(schema.ResponseSchema): } +""" +API: EnableUK8SAutoscaler + +开启/关闭伸缩器 +""" + + +class EnableUK8SAutoscalerRequestSchema(schema.RequestSchema): + """EnableUK8SAutoscaler - 开启/关闭伸缩器""" + + fields = { + "ClusterId": fields.Str(required=True, dump_to="ClusterId"), + "Enabled": fields.Int(required=True, dump_to="Enabled"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + } + + +class EnableUK8SAutoscalerResponseSchema(schema.ResponseSchema): + """EnableUK8SAutoscaler - 开启/关闭伸缩器""" + + fields = {} + + """ API: GetClusterConfig @@ -1137,6 +1276,198 @@ class GetClusterConfigResponseSchema(schema.ResponseSchema): } +""" +API: GetUK8SAvailableInstanceTypes + +获取uk8s节点可用机型 +""" + + +class GetUK8SAvailableInstanceTypesRequestSchema(schema.RequestSchema): + """GetUK8SAvailableInstanceTypes - 获取uk8s节点可用机型""" + + fields = { + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class GetUK8SAvailableInstanceTypesResponseSchema(schema.ResponseSchema): + """GetUK8SAvailableInstanceTypes - 获取uk8s节点可用机型""" + + fields = { + "AvailableInstanceTypes": fields.List( + models.UK8SAvailableInstanceTypeSchema(), + required=False, + load_from="AvailableInstanceTypes", + ), + "Status": fields.Str(required=False, load_from="Status"), + } + + +""" +API: GetUK8SCNINodeInfo + +获取 UK8S 集群各节点的 CNI 版本、状态及版本同步情况。 +""" + + +class GetUK8SCNINodeInfoRequestSchema(schema.RequestSchema): + """GetUK8SCNINodeInfo - 获取 UK8S 集群各节点的 CNI 版本、状态及版本同步情况。""" + + fields = { + "ClusterId": fields.Str(required=True, dump_to="ClusterId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class GetUK8SCNINodeInfoResponseSchema(schema.ResponseSchema): + """GetUK8SCNINodeInfo - 获取 UK8S 集群各节点的 CNI 版本、状态及版本同步情况。""" + + fields = { + "AllNodesSynced": fields.Bool( + required=False, load_from="AllNodesSynced" + ), + "DataSource": fields.Str(required=False, load_from="DataSource"), + "HighestVersion": fields.Str( + required=False, load_from="HighestVersion" + ), + "NodeInfoSet": fields.List( + models.NodePluginInfoSchema(), + required=False, + load_from="NodeInfoSet", + ), + "Partial": fields.Bool(required=False, load_from="Partial"), + } + + +""" +API: GetUK8SIpamdStatus + +查询 ipamd 插件的安装状态、版本、CNI 初始化模式及模式切换能力。 +""" + + +class GetUK8SIpamdStatusRequestSchema(schema.RequestSchema): + """GetUK8SIpamdStatus - 查询 ipamd 插件的安装状态、版本、CNI 初始化模式及模式切换能力。""" + + fields = { + "ClusterId": fields.Str(required=True, dump_to="ClusterId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class GetUK8SIpamdStatusResponseSchema(schema.ResponseSchema): + """GetUK8SIpamdStatus - 查询 ipamd 插件的安装状态、版本、CNI 初始化模式及模式切换能力。""" + + fields = { + "CNIInitMode": fields.Str(required=False, load_from="CNIInitMode"), + "CNIInitVersionReady": fields.Bool( + required=False, load_from="CNIInitVersionReady" + ), + "Installed": fields.Bool(required=True, load_from="Installed"), + "LastVersion": fields.Str(required=True, load_from="LastVersion"), + "OpenTime": fields.Int(required=True, load_from="OpenTime"), + "ReleaseDate": fields.Int(required=True, load_from="ReleaseDate"), + "Version": fields.Str(required=True, load_from="Version"), + } + + +""" +API: GetUK8SLoadBalancerController + +获取 uk8s LoadBalancerController 信息 +""" + + +class GetUK8SLoadBalancerControllerRequestSchema(schema.RequestSchema): + """GetUK8SLoadBalancerController - 获取 uk8s LoadBalancerController 信息""" + + fields = { + "ClusterId": fields.Str(required=True, dump_to="ClusterId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class GetUK8SLoadBalancerControllerResponseSchema(schema.ResponseSchema): + """GetUK8SLoadBalancerController - 获取 uk8s LoadBalancerController 信息""" + + fields = { + "CreateTime": fields.Int(required=True, load_from="CreateTime"), + "Installed": fields.Bool(required=True, load_from="Installed"), + "LastVersion": fields.Str(required=True, load_from="LastVersion"), + "Status": fields.Str(required=True, load_from="Status"), + "Version": fields.Str(required=True, load_from="Version"), + } + + +""" +API: GetUK8SNodeGroup + +列出某个UK8S节点池 +""" + + +class GetUK8SNodeGroupRequestSchema(schema.RequestSchema): + """GetUK8SNodeGroup - 列出某个UK8S节点池""" + + fields = { + "ClusterId": fields.Str(required=True, dump_to="ClusterId"), + "NodeGroupId": fields.Str(required=True, dump_to="NodeGroupId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + } + + +class GetUK8SNodeGroupResponseSchema(schema.ResponseSchema): + """GetUK8SNodeGroup - 列出某个UK8S节点池""" + + fields = { + "NodeGroup": models.NodeGroupSetSchema(), + } + + +""" +API: GetUK8SPluginInfo + +查询集群插件信息 +""" + + +class GetUK8SPluginInfoRequestSchema(schema.RequestSchema): + """GetUK8SPluginInfo - 查询集群插件信息""" + + fields = { + "ClusterId": fields.Str(required=True, dump_to="ClusterId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + } + + +class GetUK8SPluginInfoResponseSchema(schema.ResponseSchema): + """GetUK8SPluginInfo - 查询集群插件信息""" + + fields = { + "CNIInfoSet": models.NodePluginSchema(), + "CSIInfo": models.CSIInfoSchema(), + "CloudProviderInfo": models.CloudProviderInfoSchema(), + "ClusterId": fields.Str(required=True, load_from="ClusterId"), + "ClusterStatus": fields.Str(required=False, load_from="ClusterStatus"), + "ClusterUpgradeInfo": models.ClusterUpgradeInfoSchema(), + "Message": fields.Str(required=True, load_from="Message"), + "MonitorInfo": models.MonitorInfoSchema(), + "RuntimeConvertInfo": models.RuntimeConvertInfoSchema(), + "VKInfo": models.VKNodeSchema(), + } + + """ API: GetUK8SVersions @@ -1337,22 +1668,78 @@ class RemoveUK8SNodeGroupResponseSchema(schema.ResponseSchema): """ -API: UpdateUK8SNodeGroup +API: UpdateUK8SAutoScalingGroupV2 -修改UK8S节点池 +更新伸缩组的名称、节点数上下限和优先级。节点规格等配置请通过关联节点池修改。 """ -class UpdateUK8SNodeGroupParamKubeletConfigurationSchema(schema.RequestSchema): - """UpdateUK8SNodeGroupParamKubeletConfiguration -""" +class UpdateUK8SAutoScalingGroupV2RequestSchema(schema.RequestSchema): + """UpdateUK8SAutoScalingGroupV2 - 更新伸缩组的名称、节点数上下限和优先级。节点规格等配置请通过关联节点池修改。""" fields = { - "ContainerLogMaxFiles": fields.Int( - required=False, dump_to="ContainerLogMaxFiles" + "ClusterId": fields.Str(required=True, dump_to="ClusterId"), + "Id": fields.Str(required=True, dump_to="Id"), + "Max": fields.Int(required=True, dump_to="Max"), + "Min": fields.Int(required=True, dump_to="Min"), + "Name": fields.Str(required=True, dump_to="Name"), + "Priority": fields.Int(required=False, dump_to="Priority"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class UpdateUK8SAutoScalingGroupV2ResponseSchema(schema.ResponseSchema): + """UpdateUK8SAutoScalingGroupV2 - 更新伸缩组的名称、节点数上下限和优先级。节点规格等配置请通过关联节点池修改。""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + } + + +""" +API: UpdateUK8SAutoscaler + +更新集群级缩容阈值和等待时间。调用前必须关闭 cluster-autoscaler;修改后重新开启,使新配置生效。 +""" + + +class UpdateUK8SAutoscalerRequestSchema(schema.RequestSchema): + """UpdateUK8SAutoscaler - 更新集群级缩容阈值和等待时间。调用前必须关闭 cluster-autoscaler;修改后重新开启,使新配置生效。""" + + fields = { + "ClusterId": fields.Str(required=True, dump_to="ClusterId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "ScaleDownDelayAfterAdd": fields.Int( + required=True, dump_to="ScaleDownDelayAfterAdd" + ), + "ScaleDownGPUUtilizationThreshold": fields.Int( + required=False, dump_to="ScaleDownGPUUtilizationThreshold" + ), + "ScaleDownUnneededTime": fields.Int( + required=True, dump_to="ScaleDownUnneededTime" + ), + "ScaleDownUtilizationThreshold": fields.Int( + required=True, dump_to="ScaleDownUtilizationThreshold" ), } +class UpdateUK8SAutoscalerResponseSchema(schema.ResponseSchema): + """UpdateUK8SAutoscaler - 更新集群级缩容阈值和等待时间。调用前必须关闭 cluster-autoscaler;修改后重新开启,使新配置生效。""" + + fields = {} + + +""" +API: UpdateUK8SNodeGroup + +修改UK8S节点池 +""" + + class UpdateUK8SNodeGroupParamNetworkInterfaceEIPSchema(schema.RequestSchema): """UpdateUK8SNodeGroupParamNetworkInterfaceEIP -""" @@ -1387,6 +1774,16 @@ class UpdateUK8SNodeGroupParamSecGroupIdSchema(schema.RequestSchema): } +class UpdateUK8SNodeGroupParamKubeletConfigurationSchema(schema.RequestSchema): + """UpdateUK8SNodeGroupParamKubeletConfiguration -""" + + fields = { + "ContainerLogMaxFiles": fields.Int( + required=False, dump_to="ContainerLogMaxFiles" + ), + } + + class UpdateUK8SNodeGroupRequestSchema(schema.RequestSchema): """UpdateUK8SNodeGroup - 修改UK8S节点池""" @@ -1492,23 +1889,6 @@ class UpdateUK8SULSConfigParamMatchRuleWorkloadsSchema(schema.RequestSchema): } -class UpdateUK8SULSConfigParamMatchRuleSchema(schema.RequestSchema): - """UpdateUK8SULSConfigParamMatchRule -""" - - fields = { - "Container": fields.Str(required=False, dump_to="Container"), - "ContainerOperator": fields.Str( - required=False, dump_to="ContainerOperator" - ), - "PodLabels": UpdateUK8SULSConfigParamMatchRulePodLabelsSchema( - required=False, dump_to="PodLabels" - ), - "Workloads": fields.List( - UpdateUK8SULSConfigParamMatchRuleWorkloadsSchema() - ), - } - - class UpdateUK8SULSConfigParamInputDetailFilePathsSchema(schema.RequestSchema): """UpdateUK8SULSConfigParamInputDetailFilePaths -""" @@ -1527,18 +1907,20 @@ class UpdateUK8SULSConfigParamInputDetailMetadataSchema(schema.RequestSchema): } -class UpdateUK8SULSConfigParamInputDetailSchema(schema.RequestSchema): - """UpdateUK8SULSConfigParamInputDetail -""" +class UpdateUK8SULSConfigParamMatchRuleSchema(schema.RequestSchema): + """UpdateUK8SULSConfigParamMatchRule -""" fields = { - "FilePaths": fields.List( - UpdateUK8SULSConfigParamInputDetailFilePathsSchema() + "Container": fields.Str(required=False, dump_to="Container"), + "ContainerOperator": fields.Str( + required=False, dump_to="ContainerOperator" ), - "Metadata": UpdateUK8SULSConfigParamInputDetailMetadataSchema( - required=False, dump_to="Metadata" + "PodLabels": UpdateUK8SULSConfigParamMatchRulePodLabelsSchema( + required=False, dump_to="PodLabels" + ), + "Workloads": fields.List( + UpdateUK8SULSConfigParamMatchRuleWorkloadsSchema() ), - "Stream": fields.Str(required=False, dump_to="Stream"), - "Type": fields.Str(required=True, dump_to="Type"), } @@ -1567,6 +1949,21 @@ class UpdateUK8SULSConfigParamExtractRuleSchema(schema.RequestSchema): } +class UpdateUK8SULSConfigParamInputDetailSchema(schema.RequestSchema): + """UpdateUK8SULSConfigParamInputDetail -""" + + fields = { + "FilePaths": fields.List( + UpdateUK8SULSConfigParamInputDetailFilePathsSchema() + ), + "Metadata": UpdateUK8SULSConfigParamInputDetailMetadataSchema( + required=False, dump_to="Metadata" + ), + "Stream": fields.Str(required=False, dump_to="Stream"), + "Type": fields.Str(required=True, dump_to="Type"), + } + + class UpdateUK8SULSConfigRequestSchema(schema.RequestSchema): """UpdateUK8SULSConfig - 更新指定UK8S集群的日志采集规则。""" diff --git a/ucloud/services/uk8s/schemas/models.py b/ucloud/services/uk8s/schemas/models.py index b89897f..1ec308e 100644 --- a/ucloud/services/uk8s/schemas/models.py +++ b/ucloud/services/uk8s/schemas/models.py @@ -3,37 +3,158 @@ from ucloud.core.typesystem import schema, fields -class DiskSetSchema(schema.ResponseSchema): - """DiskSet - 节点磁盘信息""" +class SecGroupIdSchema(schema.ResponseSchema): + """SecGroupId - 安全组""" fields = { - "BackupType": fields.Str(required=False, load_from="BackupType"), - "DiskId": fields.Str(required=False, load_from="DiskId"), - "DiskType": fields.Str(required=False, load_from="DiskType"), - "Drive": fields.Str(required=False, load_from="Drive"), - "Encrypted": fields.Str(required=False, load_from="Encrypted"), - "IOPS": fields.Int(required=False, load_from="IOPS"), - "IsBoot": fields.Str(required=False, load_from="IsBoot"), + "Id": fields.Str(required=False, load_from="Id"), "Name": fields.Str(required=False, load_from="Name"), - "Size": fields.Int(required=False, load_from="Size"), - "Type": fields.Str(required=False, load_from="Type"), + "Priority": fields.Str(required=False, load_from="Priority"), } -class KubeProxySchema(schema.ResponseSchema): - """KubeProxy - KubeProxy信息""" +class EIPSchema(schema.ResponseSchema): + """EIP - 节点EIP""" fields = { - "Mode": fields.Str(required=False, load_from="Mode"), + "Bandwidth": fields.Int(required=False, load_from="Bandwidth"), + "CouponId": fields.Str(required=False, load_from="CouponId"), + "OperatorName": fields.Str(required=False, load_from="OperatorName"), + "PayMode": fields.Str(required=False, load_from="PayMode"), + "ShareBandwidthId": fields.Str( + required=False, load_from="ShareBandwidthId" + ), } -class LoopbackClientCertSchema(schema.ResponseSchema): - """LoopbackClientCert - API Server 回环客户端证书""" +class NetworkInterfaceSchema(schema.ResponseSchema): + """NetworkInterface - 网络接口""" fields = { - "ExpireTime": fields.Int(required=False, load_from="ExpireTime"), - "Warn": fields.Bool(required=False, load_from="Warn"), + "EIP": EIPSchema(), + } + + +class EvictionConditionSchema(schema.ResponseSchema): + """EvictionCondition - 驱逐条件或宽限时间""" + + fields = { + "ImagefsAvailable": fields.Str( + required=False, load_from="ImagefsAvailable" + ), + "MemoryAvailable": fields.Str( + required=False, load_from="MemoryAvailable" + ), + "NodefsAvailable": fields.Str( + required=False, load_from="NodefsAvailable" + ), + "NodefsInodesFree": fields.Str( + required=False, load_from="NodefsInodesFree" + ), + } + + +class ReservedResourceSchema(schema.ResponseSchema): + """ReservedResource - 预留资源""" + + fields = { + "CPU": fields.Str(required=False, load_from="CPU"), + "EphemeralStorage": fields.Str( + required=False, load_from="EphemeralStorage" + ), + "Memory": fields.Str(required=False, load_from="Memory"), + "Pid": fields.Str(required=False, load_from="Pid"), + } + + +class KubeletConfigurationSchema(schema.ResponseSchema): + """KubeletConfiguration - kubelet自定义配置""" + + fields = { + "ContainerLogMaxFiles": fields.Int( + required=False, load_from="ContainerLogMaxFiles" + ), + "ContainerLogMaxSize": fields.Str( + required=False, load_from="ContainerLogMaxSize" + ), + "EvictionHard": EvictionConditionSchema(), + "EvictionSoft": EvictionConditionSchema(), + "EvictionSoftGracePeriod": EvictionConditionSchema(), + "ImageGCHighThresholdPercent": fields.Int( + required=False, load_from="ImageGCHighThresholdPercent" + ), + "ImageGCLowThresholdPercent": fields.Int( + required=False, load_from="ImageGCLowThresholdPercent" + ), + "KubeReserved": ReservedResourceSchema(), + "MaxPods": fields.Int(required=False, load_from="MaxPods"), + "SystemReserved": ReservedResourceSchema(), + } + + +class AutoScalingGroupSchema(schema.ResponseSchema): + """AutoScalingGroup - 自动伸缩组配置""" + + fields = { + "BootDiskSize": fields.Int(required=True, load_from="BootDiskSize"), + "BootDiskType": fields.Str(required=True, load_from="BootDiskType"), + "CPU": fields.Int(required=True, load_from="CPU"), + "ChargeType": fields.Str(required=True, load_from="ChargeType"), + "CreateTime": fields.Int(required=True, load_from="CreateTime"), + "CurrentNodeNum": fields.Int(required=True, load_from="CurrentNodeNum"), + "DataDiskSize": fields.Int(required=True, load_from="DataDiskSize"), + "DataDiskType": fields.Str(required=True, load_from="DataDiskType"), + "GPU": fields.Int(required=True, load_from="GPU"), + "GpuType": fields.Str(required=True, load_from="GpuType"), + "Id": fields.Str(required=True, load_from="Id"), + "ImageId": fields.Str(required=False, load_from="ImageId"), + "InitScript": fields.Str(required=False, load_from="InitScript"), + "IsolationGroup": fields.Str(required=True, load_from="IsolationGroup"), + "KeyPairId": fields.Str(required=False, load_from="KeyPairId"), + "KubeletConfiguration": KubeletConfigurationSchema(), + "Labels": fields.Str(required=True, load_from="Labels"), + "LoginMode": fields.Str(required=False, load_from="LoginMode"), + "MachineType": fields.Str(required=True, load_from="MachineType"), + "Max": fields.Int(required=True, load_from="Max"), + "MaxPods": fields.Int(required=True, load_from="MaxPods"), + "Mem": fields.Int(required=True, load_from="Mem"), + "Min": fields.Int(required=True, load_from="Min"), + "MinimalCpuPlatform": fields.Str( + required=False, load_from="MinimalCpuPlatform" + ), + "MinmalCpuPlatform": fields.Str( + required=True, load_from="MinmalCpuPlatform" + ), + "Name": fields.Str(required=True, load_from="Name"), + "NetworkInterface": fields.List(NetworkInterfaceSchema()), + "NodeBootDiskType": fields.Str( + required=False, load_from="NodeBootDiskType" + ), + "NodeCPU": fields.Int(required=False, load_from="NodeCPU"), + "NodeDataDiskSize": fields.Int( + required=False, load_from="NodeDataDiskSize" + ), + "NodeDataDiskType": fields.Str( + required=False, load_from="NodeDataDiskType" + ), + "NodeGroupId": fields.Str(required=False, load_from="NodeGroupId"), + "NodeMem": fields.Int(required=False, load_from="NodeMem"), + "NodeUHostType": fields.Str(required=False, load_from="NodeUHostType"), + "OsName": fields.Str(required=False, load_from="OsName"), + "Password": fields.Str(required=False, load_from="Password"), + "Priority": fields.Int(required=True, load_from="Priority"), + "SecGroupId": fields.List(SecGroupIdSchema()), + "SecurityGroupId": fields.Str( + required=False, load_from="SecurityGroupId" + ), + "SecurityMode": fields.Str(required=False, load_from="SecurityMode"), + "SubnetId": fields.Str(required=False, load_from="SubnetId"), + "Tag": fields.Str(required=False, load_from="Tag"), + "Taints": fields.Str(required=False, load_from="Taints"), + "UHostFamily": fields.Str(required=True, load_from="UHostFamily"), + "UpdateTime": fields.Int(required=True, load_from="UpdateTime"), + "UserData": fields.Str(required=False, load_from="UserData"), + "Zone": fields.Str(required=True, load_from="Zone"), } @@ -78,13 +199,29 @@ class IPSetSchema(schema.ResponseSchema): } -class SecGroupIdSchema(schema.ResponseSchema): - """SecGroupId - 安全组""" +class DiskSetSchema(schema.ResponseSchema): + """DiskSet - 节点磁盘信息""" fields = { - "Id": fields.Str(required=False, load_from="Id"), + "BackupType": fields.Str(required=False, load_from="BackupType"), + "DiskId": fields.Str(required=False, load_from="DiskId"), + "DiskType": fields.Str(required=False, load_from="DiskType"), + "Drive": fields.Str(required=False, load_from="Drive"), + "Encrypted": fields.Str(required=False, load_from="Encrypted"), + "IOPS": fields.Int(required=False, load_from="IOPS"), + "IsBoot": fields.Str(required=False, load_from="IsBoot"), "Name": fields.Str(required=False, load_from="Name"), - "Priority": fields.Str(required=False, load_from="Priority"), + "Size": fields.Int(required=False, load_from="Size"), + "Type": fields.Str(required=False, load_from="Type"), + } + + +class LoopbackClientCertSchema(schema.ResponseSchema): + """LoopbackClientCert - API Server 回环客户端证书""" + + fields = { + "ExpireTime": fields.Int(required=False, load_from="ExpireTime"), + "Warn": fields.Bool(required=False, load_from="Warn"), } @@ -92,59 +229,401 @@ class UhostInfoSchema(schema.ResponseSchema): """UhostInfo - 机器信息""" fields = { - "BasicImageName": fields.Str(required=True, load_from="BasicImageName"), - "CPU": fields.Int(required=True, load_from="CPU"), - "CreateTime": fields.Int(required=True, load_from="CreateTime"), - "DiskSet": fields.List(DiskSetSchema()), - "ExpireTime": fields.Int(required=True, load_from="ExpireTime"), - "GPU": fields.Int(required=True, load_from="GPU"), - "GpuType": fields.Str(required=True, load_from="GpuType"), - "IPSet": fields.List(IPSetSchema()), - "MachineType": fields.Str(required=True, load_from="MachineType"), - "Memory": fields.Int(required=True, load_from="Memory"), + "BasicImageName": fields.Str(required=True, load_from="BasicImageName"), + "CPU": fields.Int(required=True, load_from="CPU"), + "CreateTime": fields.Int(required=True, load_from="CreateTime"), + "DiskSet": fields.List(DiskSetSchema()), + "ExpireTime": fields.Int(required=True, load_from="ExpireTime"), + "GPU": fields.Int(required=True, load_from="GPU"), + "GpuType": fields.Str(required=True, load_from="GpuType"), + "IPSet": fields.List(IPSetSchema()), + "MachineType": fields.Str(required=True, load_from="MachineType"), + "Memory": fields.Int(required=True, load_from="Memory"), + "Name": fields.Str(required=True, load_from="Name"), + "NodeId": fields.Str(required=True, load_from="NodeId"), + "NodeType": fields.Str(required=True, load_from="NodeType"), + "OsName": fields.Str(required=True, load_from="OsName"), + "OsType": fields.Str(required=True, load_from="OsType"), + "SecGroupId": fields.List(SecGroupIdSchema()), + "State": fields.Str(required=True, load_from="State"), + "TotalDiskSpace": fields.Int(required=True, load_from="TotalDiskSpace"), + "Zone": fields.Str(required=True, load_from="Zone"), + } + + +class KubeProxySchema(schema.ResponseSchema): + """KubeProxy - KubeProxy信息""" + + fields = { + "Mode": fields.Str(required=False, load_from="Mode"), + } + + +class ImageInfoSchema(schema.ResponseSchema): + """ImageInfo - UK8S 可用镜像信息""" + + fields = { + "Features": fields.List(fields.Str()), + "ImageId": fields.Str(required=True, load_from="ImageId"), + "ImageName": fields.Str(required=True, load_from="ImageName"), + "ImageSize": fields.Int(required=False, load_from="ImageSize"), + "IntegratedSoftware": fields.Str( + required=False, load_from="IntegratedSoftware" + ), + "NotSupportGPU": fields.Bool(required=True, load_from="NotSupportGPU"), + "OsName": fields.Str(required=True, load_from="OsName"), + "OsType": fields.Str(required=True, load_from="OsType"), + "SupportedGPUTypes": fields.List(fields.Str()), + "ZoneId": fields.Int(required=True, load_from="ZoneId"), + } + + +class K8SNodeConditionSchema(schema.ResponseSchema): + """K8SNodeCondition - Kubernetes Node Condition""" + + fields = { + "LastProbeTime": fields.Str(required=False, load_from="LastProbeTime"), + "LastTransitionTime": fields.Str( + required=False, load_from="LastTransitionTime" + ), + "Message": fields.Str(required=False, load_from="Message"), + "Reason": fields.Str(required=False, load_from="Reason"), + "Status": fields.Str(required=False, load_from="Status"), + "Type": fields.Str(required=False, load_from="Type"), + } + + +class InstanceTypeCpuPlatformSchema(schema.ResponseSchema): + """InstanceTypeCpuPlatform - 机型 CPU 平台""" + + fields = { + "CpuFrequency": fields.Str(required=False, load_from="CpuFrequency"), + "CpuModels": fields.List(fields.Str()), + "Name": fields.Str(required=False, load_from="Name"), + } + + +class InstanceTypeUHostFamilySchema(schema.ResponseSchema): + """InstanceTypeUHostFamily - 机型规格族""" + + fields = { + "CpuFrequency": fields.Str(required=False, load_from="CpuFrequency"), + "CpuPlatforms": fields.List(InstanceTypeCpuPlatformSchema()), + "Name": fields.Str(required=False, load_from="Name"), + } + + +class InstanceTypeFeatureModeSchema(schema.ResponseSchema): + """InstanceTypeFeatureMode - 机型特性模式""" + + fields = { + "MinimalCpuPlatform": fields.List(fields.Str()), + "Name": fields.Str(required=False, load_from="Name"), + "RelatedToImageFeature": fields.List(fields.Str()), + } + + +class InstanceTypeFeatureSchema(schema.ResponseSchema): + """InstanceTypeFeature - 机型特性""" + + fields = { + "Modes": fields.List(InstanceTypeFeatureModeSchema()), + "Name": fields.Str(required=False, load_from="Name"), + } + + +class InstanceTypeBootDiskSchema(schema.ResponseSchema): + """InstanceTypeBootDisk - 机型系统盘能力""" + + fields = { + "Features": fields.List(fields.Str()), + "InstantResize": fields.Bool(required=False, load_from="InstantResize"), + "MaximalSize": fields.Int(required=False, load_from="MaximalSize"), + "Name": fields.Str(required=False, load_from="Name"), + } + + +class InstanceTypeMachineSizeCollectionSchema(schema.ResponseSchema): + """InstanceTypeMachineSizeCollection - 机型 CPU 与内存组合""" + + fields = { + "Cpu": fields.Int(required=False, load_from="Cpu"), + "Memory": fields.List(fields.Int()), + "MinimalCpuPlatform": fields.List(fields.Str()), + } + + +class InstanceTypeMachineSizeSchema(schema.ResponseSchema): + """InstanceTypeMachineSize - 机型规格组合""" + + fields = { + "Collection": fields.List(InstanceTypeMachineSizeCollectionSchema()), + "Gpu": fields.Int(required=False, load_from="Gpu"), + } + + +class InstanceTypeValueRateSchema(schema.ResponseSchema): + """InstanceTypeValueRate - 机型数值与评分""" + + fields = { + "Rate": fields.Int(required=False, load_from="Rate"), + "Value": fields.Float(required=False, load_from="Value"), + } + + +class InstanceTypeDataDiskSchema(schema.ResponseSchema): + """InstanceTypeDataDisk - 机型数据盘能力""" + + fields = { + "Features": fields.List(fields.Str()), + "MaximalSize": fields.Int(required=False, load_from="MaximalSize"), + "MinimalSize": fields.Int(required=False, load_from="MinimalSize"), + "Name": fields.Str(required=False, load_from="Name"), + } + + +class InstanceTypeDiskSchema(schema.ResponseSchema): + """InstanceTypeDisk - 机型磁盘配置能力""" + + fields = { + "BootDisk": fields.List(InstanceTypeBootDiskSchema()), + "DataDisk": fields.List(InstanceTypeDataDiskSchema()), + "Name": fields.Str(required=False, load_from="Name"), + } + + +class UK8SAvailableInstanceTypeSchema(schema.ResponseSchema): + """UK8SAvailableInstanceType - UK8S 可用机型信息""" + + fields = { + "Description": fields.Str(required=False, load_from="Description"), + "Disks": fields.List(InstanceTypeDiskSchema()), + "Features": fields.List(InstanceTypeFeatureSchema()), + "GraphicsMemory": InstanceTypeValueRateSchema(), + "InstanceType": fields.Str(required=False, load_from="InstanceType"), + "MachineClass": fields.Str(required=False, load_from="MachineClass"), + "MachineSizes": fields.List(InstanceTypeMachineSizeSchema()), + "Name": fields.Str(required=False, load_from="Name"), + "ParentType": fields.Str(required=False, load_from="ParentType"), + "Performance": InstanceTypeValueRateSchema(), + "Status": fields.Str(required=False, load_from="Status"), + "UHostFamilies": fields.List(InstanceTypeUHostFamilySchema()), + "Zone": fields.Str(required=False, load_from="Zone"), + } + + +class NodePluginInfoSchema(schema.ResponseSchema): + """NodePluginInfo - 单个Node节点的插件信息""" + + fields = { + "IP": fields.Str(required=False, load_from="IP"), + "Node": fields.Str(required=True, load_from="Node"), + "OperationResult": fields.Int( + required=False, load_from="OperationResult" + ), + "Status": fields.Int(required=False, load_from="Status"), + "UpdateTime": fields.Int(required=False, load_from="UpdateTime"), + "Version": fields.Str(required=False, load_from="Version"), + } + + +class NodeGroupDiskConfigSchema(schema.ResponseSchema): + """NodeGroupDiskConfig - 节点池磁盘配置""" + + fields = { + "IsBoot": fields.Bool(required=False, load_from="IsBoot"), + "KmsKeyId": fields.Str(required=False, load_from="KmsKeyId"), + "Size": fields.Int(required=False, load_from="Size"), + "Type": fields.Str(required=False, load_from="Type"), + } + + +class NodeGroupSetSchema(schema.ResponseSchema): + """NodeGroupSet - 节点池配置""" + + fields = { + "BootDiskSize": fields.Int(required=False, load_from="BootDiskSize"), + "BootDiskType": fields.Str(required=False, load_from="BootDiskType"), + "CPU": fields.Int(required=False, load_from="CPU"), + "ChargeType": fields.Str(required=False, load_from="ChargeType"), + "CreateTime": fields.Int(required=False, load_from="CreateTime"), + "DataDiskSize": fields.Int(required=False, load_from="DataDiskSize"), + "DataDiskType": fields.Str(required=False, load_from="DataDiskType"), + "Disks": fields.List(DiskSetSchema()), + "GPU": fields.Int(required=False, load_from="GPU"), + "GpuType": fields.Str(required=False, load_from="GpuType"), + "ImageId": fields.Str(required=False, load_from="ImageId"), + "ImageName": fields.Str(required=False, load_from="ImageName"), + "ImageType": fields.Str(required=False, load_from="ImageType"), + "InitScript": fields.Str(required=False, load_from="InitScript"), + "IsolationGroupId": fields.Str( + required=False, load_from="IsolationGroupId" + ), + "KubeletConfiguration": KubeletConfigurationSchema(), + "Labels": fields.Str(required=False, load_from="Labels"), + "MachineType": fields.Str(required=False, load_from="MachineType"), + "MaxPods": fields.Int(required=False, load_from="MaxPods"), + "Mem": fields.Int(required=False, load_from="Mem"), + "MinimalCpuPlatform": fields.Str( + required=False, load_from="MinimalCpuPlatform" + ), + "NetCapability": fields.Str(required=False, load_from="NetCapability"), + "NetworkInterface": fields.List(NetworkInterfaceSchema()), + "NodeGroupId": fields.Str(required=False, load_from="NodeGroupId"), + "NodeGroupName": fields.Str(required=False, load_from="NodeGroupName"), + "NodeList": fields.List(fields.Str()), + "NodeNamePrefix": fields.Str( + required=False, load_from="NodeNamePrefix" + ), + "OsName": fields.Str(required=False, load_from="OsName"), + "OsType": fields.Str(required=False, load_from="OsType"), + "RelatedAsg": fields.List(fields.Str()), + "SecGroupId": fields.List(SecGroupIdSchema()), + "SecurityGroupId": fields.Str( + required=False, load_from="SecurityGroupId" + ), + "SecurityMode": fields.Str(required=False, load_from="SecurityMode"), + "SubnetId": fields.Str(required=False, load_from="SubnetId"), + "Tag": fields.Str(required=False, load_from="Tag"), + "Taints": fields.Str(required=False, load_from="Taints"), + "UHostFamily": fields.Str(required=False, load_from="UHostFamily"), + "UNIFeature": fields.Bool(required=False, load_from="UNIFeature"), + "UpdateTime": fields.Int(required=False, load_from="UpdateTime"), + "UserData": fields.Str(required=False, load_from="UserData"), + "Zone": fields.Str(required=False, load_from="Zone"), + } + + +class CloudProviderInfoSchema(schema.ResponseSchema): + """CloudProviderInfo - CloudProvider 插件版本与状态""" + + fields = { + "AvailableVersion": fields.Str( + required=False, load_from="AvailableVersion" + ), + "ManageEnabled": fields.Bool(required=False, load_from="ManageEnabled"), + "Name": fields.Str(required=False, load_from="Name"), + "OperationResult": fields.Int( + required=False, load_from="OperationResult" + ), + "ReleaseTime": fields.Str(required=False, load_from="ReleaseTime"), + "Status": fields.Int(required=False, load_from="Status"), + "UpdateTime": fields.Int(required=False, load_from="UpdateTime"), + "Version": fields.Str(required=False, load_from="Version"), + } + + +class ClusterUpdateNodeInfoSchema(schema.ResponseSchema): + """ClusterUpdateNodeInfo - 集群升级时单个Node节点的状态等信息""" + + fields = { + "IP": fields.Str(required=False, load_from="IP"), + "Node": fields.Str(required=True, load_from="Node"), + "OperationResult": fields.Int( + required=False, load_from="OperationResult" + ), + "Role": fields.Str(required=False, load_from="Role"), + "Status": fields.Int(required=False, load_from="Status"), + "UpdateTime": fields.Int(required=False, load_from="UpdateTime"), + "Version": fields.Str(required=False, load_from="Version"), + } + + +class ClusterUpgradeInfoSchema(schema.ResponseSchema): + """ClusterUpgradeInfo - UK8S 集群升级状态信息""" + + fields = { + "AvailableVersions": fields.List(fields.Str()), + "NodeInfoSet": fields.List(ClusterUpdateNodeInfoSchema()), + "Stage": fields.Str(required=False, load_from="Stage"), + "TargetVersion": fields.Str(required=False, load_from="TargetVersion"), + "UpdateTime": fields.Int(required=False, load_from="UpdateTime"), + "Version": fields.Str(required=False, load_from="Version"), + } + + +class RuntimeConvertInfoSchema(schema.ResponseSchema): + """RuntimeConvertInfo - 集群Runtime转换信息""" + + fields = { + "NodeInfoSet": fields.List(NodePluginInfoSchema()), + "RuntimeName": fields.Str(required=False, load_from="RuntimeName"), + "RuntimeVersion": fields.Str( + required=False, load_from="RuntimeVersion" + ), + "Stage": fields.Str(required=False, load_from="Stage"), + "UpdateTime": fields.Int(required=False, load_from="UpdateTime"), + } + + +class VKNodeInfoSchema(schema.ResponseSchema): + """VKNodeInfo - 单个虚拟节点插件信息""" + + fields = { + "Node": fields.Str(required=False, load_from="Node"), + "OperationResult": fields.Int( + required=False, load_from="OperationResult" + ), + "Status": fields.Int(required=False, load_from="Status"), + "UpdateTime": fields.Int(required=False, load_from="UpdateTime"), + "Version": fields.Str(required=False, load_from="Version"), + } + + +class MonitorInfoSchema(schema.ResponseSchema): + """MonitorInfo - 监控插件信息""" + + fields = { + "AvailableVersion": fields.Str( + required=False, load_from="AvailableVersion" + ), + } + + +class VKNodeSchema(schema.ResponseSchema): + """VKNode - 虚拟节点插件信息""" + + fields = { + "AvailableVersion": fields.Str( + required=False, load_from="AvailableVersion" + ), + "ManageEnabled": fields.Bool(required=False, load_from="ManageEnabled"), "Name": fields.Str(required=True, load_from="Name"), - "NodeId": fields.Str(required=True, load_from="NodeId"), - "NodeType": fields.Str(required=True, load_from="NodeType"), - "OsName": fields.Str(required=True, load_from="OsName"), - "OsType": fields.Str(required=True, load_from="OsType"), - "SecGroupId": fields.List(SecGroupIdSchema()), - "State": fields.Str(required=True, load_from="State"), - "TotalDiskSpace": fields.Int(required=True, load_from="TotalDiskSpace"), - "Zone": fields.Str(required=True, load_from="Zone"), + "PluginInfoSet": fields.List(VKNodeInfoSchema()), + "ReleaseTime": fields.Str(required=False, load_from="ReleaseTime"), } -class ImageInfoSchema(schema.ResponseSchema): - """ImageInfo - UK8S 可用镜像信息""" +class CSIInfoSchema(schema.ResponseSchema): + """CSIInfo - CSI 插件版本与状态""" fields = { - "Features": fields.List(fields.Str()), - "ImageId": fields.Str(required=True, load_from="ImageId"), - "ImageName": fields.Str(required=True, load_from="ImageName"), - "ImageSize": fields.Int(required=False, load_from="ImageSize"), - "IntegratedSoftware": fields.Str( - required=False, load_from="IntegratedSoftware" + "AvailableVersion": fields.Str( + required=False, load_from="AvailableVersion" ), - "NotSupportGPU": fields.Bool(required=True, load_from="NotSupportGPU"), - "OsName": fields.Str(required=True, load_from="OsName"), - "OsType": fields.Str(required=True, load_from="OsType"), - "SupportedGPUTypes": fields.List(fields.Str()), - "ZoneId": fields.Int(required=True, load_from="ZoneId"), + "ManageEnabled": fields.Bool(required=False, load_from="ManageEnabled"), + "Name": fields.Str(required=False, load_from="Name"), + "OperationResult": fields.Int( + required=False, load_from="OperationResult" + ), + "ReleaseTime": fields.Str(required=False, load_from="ReleaseTime"), + "Status": fields.Int(required=False, load_from="Status"), + "UpdateTime": fields.Int(required=False, load_from="UpdateTime"), + "Version": fields.Str(required=False, load_from="Version"), } -class K8SNodeConditionSchema(schema.ResponseSchema): - """K8SNodeCondition - Kubernetes Node Condition""" +class NodePluginSchema(schema.ResponseSchema): + """NodePlugin - 节点类插件信息""" fields = { - "LastProbeTime": fields.Str(required=False, load_from="LastProbeTime"), - "LastTransitionTime": fields.Str( - required=False, load_from="LastTransitionTime" + "AvailableVersion": fields.Str( + required=False, load_from="AvailableVersion" ), - "Message": fields.Str(required=False, load_from="Message"), - "Reason": fields.Str(required=False, load_from="Reason"), - "Status": fields.Str(required=False, load_from="Status"), - "Type": fields.Str(required=False, load_from="Type"), + "ManageEnabled": fields.Bool(required=False, load_from="ManageEnabled"), + "Name": fields.Str(required=True, load_from="Name"), + "PluginInfoSet": fields.List(NodePluginInfoSchema()), + "ReleaseTime": fields.Str(required=False, load_from="ReleaseTime"), } @@ -267,147 +746,70 @@ class ClusterSetSchema(schema.ResponseSchema): } -class EvictionConditionSchema(schema.ResponseSchema): - """EvictionCondition - 驱逐条件或宽限时间""" - - fields = { - "ImagefsAvailable": fields.Str( - required=False, load_from="ImagefsAvailable" - ), - "MemoryAvailable": fields.Str( - required=False, load_from="MemoryAvailable" - ), - "NodefsAvailable": fields.Str( - required=False, load_from="NodefsAvailable" - ), - "NodefsInodesFree": fields.Str( - required=False, load_from="NodefsInodesFree" - ), - } - - -class ReservedResourceSchema(schema.ResponseSchema): - """ReservedResource - 预留资源""" - - fields = { - "CPU": fields.Str(required=False, load_from="CPU"), - "EphemeralStorage": fields.Str( - required=False, load_from="EphemeralStorage" - ), - "Memory": fields.Str(required=False, load_from="Memory"), - "Pid": fields.Str(required=False, load_from="Pid"), - } - - -class EIPSchema(schema.ResponseSchema): - """EIP - 节点EIP""" +class ULSInputMetadataSchema(schema.ResponseSchema): + """ULSInputMetadata - ULSInputMetadata""" fields = { - "Bandwidth": fields.Int(required=False, load_from="Bandwidth"), - "CouponId": fields.Str(required=False, load_from="CouponId"), - "OperatorName": fields.Str(required=False, load_from="OperatorName"), - "PayMode": fields.Str(required=False, load_from="PayMode"), - "ShareBandwidthId": fields.Str( - required=False, load_from="ShareBandwidthId" - ), + "Container": fields.Str(required=False, load_from="Container"), + "Labels": fields.Str(required=False, load_from="Labels"), } -class NetworkInterfaceSchema(schema.ResponseSchema): - """NetworkInterface - 网络接口""" +class ULSWorkloadMatchSchema(schema.ResponseSchema): + """ULSWorkloadMatch - ULSWorkloadMatch""" fields = { - "EIP": EIPSchema(), + "Name": fields.Str(required=False, load_from="Name"), + "Namespace": fields.Str(required=False, load_from="Namespace"), + "Type": fields.Str(required=False, load_from="Type"), } -class KubeletConfigurationSchema(schema.ResponseSchema): - """KubeletConfiguration - kubelet自定义配置""" +class ULSExtractRuleSchema(schema.ResponseSchema): + """ULSExtractRule - 定义日志的提取、解析和格式化规则。""" fields = { - "ContainerLogMaxFiles": fields.Int( - required=False, load_from="ContainerLogMaxFiles" + "BeginningRegex": fields.Str( + required=False, load_from="BeginningRegex" ), - "ContainerLogMaxSize": fields.Str( - required=False, load_from="ContainerLogMaxSize" + "BeginningRegexBase64": fields.Str( + required=False, load_from="BeginningRegexBase64" ), - "EvictionHard": EvictionConditionSchema(), - "EvictionSoft": EvictionConditionSchema(), - "EvictionSoftGracePeriod": EvictionConditionSchema(), - "ImageGCHighThresholdPercent": fields.Int( - required=False, load_from="ImageGCHighThresholdPercent" + "CollectPolicy": fields.Str(required=False, load_from="CollectPolicy"), + "Delimiter": fields.Str(required=False, load_from="Delimiter"), + "DelimiterBase64": fields.Str( + required=False, load_from="DelimiterBase64" ), - "ImageGCLowThresholdPercent": fields.Int( - required=False, load_from="ImageGCLowThresholdPercent" + "Encode": fields.Str(required=False, load_from="Encode"), + "Keys": fields.List(fields.Str()), + "LogRegex": fields.Str(required=False, load_from="LogRegex"), + "LogRegexBase64": fields.Str( + required=False, load_from="LogRegexBase64" ), - "KubeReserved": ReservedResourceSchema(), - "MaxPods": fields.Int(required=False, load_from="MaxPods"), - "SystemReserved": ReservedResourceSchema(), + "LogType": fields.Str(required=False, load_from="LogType"), + "TimeFormat": fields.Str(required=False, load_from="TimeFormat"), + "TimeKey": fields.Str(required=False, load_from="TimeKey"), + "UnMatchKey": fields.Str(required=False, load_from="UnMatchKey"), + "UnMatchUpload": fields.Str(required=False, load_from="UnMatchUpload"), } -class NodeGroupSetSchema(schema.ResponseSchema): - """NodeGroupSet - 节点池配置""" +class ULSFilePathsSchema(schema.ResponseSchema): + """ULSFilePaths - ULS采集文件路径""" fields = { - "BootDiskSize": fields.Int(required=False, load_from="BootDiskSize"), - "BootDiskType": fields.Str(required=False, load_from="BootDiskType"), - "CPU": fields.Int(required=False, load_from="CPU"), - "ChargeType": fields.Str(required=False, load_from="ChargeType"), - "CreateTime": fields.Int(required=False, load_from="CreateTime"), - "DataDiskSize": fields.Int(required=False, load_from="DataDiskSize"), - "DataDiskType": fields.Str(required=False, load_from="DataDiskType"), - "Disks": fields.List(DiskSetSchema()), - "GPU": fields.Int(required=False, load_from="GPU"), - "GpuType": fields.Str(required=False, load_from="GpuType"), - "ImageId": fields.Str(required=False, load_from="ImageId"), - "ImageName": fields.Str(required=False, load_from="ImageName"), - "ImageType": fields.Str(required=False, load_from="ImageType"), - "InitScript": fields.Str(required=False, load_from="InitScript"), - "IsolationGroupId": fields.Str( - required=False, load_from="IsolationGroupId" - ), - "KubeletConfiguration": KubeletConfigurationSchema(), - "Labels": fields.Str(required=False, load_from="Labels"), - "MachineType": fields.Str(required=False, load_from="MachineType"), - "MaxPods": fields.Int(required=False, load_from="MaxPods"), - "Mem": fields.Int(required=False, load_from="Mem"), - "MinimalCpuPlatform": fields.Str( - required=False, load_from="MinimalCpuPlatform" - ), - "NetCapability": fields.Str(required=False, load_from="NetCapability"), - "NetworkInterface": fields.List(NetworkInterfaceSchema()), - "NodeGroupId": fields.Str(required=False, load_from="NodeGroupId"), - "NodeGroupName": fields.Str(required=False, load_from="NodeGroupName"), - "NodeList": fields.List(fields.Str()), - "NodeNamePrefix": fields.Str( - required=False, load_from="NodeNamePrefix" - ), - "OsName": fields.Str(required=False, load_from="OsName"), - "OsType": fields.Str(required=False, load_from="OsType"), - "RelatedAsg": fields.List(fields.Str()), - "SecGroupId": fields.List(SecGroupIdSchema()), - "SecurityGroupId": fields.Str( - required=False, load_from="SecurityGroupId" - ), - "SecurityMode": fields.Str(required=False, load_from="SecurityMode"), - "SubnetId": fields.Str(required=False, load_from="SubnetId"), - "Tag": fields.Str(required=False, load_from="Tag"), - "Taints": fields.Str(required=False, load_from="Taints"), - "UHostFamily": fields.Str(required=False, load_from="UHostFamily"), - "UNIFeature": fields.Bool(required=False, load_from="UNIFeature"), - "UpdateTime": fields.Int(required=False, load_from="UpdateTime"), - "UserData": fields.Str(required=False, load_from="UserData"), - "Zone": fields.Str(required=False, load_from="Zone"), + "File": fields.Str(required=False, load_from="File"), + "Path": fields.Str(required=False, load_from="Path"), } -class ULSWorkloadMatchSchema(schema.ResponseSchema): - """ULSWorkloadMatch - ULSWorkloadMatch""" +class ULSInputDetailSchema(schema.ResponseSchema): + """ULSInputDetail - 定义日志的输入来源,例如容器文件或容器标准输出。""" fields = { - "Name": fields.Str(required=False, load_from="Name"), - "Namespace": fields.Str(required=False, load_from="Namespace"), + "FilePaths": fields.List(ULSFilePathsSchema()), + "InputMetadata": ULSInputMetadataSchema(), + "Stream": fields.Str(required=False, load_from="Stream"), "Type": fields.Str(required=False, load_from="Type"), } @@ -447,64 +849,6 @@ class ULSMatchRuleSchema(schema.ResponseSchema): } -class ULSFilePathsSchema(schema.ResponseSchema): - """ULSFilePaths - ULS采集文件路径""" - - fields = { - "File": fields.Str(required=False, load_from="File"), - "Path": fields.Str(required=False, load_from="Path"), - } - - -class ULSInputMetadataSchema(schema.ResponseSchema): - """ULSInputMetadata - ULSInputMetadata""" - - fields = { - "Container": fields.Str(required=False, load_from="Container"), - "Labels": fields.Str(required=False, load_from="Labels"), - } - - -class ULSInputDetailSchema(schema.ResponseSchema): - """ULSInputDetail - 定义日志的输入来源,例如容器文件或容器标准输出。""" - - fields = { - "FilePaths": fields.List(ULSFilePathsSchema()), - "InputMetadata": ULSInputMetadataSchema(), - "Stream": fields.Str(required=False, load_from="Stream"), - "Type": fields.Str(required=False, load_from="Type"), - } - - -class ULSExtractRuleSchema(schema.ResponseSchema): - """ULSExtractRule - 定义日志的提取、解析和格式化规则。""" - - fields = { - "BeginningRegex": fields.Str( - required=False, load_from="BeginningRegex" - ), - "BeginningRegexBase64": fields.Str( - required=False, load_from="BeginningRegexBase64" - ), - "CollectPolicy": fields.Str(required=False, load_from="CollectPolicy"), - "Delimiter": fields.Str(required=False, load_from="Delimiter"), - "DelimiterBase64": fields.Str( - required=False, load_from="DelimiterBase64" - ), - "Encode": fields.Str(required=False, load_from="Encode"), - "Keys": fields.List(fields.Str()), - "LogRegex": fields.Str(required=False, load_from="LogRegex"), - "LogRegexBase64": fields.Str( - required=False, load_from="LogRegexBase64" - ), - "LogType": fields.Str(required=False, load_from="LogType"), - "TimeFormat": fields.Str(required=False, load_from="TimeFormat"), - "TimeKey": fields.Str(required=False, load_from="TimeKey"), - "UnMatchKey": fields.Str(required=False, load_from="UnMatchKey"), - "UnMatchUpload": fields.Str(required=False, load_from="UnMatchUpload"), - } - - class ULSLogConfigSchema(schema.ResponseSchema): """ULSLogConfig - ULSLogConfig""" diff --git a/ucloud/version.py b/ucloud/version.py index 36de724..177a794 100644 --- a/ucloud/version.py +++ b/ucloud/version.py @@ -1 +1 @@ -version = "0.11.145" +version = "0.11.146"