華為云計算 云知識 更新EIPPoolpatchCrdYangtseCniV1NamespacedEIPPool
更新EIPPoolpatchCrdYangtseCniV1NamespacedEIPPool

 

功能介紹

更新EIPPool。

調(diào)用方法

請參見如何調(diào)用API

URI

PATCH /apis/crd.yangtse.cni/v1/namespaces/{namespace}/eippools/{name}

表1 路徑參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

name

String

name of the EIPPool

namespace

String

object name and auth scope, such as for teams and projects

表2 Query參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

dryRun

String

When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed

fieldManager

String

fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.

pretty

String

If 'true', then the output is pretty printed.

請求參數(shù)

表3 請求Header參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

X-Auth-Token

String

用戶Token。

通過調(diào)用 IAM 服務獲取用戶Token接口獲取(響應消息頭中X-Subject-Token的值)。

Content-Type

String

目前支持三種類型的PATCH請求方法的操作,參考《使用JSON合并patch更新Deployment》。

  1. Json Patch, Content-Type: application/json-patch+json 在RFC6902協(xié)議的定義中,Json Patch包含一系列對目標JSON對象的操作,其本身也為JSON對象。服務器接收到該對象后,會將其表示的操作應用于目標JSON對象。

  2. Merge Patch, Content-Type: application/merge-patch+json 在RFC7386協(xié)議的定義中,Merge Patch必須包含對一個資源對象的部分描述,即為JSON對象。該JSON對象被提交到服務端后與服務端的當前對象合并,即替換當前資源對象中的列表域,從而創(chuàng)建一個新的對象。

  3. Strategic Merge Patch, Content-Type: application/strategic-merge-patch+json Strategic Merge Patch是添加合法的元數(shù)據(jù)到API對象中,并通過這些新的元數(shù)據(jù)來決定哪個列表被合并,哪個列表不該被合并。當前這些元數(shù)據(jù)則作為結(jié)構(gòu)標簽。

表4 請求Body參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

-

Object

Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.

響應參數(shù)

狀態(tài)碼: 200

表5 響應Body參數(shù)

參數(shù)

參數(shù)類型

描述

apiVersion

String

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kind

String

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta object

Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

spec object

Specification of the EIPPool.

status

status object

Status of the EIPPool.

表6 io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta

參數(shù)

參數(shù)類型

annotations

Map<String,String>

clusterName

String

creationTimestamp

String

deletionGracePeriodSeconds

Long

deletionTimestamp

String

finalizers

Array of strings

generateName

String

generation

Long

labels

Map<String,String>

managedFields

Array of io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry objects

name

String

namespace

String

ownerReferences

Array of io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference objects

resourceVersion

String

selfLink

String

uid

String

表7 io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry

參數(shù)

參數(shù)類型

描述

apiVersion

String

APIVersion defines the version of this resource that this field set applies to. The format is "group/version" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.

fieldsType

String

FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1"

fieldsV1

Object

FieldsV1 holds the first JSON version format as described in the "FieldsV1" type.

manager

String

Manager is an identifier of the workflow managing these fields.

operation

String

Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.

time

String

Time is timestamp of when these fields were set. It should always be empty if Operation is 'Apply'

表8 io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference

參數(shù)

參數(shù)類型

描述

apiVersion

String

API version of the referent.

blockOwnerDeletion

Boolean

If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

controller

Boolean

If true, this reference points to the managing controller.

kind

String

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

name

String

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

uid

String

UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

表9 spec

參數(shù)

參數(shù)類型

描述

amount

Integer

Amount is the amount of eips need to be create.

最小值:0

最大值:500

eipAttributes

cni.yangtse.crd.v1.EIPAttributes object

Attributes is the eip attributes which used to create eip.

eips

Array of strings

EIPs used to generate EIP resources.

表10 cni.yangtse.crd.v1.EIPAttributes

參數(shù)

參數(shù)類型

描述

alias

String

Alias of PublicIP

bandwidth

cni.yangtse.crd.v1.EIPBandwidth object

Bandwidth create attributes

ipVersion

Integer

IP Version of PublicIP

枚舉值:

  • 4

  • 6

networkType

String

Network Type of PublicIP

表11 cni.yangtse.crd.v1.EIPBandwidth

參數(shù)

參數(shù)類型

描述

chargeMode

String

Bandwidth Charge Mode

枚舉值:

  • bandwidth

  • traffic

id

