Add VolumesAttached field to Node Status API

This commit is contained in:
saadali 2016-06-16 13:41:43 -07:00
parent a055c4e80f
commit e3e919ca20
12 changed files with 1375 additions and 218 deletions

View File

@ -16768,6 +16768,13 @@
"$ref": "v1.UniqueVolumeName"
},
"description": "List of attachable volumes in use (mounted) by the node."
},
"volumesAttached": {
"type": "array",
"items": {
"$ref": "v1.AttachedVolume"
},
"description": "List of volumes that are attached to the node."
}
}
},
@ -16930,6 +16937,24 @@
"id": "v1.UniqueVolumeName",
"properties": {}
},
"v1.AttachedVolume": {
"id": "v1.AttachedVolume",
"description": "AttachedVolume describes a volume attached to a node",
"required": [
"name",
"devicePath"
],
"properties": {
"name": {
"type": "string",
"description": "Name of the attached volume"
},
"devicePath": {
"type": "string",
"description": "DevicePath represents the device path where the volume should be avilable"
}
}
},
"v1.PersistentVolumeClaimList": {
"id": "v1.PersistentVolumeClaimList",
"description": "PersistentVolumeClaimList is a list of PersistentVolumeClaim items.",

View File

@ -2265,6 +2265,61 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<div class="paragraph">
<p>Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.</p>
</div>
</div>
<div class="sect2">
<h3 id="_v1_namespacelist">v1.NamespaceList</h3>
<div class="paragraph">
<p>NamespaceList is a list of Namespaces.</p>
</div>
<table class="tableblock frame-all grid-all" style="width:100%; ">
<colgroup>
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Required</th>
<th class="tableblock halign-left valign-top">Schema</th>
<th class="tableblock halign-left valign-top">Default</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">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: <a href="http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">apiVersion</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">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: <a href="http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources">http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">metadata</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Standard list metadata. More info: <a href="http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_unversioned_listmeta">unversioned.ListMeta</a></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">items</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Items is the list of Namespace objects in the list. More info: <a href="http://releases.k8s.io/HEAD/docs/user-guide/namespaces.md">http://releases.k8s.io/HEAD/docs/user-guide/namespaces.md</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_namespace">v1.Namespace</a> array</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="_v1_persistentvolumeclaim">v1.PersistentVolumeClaim</h3>
@ -2327,61 +2382,6 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="_v1_namespacelist">v1.NamespaceList</h3>
<div class="paragraph">
<p>NamespaceList is a list of Namespaces.</p>
</div>
<table class="tableblock frame-all grid-all" style="width:100%; ">
<colgroup>
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Required</th>
<th class="tableblock halign-left valign-top">Schema</th>
<th class="tableblock halign-left valign-top">Default</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">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: <a href="http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">apiVersion</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">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: <a href="http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources">http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">metadata</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Standard list metadata. More info: <a href="http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_unversioned_listmeta">unversioned.ListMeta</a></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">items</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Items is the list of Namespace objects in the list. More info: <a href="http://releases.k8s.io/HEAD/docs/user-guide/namespaces.md">http://releases.k8s.io/HEAD/docs/user-guide/namespaces.md</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_namespace">v1.Namespace</a> array</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="_v1_serviceaccount">v1.ServiceAccount</h3>
@ -4762,6 +4762,13 @@ The resulting set of endpoints can be viewed as:<br>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_uniquevolumename">v1.UniqueVolumeName</a> array</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">volumesAttached</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">List of volumes that are attached to the node.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_attachedvolume">v1.AttachedVolume</a> array</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table>
@ -4813,6 +4820,47 @@ The resulting set of endpoints can be viewed as:<br>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="_v1_attachedvolume">v1.AttachedVolume</h3>
<div class="paragraph">
<p>AttachedVolume describes a volume attached to a node</p>
</div>
<table class="tableblock frame-all grid-all" style="width:100%; ">
<colgroup>
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Required</th>
<th class="tableblock halign-left valign-top">Schema</th>
<th class="tableblock halign-left valign-top">Default</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the attached volume</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">devicePath</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">DevicePath represents the device path where the volume should be avilable</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="_v1_eventsource">v1.EventSource</h3>
@ -8105,7 +8153,7 @@ The resulting set of endpoints can be viewed as:<br>
</div>
<div id="footer">
<div id="footer-text">
Last updated 2016-06-08 04:10:38 UTC
Last updated 2016-06-16 20:52:03 UTC
</div>
</div>
</body>

View File

@ -35,6 +35,7 @@ func init() {
if err := Scheme.AddGeneratedDeepCopyFuncs(
DeepCopy_api_AWSElasticBlockStoreVolumeSource,
DeepCopy_api_Affinity,
DeepCopy_api_AttachedVolume,
DeepCopy_api_AzureFileVolumeSource,
DeepCopy_api_Binding,
DeepCopy_api_Capabilities,
@ -228,6 +229,12 @@ func DeepCopy_api_Affinity(in Affinity, out *Affinity, c *conversion.Cloner) err
return nil
}
func DeepCopy_api_AttachedVolume(in AttachedVolume, out *AttachedVolume, c *conversion.Cloner) error {
out.Name = in.Name
out.DevicePath = in.DevicePath
return nil
}
func DeepCopy_api_AzureFileVolumeSource(in AzureFileVolumeSource, out *AzureFileVolumeSource, c *conversion.Cloner) error {
out.SecretName = in.SecretName
out.ShareName = in.ShareName
@ -1610,6 +1617,17 @@ func DeepCopy_api_NodeStatus(in NodeStatus, out *NodeStatus, c *conversion.Clone
} else {
out.VolumesInUse = nil
}
if in.VolumesAttached != nil {
in, out := in.VolumesAttached, &out.VolumesAttached
*out = make([]AttachedVolume, len(in))
for i := range in {
if err := DeepCopy_api_AttachedVolume(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.VolumesAttached = nil
}
return nil
}

View File

@ -36525,7 +36525,7 @@ func (x *NodeStatus) CodecEncodeSelf(e *codec1978.Encoder) {
} else {
yysep2 := !z.EncBinary()
yy2arr2 := z.EncBasicHandle().StructToArray
var yyq2 [9]bool
var yyq2 [10]bool
_, _, _ = yysep2, yyq2, yy2arr2
const yyr2 bool = false
yyq2[0] = len(x.Capacity) != 0
@ -36537,9 +36537,10 @@ func (x *NodeStatus) CodecEncodeSelf(e *codec1978.Encoder) {
yyq2[6] = true
yyq2[7] = len(x.Images) != 0
yyq2[8] = len(x.VolumesInUse) != 0
yyq2[9] = len(x.VolumesAttached) != 0
var yynn2 int
if yyr2 || yy2arr2 {
r.EncodeArrayStart(9)
r.EncodeArrayStart(10)
} else {
yynn2 = 0
for _, b := range yyq2 {
@ -36777,6 +36778,39 @@ func (x *NodeStatus) CodecEncodeSelf(e *codec1978.Encoder) {
}
}
}
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq2[9] {
if x.VolumesAttached == nil {
r.EncodeNil()
} else {
yym35 := z.EncBinary()
_ = yym35
if false {
} else {
h.encSliceAttachedVolume(([]AttachedVolume)(x.VolumesAttached), e)
}
}
} else {
r.EncodeNil()
}
} else {
if yyq2[9] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("volumesAttached"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
if x.VolumesAttached == nil {
r.EncodeNil()
} else {
yym36 := z.EncBinary()
_ = yym36
if false {
} else {
h.encSliceAttachedVolume(([]AttachedVolume)(x.VolumesAttached), e)
}
}
}
}
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
} else {
@ -36920,6 +36954,18 @@ func (x *NodeStatus) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
h.decSliceUniqueVolumeName((*[]UniqueVolumeName)(yyv15), d)
}
}
case "volumesAttached":
if r.TryDecodeAsNil() {
x.VolumesAttached = nil
} else {
yyv17 := &x.VolumesAttached
yym18 := z.DecBinary()
_ = yym18
if false {
} else {
h.decSliceAttachedVolume((*[]AttachedVolume)(yyv17), d)
}
}
default:
z.DecStructFieldNotFound(-1, yys3)
} // end switch yys3
@ -36931,16 +36977,16 @@ func (x *NodeStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yyj17 int
var yyb17 bool
var yyhl17 bool = l >= 0
yyj17++
if yyhl17 {
yyb17 = yyj17 > l
var yyj19 int
var yyb19 bool
var yyhl19 bool = l >= 0
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb17 = r.CheckBreak()
yyb19 = r.CheckBreak()
}
if yyb17 {
if yyb19 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -36948,16 +36994,16 @@ func (x *NodeStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Capacity = nil
} else {
yyv18 := &x.Capacity
yyv18.CodecDecodeSelf(d)
yyv20 := &x.Capacity
yyv20.CodecDecodeSelf(d)
}
yyj17++
if yyhl17 {
yyb17 = yyj17 > l
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb17 = r.CheckBreak()
yyb19 = r.CheckBreak()
}
if yyb17 {
if yyb19 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -36965,16 +37011,16 @@ func (x *NodeStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Allocatable = nil
} else {
yyv19 := &x.Allocatable
yyv19.CodecDecodeSelf(d)
yyv21 := &x.Allocatable
yyv21.CodecDecodeSelf(d)
}
yyj17++
if yyhl17 {
yyb17 = yyj17 > l
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb17 = r.CheckBreak()
yyb19 = r.CheckBreak()
}
if yyb17 {
if yyb19 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -36984,13 +37030,13 @@ func (x *NodeStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else {
x.Phase = NodePhase(r.DecodeString())
}
yyj17++
if yyhl17 {
yyb17 = yyj17 > l
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb17 = r.CheckBreak()
yyb19 = r.CheckBreak()
}
if yyb17 {
if yyb19 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -36998,21 +37044,21 @@ func (x *NodeStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Conditions = nil
} else {
yyv21 := &x.Conditions
yym22 := z.DecBinary()
_ = yym22
yyv23 := &x.Conditions
yym24 := z.DecBinary()
_ = yym24
if false {
} else {
h.decSliceNodeCondition((*[]NodeCondition)(yyv21), d)
h.decSliceNodeCondition((*[]NodeCondition)(yyv23), d)
}
}
yyj17++
if yyhl17 {
yyb17 = yyj17 > l
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb17 = r.CheckBreak()
yyb19 = r.CheckBreak()
}
if yyb17 {
if yyb19 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -37020,21 +37066,21 @@ func (x *NodeStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Addresses = nil
} else {
yyv23 := &x.Addresses
yym24 := z.DecBinary()
_ = yym24
yyv25 := &x.Addresses
yym26 := z.DecBinary()
_ = yym26
if false {
} else {
h.decSliceNodeAddress((*[]NodeAddress)(yyv23), d)
h.decSliceNodeAddress((*[]NodeAddress)(yyv25), d)
}
}
yyj17++
if yyhl17 {
yyb17 = yyj17 > l
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb17 = r.CheckBreak()
yyb19 = r.CheckBreak()
}
if yyb17 {
if yyb19 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -37042,16 +37088,16 @@ func (x *NodeStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.DaemonEndpoints = NodeDaemonEndpoints{}
} else {
yyv25 := &x.DaemonEndpoints
yyv25.CodecDecodeSelf(d)
yyv27 := &x.DaemonEndpoints
yyv27.CodecDecodeSelf(d)
}
yyj17++
if yyhl17 {
yyb17 = yyj17 > l
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb17 = r.CheckBreak()
yyb19 = r.CheckBreak()
}
if yyb17 {
if yyb19 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -37059,16 +37105,16 @@ func (x *NodeStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.NodeInfo = NodeSystemInfo{}
} else {
yyv26 := &x.NodeInfo
yyv26.CodecDecodeSelf(d)
yyv28 := &x.NodeInfo
yyv28.CodecDecodeSelf(d)
}
yyj17++
if yyhl17 {
yyb17 = yyj17 > l
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb17 = r.CheckBreak()
yyb19 = r.CheckBreak()
}
if yyb17 {
if yyb19 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -37076,21 +37122,21 @@ func (x *NodeStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Images = nil
} else {
yyv27 := &x.Images
yym28 := z.DecBinary()
_ = yym28
yyv29 := &x.Images
yym30 := z.DecBinary()
_ = yym30
if false {
} else {
h.decSliceContainerImage((*[]ContainerImage)(yyv27), d)
h.decSliceContainerImage((*[]ContainerImage)(yyv29), d)
}
}
yyj17++
if yyhl17 {
yyb17 = yyj17 > l
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb17 = r.CheckBreak()
yyb19 = r.CheckBreak()
}
if yyb17 {
if yyb19 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -37098,26 +37144,48 @@ func (x *NodeStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.VolumesInUse = nil
} else {
yyv29 := &x.VolumesInUse
yym30 := z.DecBinary()
_ = yym30
yyv31 := &x.VolumesInUse
yym32 := z.DecBinary()
_ = yym32
if false {
} else {
h.decSliceUniqueVolumeName((*[]UniqueVolumeName)(yyv29), d)
h.decSliceUniqueVolumeName((*[]UniqueVolumeName)(yyv31), d)
}
}
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb19 = r.CheckBreak()
}
if yyb19 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
if r.TryDecodeAsNil() {
x.VolumesAttached = nil
} else {
yyv33 := &x.VolumesAttached
yym34 := z.DecBinary()
_ = yym34
if false {
} else {
h.decSliceAttachedVolume((*[]AttachedVolume)(yyv33), d)
}
}
for {
yyj17++
if yyhl17 {
yyb17 = yyj17 > l
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb17 = r.CheckBreak()
yyb19 = r.CheckBreak()
}
if yyb17 {
if yyb19 {
break
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj17-1, "")
z.DecStructFieldNotFound(yyj19-1, "")
}
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
}
@ -37148,6 +37216,199 @@ func (x *UniqueVolumeName) CodecDecodeSelf(d *codec1978.Decoder) {
}
}
func (x *AttachedVolume) CodecEncodeSelf(e *codec1978.Encoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r
if x == nil {
r.EncodeNil()
} else {
yym1 := z.EncBinary()
_ = yym1
if false {
} else if z.HasExtensions() && z.EncExt(x) {
} else {
yysep2 := !z.EncBinary()
yy2arr2 := z.EncBasicHandle().StructToArray
var yyq2 [2]bool
_, _, _ = yysep2, yyq2, yy2arr2
const yyr2 bool = false
var yynn2 int
if yyr2 || yy2arr2 {
r.EncodeArrayStart(2)
} else {
yynn2 = 2
for _, b := range yyq2 {
if b {
yynn2++
}
}
r.EncodeMapStart(yynn2)
yynn2 = 0
}
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
x.Name.CodecEncodeSelf(e)
} else {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("name"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
x.Name.CodecEncodeSelf(e)
}
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yym7 := z.EncBinary()
_ = yym7
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.DevicePath))
}
} else {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("devicePath"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym8 := z.EncBinary()
_ = yym8
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.DevicePath))
}
}
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
} else {
z.EncSendContainerState(codecSelfer_containerMapEnd1234)
}
}
}
}
func (x *AttachedVolume) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
yym1 := z.DecBinary()
_ = yym1
if false {
} else if z.HasExtensions() && z.DecExt(x) {
} else {
yyct2 := r.ContainerType()
if yyct2 == codecSelferValueTypeMap1234 {
yyl2 := r.ReadMapStart()
if yyl2 == 0 {
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} else {
x.codecDecodeSelfFromMap(yyl2, d)
}
} else if yyct2 == codecSelferValueTypeArray1234 {
yyl2 := r.ReadArrayStart()
if yyl2 == 0 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} else {
x.codecDecodeSelfFromArray(yyl2, d)
}
} else {
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
}
}
}
func (x *AttachedVolume) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yys3Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys3Slc
var yyhl3 bool = l >= 0
for yyj3 := 0; ; yyj3++ {
if yyhl3 {
if yyj3 >= l {
break
}
} else {
if r.CheckBreak() {
break
}
}
z.DecSendContainerState(codecSelfer_containerMapKey1234)
yys3Slc = r.DecodeBytes(yys3Slc, true, true)
yys3 := string(yys3Slc)
z.DecSendContainerState(codecSelfer_containerMapValue1234)
switch yys3 {
case "name":
if r.TryDecodeAsNil() {
x.Name = ""
} else {
x.Name = UniqueVolumeName(r.DecodeString())
}
case "devicePath":
if r.TryDecodeAsNil() {
x.DevicePath = ""
} else {
x.DevicePath = string(r.DecodeString())
}
default:
z.DecStructFieldNotFound(-1, yys3)
} // end switch yys3
} // end for yyj3
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
}
func (x *AttachedVolume) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yyj6 int
var yyb6 bool
var yyhl6 bool = l >= 0
yyj6++
if yyhl6 {
yyb6 = yyj6 > l
} else {
yyb6 = r.CheckBreak()
}
if yyb6 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
if r.TryDecodeAsNil() {
x.Name = ""
} else {
x.Name = UniqueVolumeName(r.DecodeString())
}
yyj6++
if yyhl6 {
yyb6 = yyj6 > l
} else {
yyb6 = r.CheckBreak()
}
if yyb6 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
if r.TryDecodeAsNil() {
x.DevicePath = ""
} else {
x.DevicePath = string(r.DecodeString())
}
for {
yyj6++
if yyhl6 {
yyb6 = yyj6 > l
} else {
yyb6 = r.CheckBreak()
}
if yyb6 {
break
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj6-1, "")
}
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
}
func (x *ContainerImage) CodecEncodeSelf(e *codec1978.Encoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e)
@ -57477,6 +57738,125 @@ func (x codecSelfer1234) decSliceUniqueVolumeName(v *[]UniqueVolumeName, d *code
}
}
func (x codecSelfer1234) encSliceAttachedVolume(v []AttachedVolume, e *codec1978.Encoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r
r.EncodeArrayStart(len(v))
for _, yyv1 := range v {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yy2 := &yyv1
yy2.CodecEncodeSelf(e)
}
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
}
func (x codecSelfer1234) decSliceAttachedVolume(v *[]AttachedVolume, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
yyv1 := *v
yyh1, yyl1 := z.DecSliceHelperStart()
var yyc1 bool
_ = yyc1
if yyl1 == 0 {
if yyv1 == nil {
yyv1 = []AttachedVolume{}
yyc1 = true
} else if len(yyv1) != 0 {
yyv1 = yyv1[:0]
yyc1 = true
}
} else if yyl1 > 0 {
var yyrr1, yyrl1 int
var yyrt1 bool
_, _ = yyrl1, yyrt1
yyrr1 = yyl1 // len(yyv1)
if yyl1 > cap(yyv1) {
yyrg1 := len(yyv1) > 0
yyv21 := yyv1
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 32)
if yyrt1 {
if yyrl1 <= cap(yyv1) {
yyv1 = yyv1[:yyrl1]
} else {
yyv1 = make([]AttachedVolume, yyrl1)
}
} else {
yyv1 = make([]AttachedVolume, yyrl1)
}
yyc1 = true
yyrr1 = len(yyv1)
if yyrg1 {
copy(yyv1, yyv21)
}
} else if yyl1 != len(yyv1) {
yyv1 = yyv1[:yyl1]
yyc1 = true
}
yyj1 := 0
for ; yyj1 < yyrr1; yyj1++ {
yyh1.ElemContainerState(yyj1)
if r.TryDecodeAsNil() {
yyv1[yyj1] = AttachedVolume{}
} else {
yyv2 := &yyv1[yyj1]
yyv2.CodecDecodeSelf(d)
}
}
if yyrt1 {
for ; yyj1 < yyl1; yyj1++ {
yyv1 = append(yyv1, AttachedVolume{})
yyh1.ElemContainerState(yyj1)
if r.TryDecodeAsNil() {
yyv1[yyj1] = AttachedVolume{}
} else {
yyv3 := &yyv1[yyj1]
yyv3.CodecDecodeSelf(d)
}
}
}
} else {
yyj1 := 0
for ; !r.CheckBreak(); yyj1++ {
if yyj1 >= len(yyv1) {
yyv1 = append(yyv1, AttachedVolume{}) // var yyz1 AttachedVolume
yyc1 = true
}
yyh1.ElemContainerState(yyj1)
if yyj1 < len(yyv1) {
if r.TryDecodeAsNil() {
yyv1[yyj1] = AttachedVolume{}
} else {
yyv4 := &yyv1[yyj1]
yyv4.CodecDecodeSelf(d)
}
} else {
z.DecSwallow()
}
}
if yyj1 < len(yyv1) {
yyv1 = yyv1[:yyj1]
yyc1 = true
} else if yyj1 == 0 && yyv1 == nil {
yyv1 = []AttachedVolume{}
yyc1 = true
}
}
yyh1.End()
if yyc1 {
*v = yyv1
}
}
func (x codecSelfer1234) encResourceList(v ResourceList, e *codec1978.Encoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e)
@ -57630,7 +58010,7 @@ func (x codecSelfer1234) decSliceNode(v *[]Node, d *codec1978.Decoder) {
yyrg1 := len(yyv1) > 0
yyv21 := yyv1
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 592)
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 616)
if yyrt1 {
if yyrl1 <= cap(yyv1) {
yyv1 = yyv1[:yyrl1]

View File

@ -1989,10 +1989,21 @@ type NodeStatus struct {
Images []ContainerImage `json:"images,omitempty"`
// List of attachable volumes in use (mounted) by the node.
VolumesInUse []UniqueVolumeName `json:"volumesInUse,omitempty"`
// List of volumes that are attached to the node.
VolumesAttached []AttachedVolume `json:"volumesAttached,omitempty"`
}
type UniqueVolumeName string
// AttachedVolume describes a volume attached to a node
type AttachedVolume struct {
// Name of the attached volume
Name UniqueVolumeName `json:"name"`
// DevicePath represents the device path where the volume should be avilable
DevicePath string `json:"devicePath"`
}
// Describe a container image
type ContainerImage struct {
// Names by which this image is known.

View File

@ -33,6 +33,8 @@ func init() {
Convert_api_AWSElasticBlockStoreVolumeSource_To_v1_AWSElasticBlockStoreVolumeSource,
Convert_v1_Affinity_To_api_Affinity,
Convert_api_Affinity_To_v1_Affinity,
Convert_v1_AttachedVolume_To_api_AttachedVolume,
Convert_api_AttachedVolume_To_v1_AttachedVolume,
Convert_v1_AzureFileVolumeSource_To_api_AzureFileVolumeSource,
Convert_api_AzureFileVolumeSource_To_v1_AzureFileVolumeSource,
Convert_v1_Binding_To_api_Binding,
@ -425,6 +427,26 @@ func Convert_api_Affinity_To_v1_Affinity(in *api.Affinity, out *Affinity, s conv
return autoConvert_api_Affinity_To_v1_Affinity(in, out, s)
}
func autoConvert_v1_AttachedVolume_To_api_AttachedVolume(in *AttachedVolume, out *api.AttachedVolume, s conversion.Scope) error {
out.Name = api.UniqueVolumeName(in.Name)
out.DevicePath = in.DevicePath
return nil
}
func Convert_v1_AttachedVolume_To_api_AttachedVolume(in *AttachedVolume, out *api.AttachedVolume, s conversion.Scope) error {
return autoConvert_v1_AttachedVolume_To_api_AttachedVolume(in, out, s)
}
func autoConvert_api_AttachedVolume_To_v1_AttachedVolume(in *api.AttachedVolume, out *AttachedVolume, s conversion.Scope) error {
out.Name = UniqueVolumeName(in.Name)
out.DevicePath = in.DevicePath
return nil
}
func Convert_api_AttachedVolume_To_v1_AttachedVolume(in *api.AttachedVolume, out *AttachedVolume, s conversion.Scope) error {
return autoConvert_api_AttachedVolume_To_v1_AttachedVolume(in, out, s)
}
func autoConvert_v1_AzureFileVolumeSource_To_api_AzureFileVolumeSource(in *AzureFileVolumeSource, out *api.AzureFileVolumeSource, s conversion.Scope) error {
out.SecretName = in.SecretName
out.ShareName = in.ShareName
@ -3397,6 +3419,17 @@ func autoConvert_v1_NodeStatus_To_api_NodeStatus(in *NodeStatus, out *api.NodeSt
} else {
out.VolumesInUse = nil
}
if in.VolumesAttached != nil {
in, out := &in.VolumesAttached, &out.VolumesAttached
*out = make([]api.AttachedVolume, len(*in))
for i := range *in {
if err := Convert_v1_AttachedVolume_To_api_AttachedVolume(&(*in)[i], &(*out)[i], s); err != nil {
return err
}
}
} else {
out.VolumesAttached = nil
}
return nil
}
@ -3480,6 +3513,17 @@ func autoConvert_api_NodeStatus_To_v1_NodeStatus(in *api.NodeStatus, out *NodeSt
} else {
out.VolumesInUse = nil
}
if in.VolumesAttached != nil {
in, out := &in.VolumesAttached, &out.VolumesAttached
*out = make([]AttachedVolume, len(*in))
for i := range *in {
if err := Convert_api_AttachedVolume_To_v1_AttachedVolume(&(*in)[i], &(*out)[i], s); err != nil {
return err
}
}
} else {
out.VolumesAttached = nil
}
return nil
}

View File

@ -34,6 +34,7 @@ func init() {
if err := api.Scheme.AddGeneratedDeepCopyFuncs(
DeepCopy_v1_AWSElasticBlockStoreVolumeSource,
DeepCopy_v1_Affinity,
DeepCopy_v1_AttachedVolume,
DeepCopy_v1_AzureFileVolumeSource,
DeepCopy_v1_Binding,
DeepCopy_v1_Capabilities,
@ -225,6 +226,12 @@ func DeepCopy_v1_Affinity(in Affinity, out *Affinity, c *conversion.Cloner) erro
return nil
}
func DeepCopy_v1_AttachedVolume(in AttachedVolume, out *AttachedVolume, c *conversion.Cloner) error {
out.Name = in.Name
out.DevicePath = in.DevicePath
return nil
}
func DeepCopy_v1_AzureFileVolumeSource(in AzureFileVolumeSource, out *AzureFileVolumeSource, c *conversion.Cloner) error {
out.SecretName = in.SecretName
out.ShareName = in.ShareName
@ -1557,6 +1564,17 @@ func DeepCopy_v1_NodeStatus(in NodeStatus, out *NodeStatus, c *conversion.Cloner
} else {
out.VolumesInUse = nil
}
if in.VolumesAttached != nil {
in, out := in.VolumesAttached, &out.VolumesAttached
*out = make([]AttachedVolume, len(in))
for i := range in {
if err := DeepCopy_v1_AttachedVolume(in[i], &(*out)[i], c); err != nil {
return err
}
}
} else {
out.VolumesAttached = nil
}
return nil
}

View File

@ -27,6 +27,7 @@ limitations under the License.
It has these top-level messages:
AWSElasticBlockStoreVolumeSource
Affinity
AttachedVolume
AzureFileVolumeSource
Binding
Capabilities
@ -201,6 +202,10 @@ func (m *Affinity) Reset() { *m = Affinity{} }
func (m *Affinity) String() string { return proto.CompactTextString(m) }
func (*Affinity) ProtoMessage() {}
func (m *AttachedVolume) Reset() { *m = AttachedVolume{} }
func (m *AttachedVolume) String() string { return proto.CompactTextString(m) }
func (*AttachedVolume) ProtoMessage() {}
func (m *AzureFileVolumeSource) Reset() { *m = AzureFileVolumeSource{} }
func (m *AzureFileVolumeSource) String() string { return proto.CompactTextString(m) }
func (*AzureFileVolumeSource) ProtoMessage() {}
@ -788,6 +793,7 @@ func (*WeightedPodAffinityTerm) ProtoMessage() {}
func init() {
proto.RegisterType((*AWSElasticBlockStoreVolumeSource)(nil), "k8s.io.kubernetes.pkg.api.v1.AWSElasticBlockStoreVolumeSource")
proto.RegisterType((*Affinity)(nil), "k8s.io.kubernetes.pkg.api.v1.Affinity")
proto.RegisterType((*AttachedVolume)(nil), "k8s.io.kubernetes.pkg.api.v1.AttachedVolume")
proto.RegisterType((*AzureFileVolumeSource)(nil), "k8s.io.kubernetes.pkg.api.v1.AzureFileVolumeSource")
proto.RegisterType((*Binding)(nil), "k8s.io.kubernetes.pkg.api.v1.Binding")
proto.RegisterType((*Capabilities)(nil), "k8s.io.kubernetes.pkg.api.v1.Capabilities")
@ -1020,6 +1026,32 @@ func (m *Affinity) MarshalTo(data []byte) (int, error) {
return i, nil
}
func (m *AttachedVolume) Marshal() (data []byte, err error) {
size := m.Size()
data = make([]byte, size)
n, err := m.MarshalTo(data)
if err != nil {
return nil, err
}
return data[:n], nil
}
func (m *AttachedVolume) MarshalTo(data []byte) (int, error) {
var i int
_ = i
var l int
_ = l
data[i] = 0xa
i++
i = encodeVarintGenerated(data, i, uint64(len(m.Name)))
i += copy(data[i:], m.Name)
data[i] = 0x12
i++
i = encodeVarintGenerated(data, i, uint64(len(m.DevicePath)))
i += copy(data[i:], m.DevicePath)
return i, nil
}
func (m *AzureFileVolumeSource) Marshal() (data []byte, err error) {
size := m.Size()
data = make([]byte, size)
@ -4174,6 +4206,18 @@ func (m *NodeStatus) MarshalTo(data []byte) (int, error) {
i += copy(data[i:], s)
}
}
if len(m.VolumesAttached) > 0 {
for _, msg := range m.VolumesAttached {
data[i] = 0x52
i++
i = encodeVarintGenerated(data, i, uint64(msg.Size()))
n, err := msg.MarshalTo(data[i:])
if err != nil {
return 0, err
}
i += n
}
}
return i, nil
}
@ -7735,6 +7779,16 @@ func (m *Affinity) Size() (n int) {
return n
}
func (m *AttachedVolume) Size() (n int) {
var l int
_ = l
l = len(m.Name)
n += 1 + l + sovGenerated(uint64(l))
l = len(m.DevicePath)
n += 1 + l + sovGenerated(uint64(l))
return n
}
func (m *AzureFileVolumeSource) Size() (n int) {
var l int
_ = l
@ -8887,6 +8941,12 @@ func (m *NodeStatus) Size() (n int) {
n += 1 + l + sovGenerated(uint64(l))
}
}
if len(m.VolumesAttached) > 0 {
for _, e := range m.VolumesAttached {
l = e.Size()
n += 1 + l + sovGenerated(uint64(l))
}
}
return n
}
@ -10492,6 +10552,114 @@ func (m *Affinity) Unmarshal(data []byte) error {
}
return nil
}
func (m *AttachedVolume) Unmarshal(data []byte) error {
l := len(data)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := data[iNdEx]
iNdEx++
wire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: AttachedVolume: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: AttachedVolume: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := data[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Name = UniqueVolumeName(data[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field DevicePath", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := data[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.DevicePath = string(data[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(data[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthGenerated
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *AzureFileVolumeSource) Unmarshal(data []byte) error {
l := len(data)
iNdEx := 0
@ -21635,6 +21803,37 @@ func (m *NodeStatus) Unmarshal(data []byte) error {
}
m.VolumesInUse = append(m.VolumesInUse, UniqueVolumeName(data[iNdEx:postIndex]))
iNdEx = postIndex
case 10:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field VolumesAttached", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := data[iNdEx]
iNdEx++
msglen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + msglen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.VolumesAttached = append(m.VolumesAttached, AttachedVolume{})
if err := m.VolumesAttached[len(m.VolumesAttached)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(data[iNdEx:])

View File

@ -71,6 +71,15 @@ message Affinity {
optional PodAntiAffinity podAntiAffinity = 3;
}
// AttachedVolume describes a volume attached to a node
message AttachedVolume {
// Name of the attached volume
optional string name = 1;
// DevicePath represents the device path where the volume should be avilable
optional string devicePath = 2;
}
// AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
message AzureFileVolumeSource {
// the name of secret that contains Azure Storage Account Name and Key
@ -1306,6 +1315,9 @@ message NodeStatus {
// List of attachable volumes in use (mounted) by the node.
repeated string volumesInUse = 9;
// List of volumes that are attached to the node.
repeated AttachedVolume volumesAttached = 10;
}
// NodeSystemInfo is a set of ids/uuids to uniquely identify the node.

View File

@ -36330,7 +36330,7 @@ func (x *NodeStatus) CodecEncodeSelf(e *codec1978.Encoder) {
} else {
yysep2 := !z.EncBinary()
yy2arr2 := z.EncBasicHandle().StructToArray
var yyq2 [9]bool
var yyq2 [10]bool
_, _, _ = yysep2, yyq2, yy2arr2
const yyr2 bool = false
yyq2[0] = len(x.Capacity) != 0
@ -36342,9 +36342,10 @@ func (x *NodeStatus) CodecEncodeSelf(e *codec1978.Encoder) {
yyq2[6] = true
yyq2[7] = len(x.Images) != 0
yyq2[8] = len(x.VolumesInUse) != 0
yyq2[9] = len(x.VolumesAttached) != 0
var yynn2 int
if yyr2 || yy2arr2 {
r.EncodeArrayStart(9)
r.EncodeArrayStart(10)
} else {
yynn2 = 0
for _, b := range yyq2 {
@ -36582,6 +36583,39 @@ func (x *NodeStatus) CodecEncodeSelf(e *codec1978.Encoder) {
}
}
}
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq2[9] {
if x.VolumesAttached == nil {
r.EncodeNil()
} else {
yym35 := z.EncBinary()
_ = yym35
if false {
} else {
h.encSliceAttachedVolume(([]AttachedVolume)(x.VolumesAttached), e)
}
}
} else {
r.EncodeNil()
}
} else {
if yyq2[9] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("volumesAttached"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
if x.VolumesAttached == nil {
r.EncodeNil()
} else {
yym36 := z.EncBinary()
_ = yym36
if false {
} else {
h.encSliceAttachedVolume(([]AttachedVolume)(x.VolumesAttached), e)
}
}
}
}
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
} else {
@ -36725,6 +36759,18 @@ func (x *NodeStatus) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
h.decSliceUniqueVolumeName((*[]UniqueVolumeName)(yyv15), d)
}
}
case "volumesAttached":
if r.TryDecodeAsNil() {
x.VolumesAttached = nil
} else {
yyv17 := &x.VolumesAttached
yym18 := z.DecBinary()
_ = yym18
if false {
} else {
h.decSliceAttachedVolume((*[]AttachedVolume)(yyv17), d)
}
}
default:
z.DecStructFieldNotFound(-1, yys3)
} // end switch yys3
@ -36736,16 +36782,16 @@ func (x *NodeStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yyj17 int
var yyb17 bool
var yyhl17 bool = l >= 0
yyj17++
if yyhl17 {
yyb17 = yyj17 > l
var yyj19 int
var yyb19 bool
var yyhl19 bool = l >= 0
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb17 = r.CheckBreak()
yyb19 = r.CheckBreak()
}
if yyb17 {
if yyb19 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -36753,16 +36799,16 @@ func (x *NodeStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Capacity = nil
} else {
yyv18 := &x.Capacity
yyv18.CodecDecodeSelf(d)
yyv20 := &x.Capacity
yyv20.CodecDecodeSelf(d)
}
yyj17++
if yyhl17 {
yyb17 = yyj17 > l
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb17 = r.CheckBreak()
yyb19 = r.CheckBreak()
}
if yyb17 {
if yyb19 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -36770,16 +36816,16 @@ func (x *NodeStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Allocatable = nil
} else {
yyv19 := &x.Allocatable
yyv19.CodecDecodeSelf(d)
yyv21 := &x.Allocatable
yyv21.CodecDecodeSelf(d)
}
yyj17++
if yyhl17 {
yyb17 = yyj17 > l
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb17 = r.CheckBreak()
yyb19 = r.CheckBreak()
}
if yyb17 {
if yyb19 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -36789,13 +36835,13 @@ func (x *NodeStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} else {
x.Phase = NodePhase(r.DecodeString())
}
yyj17++
if yyhl17 {
yyb17 = yyj17 > l
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb17 = r.CheckBreak()
yyb19 = r.CheckBreak()
}
if yyb17 {
if yyb19 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -36803,21 +36849,21 @@ func (x *NodeStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Conditions = nil
} else {
yyv21 := &x.Conditions
yym22 := z.DecBinary()
_ = yym22
yyv23 := &x.Conditions
yym24 := z.DecBinary()
_ = yym24
if false {
} else {
h.decSliceNodeCondition((*[]NodeCondition)(yyv21), d)
h.decSliceNodeCondition((*[]NodeCondition)(yyv23), d)
}
}
yyj17++
if yyhl17 {
yyb17 = yyj17 > l
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb17 = r.CheckBreak()
yyb19 = r.CheckBreak()
}
if yyb17 {
if yyb19 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -36825,21 +36871,21 @@ func (x *NodeStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Addresses = nil
} else {
yyv23 := &x.Addresses
yym24 := z.DecBinary()
_ = yym24
yyv25 := &x.Addresses
yym26 := z.DecBinary()
_ = yym26
if false {
} else {
h.decSliceNodeAddress((*[]NodeAddress)(yyv23), d)
h.decSliceNodeAddress((*[]NodeAddress)(yyv25), d)
}
}
yyj17++
if yyhl17 {
yyb17 = yyj17 > l
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb17 = r.CheckBreak()
yyb19 = r.CheckBreak()
}
if yyb17 {
if yyb19 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -36847,16 +36893,16 @@ func (x *NodeStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.DaemonEndpoints = NodeDaemonEndpoints{}
} else {
yyv25 := &x.DaemonEndpoints
yyv25.CodecDecodeSelf(d)
yyv27 := &x.DaemonEndpoints
yyv27.CodecDecodeSelf(d)
}
yyj17++
if yyhl17 {
yyb17 = yyj17 > l
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb17 = r.CheckBreak()
yyb19 = r.CheckBreak()
}
if yyb17 {
if yyb19 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -36864,16 +36910,16 @@ func (x *NodeStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.NodeInfo = NodeSystemInfo{}
} else {
yyv26 := &x.NodeInfo
yyv26.CodecDecodeSelf(d)
yyv28 := &x.NodeInfo
yyv28.CodecDecodeSelf(d)
}
yyj17++
if yyhl17 {
yyb17 = yyj17 > l
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb17 = r.CheckBreak()
yyb19 = r.CheckBreak()
}
if yyb17 {
if yyb19 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -36881,21 +36927,21 @@ func (x *NodeStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Images = nil
} else {
yyv27 := &x.Images
yym28 := z.DecBinary()
_ = yym28
yyv29 := &x.Images
yym30 := z.DecBinary()
_ = yym30
if false {
} else {
h.decSliceContainerImage((*[]ContainerImage)(yyv27), d)
h.decSliceContainerImage((*[]ContainerImage)(yyv29), d)
}
}
yyj17++
if yyhl17 {
yyb17 = yyj17 > l
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb17 = r.CheckBreak()
yyb19 = r.CheckBreak()
}
if yyb17 {
if yyb19 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -36903,26 +36949,48 @@ func (x *NodeStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.VolumesInUse = nil
} else {
yyv29 := &x.VolumesInUse
yym30 := z.DecBinary()
_ = yym30
yyv31 := &x.VolumesInUse
yym32 := z.DecBinary()
_ = yym32
if false {
} else {
h.decSliceUniqueVolumeName((*[]UniqueVolumeName)(yyv29), d)
h.decSliceUniqueVolumeName((*[]UniqueVolumeName)(yyv31), d)
}
}
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb19 = r.CheckBreak()
}
if yyb19 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
if r.TryDecodeAsNil() {
x.VolumesAttached = nil
} else {
yyv33 := &x.VolumesAttached
yym34 := z.DecBinary()
_ = yym34
if false {
} else {
h.decSliceAttachedVolume((*[]AttachedVolume)(yyv33), d)
}
}
for {
yyj17++
if yyhl17 {
yyb17 = yyj17 > l
yyj19++
if yyhl19 {
yyb19 = yyj19 > l
} else {
yyb17 = r.CheckBreak()
yyb19 = r.CheckBreak()
}
if yyb17 {
if yyb19 {
break
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj17-1, "")
z.DecStructFieldNotFound(yyj19-1, "")
}
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
}
@ -36953,6 +37021,199 @@ func (x *UniqueVolumeName) CodecDecodeSelf(d *codec1978.Decoder) {
}
}
func (x *AttachedVolume) CodecEncodeSelf(e *codec1978.Encoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r
if x == nil {
r.EncodeNil()
} else {
yym1 := z.EncBinary()
_ = yym1
if false {
} else if z.HasExtensions() && z.EncExt(x) {
} else {
yysep2 := !z.EncBinary()
yy2arr2 := z.EncBasicHandle().StructToArray
var yyq2 [2]bool
_, _, _ = yysep2, yyq2, yy2arr2
const yyr2 bool = false
var yynn2 int
if yyr2 || yy2arr2 {
r.EncodeArrayStart(2)
} else {
yynn2 = 2
for _, b := range yyq2 {
if b {
yynn2++
}
}
r.EncodeMapStart(yynn2)
yynn2 = 0
}
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
x.Name.CodecEncodeSelf(e)
} else {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("name"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
x.Name.CodecEncodeSelf(e)
}
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yym7 := z.EncBinary()
_ = yym7
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.DevicePath))
}
} else {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("devicePath"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym8 := z.EncBinary()
_ = yym8
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.DevicePath))
}
}
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
} else {
z.EncSendContainerState(codecSelfer_containerMapEnd1234)
}
}
}
}
func (x *AttachedVolume) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
yym1 := z.DecBinary()
_ = yym1
if false {
} else if z.HasExtensions() && z.DecExt(x) {
} else {
yyct2 := r.ContainerType()
if yyct2 == codecSelferValueTypeMap1234 {
yyl2 := r.ReadMapStart()
if yyl2 == 0 {
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} else {
x.codecDecodeSelfFromMap(yyl2, d)
}
} else if yyct2 == codecSelferValueTypeArray1234 {
yyl2 := r.ReadArrayStart()
if yyl2 == 0 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} else {
x.codecDecodeSelfFromArray(yyl2, d)
}
} else {
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
}
}
}
func (x *AttachedVolume) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yys3Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys3Slc
var yyhl3 bool = l >= 0
for yyj3 := 0; ; yyj3++ {
if yyhl3 {
if yyj3 >= l {
break
}
} else {
if r.CheckBreak() {
break
}
}
z.DecSendContainerState(codecSelfer_containerMapKey1234)
yys3Slc = r.DecodeBytes(yys3Slc, true, true)
yys3 := string(yys3Slc)
z.DecSendContainerState(codecSelfer_containerMapValue1234)
switch yys3 {
case "name":
if r.TryDecodeAsNil() {
x.Name = ""
} else {
x.Name = UniqueVolumeName(r.DecodeString())
}
case "devicePath":
if r.TryDecodeAsNil() {
x.DevicePath = ""
} else {
x.DevicePath = string(r.DecodeString())
}
default:
z.DecStructFieldNotFound(-1, yys3)
} // end switch yys3
} // end for yyj3
z.DecSendContainerState(codecSelfer_containerMapEnd1234)
}
func (x *AttachedVolume) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yyj6 int
var yyb6 bool
var yyhl6 bool = l >= 0
yyj6++
if yyhl6 {
yyb6 = yyj6 > l
} else {
yyb6 = r.CheckBreak()
}
if yyb6 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
if r.TryDecodeAsNil() {
x.Name = ""
} else {
x.Name = UniqueVolumeName(r.DecodeString())
}
yyj6++
if yyhl6 {
yyb6 = yyj6 > l
} else {
yyb6 = r.CheckBreak()
}
if yyb6 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
if r.TryDecodeAsNil() {
x.DevicePath = ""
} else {
x.DevicePath = string(r.DecodeString())
}
for {
yyj6++
if yyhl6 {
yyb6 = yyj6 > l
} else {
yyb6 = r.CheckBreak()
}
if yyb6 {
break
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj6-1, "")
}
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
}
func (x *ContainerImage) CodecEncodeSelf(e *codec1978.Encoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e)
@ -57530,6 +57791,125 @@ func (x codecSelfer1234) decSliceUniqueVolumeName(v *[]UniqueVolumeName, d *code
}
}
func (x codecSelfer1234) encSliceAttachedVolume(v []AttachedVolume, e *codec1978.Encoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r
r.EncodeArrayStart(len(v))
for _, yyv1 := range v {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yy2 := &yyv1
yy2.CodecEncodeSelf(e)
}
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
}
func (x codecSelfer1234) decSliceAttachedVolume(v *[]AttachedVolume, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
yyv1 := *v
yyh1, yyl1 := z.DecSliceHelperStart()
var yyc1 bool
_ = yyc1
if yyl1 == 0 {
if yyv1 == nil {
yyv1 = []AttachedVolume{}
yyc1 = true
} else if len(yyv1) != 0 {
yyv1 = yyv1[:0]
yyc1 = true
}
} else if yyl1 > 0 {
var yyrr1, yyrl1 int
var yyrt1 bool
_, _ = yyrl1, yyrt1
yyrr1 = yyl1 // len(yyv1)
if yyl1 > cap(yyv1) {
yyrg1 := len(yyv1) > 0
yyv21 := yyv1
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 32)
if yyrt1 {
if yyrl1 <= cap(yyv1) {
yyv1 = yyv1[:yyrl1]
} else {
yyv1 = make([]AttachedVolume, yyrl1)
}
} else {
yyv1 = make([]AttachedVolume, yyrl1)
}
yyc1 = true
yyrr1 = len(yyv1)
if yyrg1 {
copy(yyv1, yyv21)
}
} else if yyl1 != len(yyv1) {
yyv1 = yyv1[:yyl1]
yyc1 = true
}
yyj1 := 0
for ; yyj1 < yyrr1; yyj1++ {
yyh1.ElemContainerState(yyj1)
if r.TryDecodeAsNil() {
yyv1[yyj1] = AttachedVolume{}
} else {
yyv2 := &yyv1[yyj1]
yyv2.CodecDecodeSelf(d)
}
}
if yyrt1 {
for ; yyj1 < yyl1; yyj1++ {
yyv1 = append(yyv1, AttachedVolume{})
yyh1.ElemContainerState(yyj1)
if r.TryDecodeAsNil() {
yyv1[yyj1] = AttachedVolume{}
} else {
yyv3 := &yyv1[yyj1]
yyv3.CodecDecodeSelf(d)
}
}
}
} else {
yyj1 := 0
for ; !r.CheckBreak(); yyj1++ {
if yyj1 >= len(yyv1) {
yyv1 = append(yyv1, AttachedVolume{}) // var yyz1 AttachedVolume
yyc1 = true
}
yyh1.ElemContainerState(yyj1)
if yyj1 < len(yyv1) {
if r.TryDecodeAsNil() {
yyv1[yyj1] = AttachedVolume{}
} else {
yyv4 := &yyv1[yyj1]
yyv4.CodecDecodeSelf(d)
}
} else {
z.DecSwallow()
}
}
if yyj1 < len(yyv1) {
yyv1 = yyv1[:yyj1]
yyc1 = true
} else if yyj1 == 0 && yyv1 == nil {
yyv1 = []AttachedVolume{}
yyc1 = true
}
}
yyh1.End()
if yyc1 {
*v = yyv1
}
}
func (x codecSelfer1234) encResourceList(v ResourceList, e *codec1978.Encoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e)
@ -57683,7 +58063,7 @@ func (x codecSelfer1234) decSliceNode(v *[]Node, d *codec1978.Decoder) {
yyrg1 := len(yyv1) > 0
yyv21 := yyv1
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 592)
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 616)
if yyrt1 {
if yyrl1 <= cap(yyv1) {
yyv1 = yyv1[:yyrl1]

View File

@ -2388,10 +2388,21 @@ type NodeStatus struct {
Images []ContainerImage `json:"images,omitempty" protobuf:"bytes,8,rep,name=images"`
// List of attachable volumes in use (mounted) by the node.
VolumesInUse []UniqueVolumeName `json:"volumesInUse,omitempty" protobuf:"bytes,9,rep,name=volumesInUse"`
// List of volumes that are attached to the node.
VolumesAttached []AttachedVolume `json:"volumesAttached,omitempty" protobuf:"bytes,10,rep,name=volumesAttached"`
}
type UniqueVolumeName string
// AttachedVolume describes a volume attached to a node
type AttachedVolume struct {
// Name of the attached volume
Name UniqueVolumeName `json:"name" protobuf:"bytes,1,rep,name=name"`
// DevicePath represents the device path where the volume should be avilable
DevicePath string `json:"devicePath" protobuf:"bytes,2,rep,name=devicePath"`
}
// Describe a container image
type ContainerImage struct {
// Names by which this image is known.

View File

@ -50,6 +50,16 @@ func (Affinity) SwaggerDoc() map[string]string {
return map_Affinity
}
var map_AttachedVolume = map[string]string{
"": "AttachedVolume describes a volume attached to a node",
"name": "Name of the attached volume",
"devicePath": "DevicePath represents the device path where the volume should be avilable",
}
func (AttachedVolume) SwaggerDoc() map[string]string {
return map_AttachedVolume
}
var map_AzureFileVolumeSource = map[string]string{
"": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.",
"secretName": "the name of secret that contains Azure Storage Account Name and Key",
@ -881,6 +891,7 @@ var map_NodeStatus = map[string]string{
"nodeInfo": "Set of ids/uuids to uniquely identify the node. More info: http://releases.k8s.io/HEAD/docs/admin/node.md#node-info",
"images": "List of container images on this node",
"volumesInUse": "List of attachable volumes in use (mounted) by the node.",
"volumesAttached": "List of volumes that are attached to the node.",
}
func (NodeStatus) SwaggerDoc() map[string]string {