String

Bandwidth id, only useful for WHOLE bandwidth share type

name

String

Bandwidth name, only useful for PER bandwidth share type

最小長度:1

最大長度:64

shareType

String

Bandwidth Share Type

枚舉值:

  • PER

  • WHOLE

size

Integer

Bandwidth size

最小值:0

最大值:200000

表12 status

參數(shù)

參數(shù)類型

描述

associates

Map<String,cni.yangtse.crd.v1.EIPAssociate>

eip associate infos.

eips

Array of eips objects

EIPs is a set of generated EIP resources.

usage

String

Usage is usage of eip in this pool, e.g. 2/10.

表13 cni.yangtse.crd.v1.EIPAssociate

參數(shù)

參數(shù)類型

描述

attachment

attachment object

Attachment is the eip attachment info.

privateIP

privateIP object

PrivateIP is private ip information

表14 attachment

參數(shù)

參數(shù)類型

描述

freeTimestamp

String

Timestamp of NeutronPort be to FixedPreBound or FixedUnBound phase

neutronPortName

String

NeutronPortName is NeutronPort name which associated.

neutronPortNamespace

String

NeutronPortNamespace is NeutronPort namespace which associated.

nodeName

String

NodeName is node name where the NeutronPort resides, must with phase Bound, PreBound or FixedBound.

podName

String

Pod name

podNamespace

String

Pod Namespace

表15 privateIP

參數(shù)

參數(shù)類型

描述

id

String

Port ID or EIP ID

ipv4

String

IPv4 is the IPv4 address for traffic from the eni.

ipv6

String

IPv6 is the IPv6 address for traffic from the eni.

mac

String

MAC is the MAC address of the endpoint interface.

status

String

Status of this IP

表16 eips

參數(shù)

參數(shù)類型

描述

alias

String

Alias of the PublicIP

associateInstanceID

String

Associate instance id

associateInstanceType

String

Associate instance type

bandWidthChargeMode

String

Bandwidth charge mode of the PublicIP

bandwidthShareType

String

Bandwidth share type of the PublicIP

bandwidthSize

Integer

Bandwidth size of the PublicIP

id

String

The ID of the PublicIP

ipv4

String

The ipv4 address of the PublicIP

ipv6

String

The ipv6 address of the PublicIP

networkType

String

Network Type of PublicIP

status

String

PublicIP status

請求示例

更新EIPPool中的labels值為"some-key":"some-value"。

{
  "metadata" : {
    "labels" : {
      "some-key" : "some-value"
    }
  }
}

響應示例

狀態(tài)碼: 200

OK

{
  "apiVersion" : "crd.yangtse.cni/v1",
  "kind" : "EIPPool",
  "metadata" : {
    "creationTimestamp" : "2022-09-07T01:22:50Z",
    "finalizers" : [ "yangtse.io/eip-pool" ],
    "generation" : 1,
    "labels" : {
      "some-key" : "some-value"
    },
    "name" : "eippool-test",
    "namespace" : "namespace-test",
    "resourceVersion" : "42396258",
    "selfLink" : "/apis/crd.yangtse.cni/v1/namespaces/namespace-test/eippools/eippool-test",
    "uid" : "e4dc5432-1d9b-4fcb-8840-ee445b6511ae"
  },
  "spec" : {
    "amount" : 1,
    "eipAttributes" : {
      "bandwidth" : {
        "chargeMode" : "bandwidth",
        "name" : "eip-test",
        "shareType" : "PER",
        "size" : 5
      },
      "ipVersion" : 4,
      "networkType" : "5_g-vm"
    }
  },
  "status" : {
    "eips" : [ {
      "alias" : "eip-test",
      "bandWidthChargeMode" : "bandwidth",
      "bandwidthShareType" : "PER",
      "bandwidthSize" : 5,
      "id" : "034a0bae-81f7-46f4-b933-3273adc32b54",
      "ipv4" : "100.85.221.2",
      "networkType" : "5_g-vm",
      "status" : "DOWN"
    } ],
    "usage" : "0/1"
  }
}

狀態(tài)碼

狀態(tài)碼

描述

200

OK

400

BadRequest

401

Unauthorized

403

Forbidden

404

NotFound

405

MethodNotAllowed

406

NotAcceptable

409

Conflict

415

UnsupportedMediaType

422

Invalid

429

TooManyRequests

500

InternalError

503

ServiceUnavailable

504

ServerTimeout