Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Volume separation #3561

Closed
wants to merge 11 commits into from
125 changes: 122 additions & 3 deletions .gen/pipeline/api/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18881,12 +18881,124 @@ components:
- $ref: '#/components/schemas/EksNodePool_allOf'
description: Node pool object for an EKS cluster.
type: object
EKSNodePoolVolume:
discriminator:
mapping:
ebs: '#/components/schemas/EKSNodePoolVolumeEBS'
instance-store: '#/components/schemas/EKSNodePoolVolumeInstanceStore'
none: EKSNodePoolVolumeNone
propertyName: storage
nullable: true
oneOf:
- $ref: '#/components/schemas/EKSNodePoolVolumeEBS'
- $ref: '#/components/schemas/EKSNodePoolVolumeInstanceStore'
- $ref: '#/components/schemas/EKSNodePoolVolumeNone'
EKSNodePoolVolumes:
description: An associative collection of EKS node pool node instance volume
configuration objects keyed by their semantical volume names (example instanceRoot,
kubeletRoot).
example: |
{
"instanceRoot": {
"encryption": {
"enabled": true,
"encryptionKeyARN": "arn:aws:kms:aws-region:012345678901:key/01234567-0123-0123-0123-012345678901"
}
"size": 50
"storage": "ebs"
"type": "gp3"
},
"kubeletRoot": {
"storage": "instance-store"
}
}
nullable: true
properties:
instanceRoot:
$ref: '#/components/schemas/EKSNodePoolVolume'
kubeletRoot:
$ref: '#/components/schemas/EKSNodePoolVolume'
type: object
EKSNodePoolVolumeEBS:
description: |-
Configuration of EBS volumes mounted onto an EKS node pool node instance.
EBS volumes are the default to be used, if no configuration is specified.
example: |
{
"encryption": {
"enabled": true,
"encryptionKeyARN": "arn:aws:kms:aws-region:012345678901:key/01234567-0123-0123-0123-012345678901"
}
"size": 50
"storage": "ebs"
"type": "gp3"
}
properties:
encryption:
$ref: '#/components/schemas/EKSNodePoolVolumeEncryption'
size:
description: Size of the EBS volume in GiBs of the nodes in the pool (default
50 GiB).
example: 50
type: integer
storage:
description: Type of the mounted volume's storage on the node instances
of the node pool.
enum:
- ebs
type: string
type:
description: Type of the EBS volume to mount on the EKS node pool node instances
(default gp3).
example: gp3
type: string
required:
- storage
type: object
EKSNodePoolVolumeInstanceStore:
description: |-
Configuration of instance store volumes mounted onto an EKS node pool node instance.
Instance store volumes are encrypted at rest by default using an XTS-AES-256 block cipher implemented in a hardware module on the instance.
The size and type of an instance store volume is fixed based on the instance type the volume is attached to.
For more details see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes.
example: |
{
"storage": "instance-store"
}
properties:
storage:
description: Type of the mounted volume's storage on the node instances
of the node pool.
enum:
- instance-store
type: string
required:
- storage
type: object
EKSNodePoolVolumeNone:
description: We need this struct to be able to remove a volume in case of an
update for example.
example: |
{
"storage": "none"
}
properties:
storage:
description: Type of the mounted volume's storage on the node instances
of the node pool.
enum:
- instance-store
type: string
required:
- storage
type: object
EKSNodePoolVolumeEncryption:
description: Encryption details of the node volumes in an EKS node pool.
description: Encryption details of the instance volumes in an EKS node pool
(default null -> control plane configuration -> AWS account default).
example: |
{
"enabled": true,
"encryptionKeyARN": "arn:aws:kms:<REGION>:000000000000:key/00000000-0000-0000-0000-000000000000"
"encryptionKeyARN": "arn:aws:kms:aws-region:012345678901:key/01234567-0123-0123-0123-01234567890a"
}
nullable: true
properties:
Expand All @@ -18896,7 +19008,7 @@ components:
type: boolean
encryptionKeyARN:
description: KMS key ARN to use for node volume encryption.
example: arn:aws:kms:<REGION>:000000000000:key/00000000-0000-0000-0000-000000000000
example: arn:aws:kms:aws-region:012345678901:key/01234567-0123-0123-0123-01234567890a
type: string
required:
- enabled
Expand Down Expand Up @@ -23005,10 +23117,12 @@ components:
volumeEncryption:
$ref: '#/components/schemas/EKSNodePoolVolumeEncryption'
volumeSize:
deprecated: true
description: Size of the EBS volume in GBs of the nodes in the pool.
example: 50
type: integer
volumeType:
deprecated: true
description: Type of the EBS volume of the nodes in the pool (default gp3).
example: gp3
type: string
Expand Down Expand Up @@ -23039,11 +23153,14 @@ components:
type: string
type: array
useInstanceStore:
deprecated: true
description: Setup available instance stores (NVMe disks) to use for Kubelet
root if available. As a result emptyDir volumes will be provisioned on
local instance storage disks. You can check out available instance storages
here https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes.
type: boolean
volumes:
$ref: '#/components/schemas/EKSNodePoolVolumes'
required:
- instanceType
EksUpdateNodePoolRequest_allOf:
Expand Down Expand Up @@ -23094,6 +23211,8 @@ components:
here https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes.
nullable: true
type: boolean
volumes:
$ref: '#/components/schemas/EKSNodePoolVolumes'
options:
$ref: '#/components/schemas/BaseUpdateNodePoolOptions'
PkeAwsUpdateNodePoolRequest_allOf:
Expand Down
2 changes: 2 additions & 0 deletions .gen/pipeline/pipeline/model_create_node_pool_request.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,5 +48,7 @@ type CreateNodePoolRequest struct {
// Setup available instance stores (NVMe disks) to use for Kubelet root if available. As a result emptyDir volumes will be provisioned on local instance storage disks. You can check out available instance storages here https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes.
UseInstanceStore bool `json:"useInstanceStore,omitempty"`

Volumes *EksNodePoolVolumes `json:"volumes,omitempty"`

NodePools map[string]NodePool `json:"nodePools,omitempty"`
}
2 changes: 2 additions & 0 deletions .gen/pipeline/pipeline/model_eks_node_pool_all_of.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,6 @@ type EksNodePoolAllOf struct {

// Setup available instance stores (NVMe disks) to use for Kubelet root if available. As a result emptyDir volumes will be provisioned on local instance storage disks. You can check out available instance storages here https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes.
UseInstanceStore bool `json:"useInstanceStore,omitempty"`

Volumes *EksNodePoolVolumes `json:"volumes,omitempty"`
}
25 changes: 25 additions & 0 deletions .gen/pipeline/pipeline/model_eks_node_pool_volume.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/*
* Pipeline API
*
* Pipeline is a feature rich application platform, built for containers on top of Kubernetes to automate the DevOps experience, continuous application development and the lifecycle of deployments.
*
* API version: latest
* Contact: [email protected]
* Generated by: OpenAPI Generator (https://openapi-generator.tech)
*/

package pipeline

type EksNodePoolVolume struct {

Encryption *EksNodePoolVolumeEncryption `json:"encryption,omitempty"`

// Size of the EBS volume in GiBs of the nodes in the pool (default 50 GiB).
Size int32 `json:"size,omitempty"`

// Type of the mounted volume's storage on the node instances of the node pool.
Storage string `json:"storage"`

// Type of the EBS volume to mount on the EKS node pool node instances (default gp3).
Type string `json:"type,omitempty"`
}
26 changes: 26 additions & 0 deletions .gen/pipeline/pipeline/model_eks_node_pool_volume_ebs.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/*
* Pipeline API
*
* Pipeline is a feature rich application platform, built for containers on top of Kubernetes to automate the DevOps experience, continuous application development and the lifecycle of deployments.
*
* API version: latest
* Contact: [email protected]
* Generated by: OpenAPI Generator (https://openapi-generator.tech)
*/

package pipeline

// EksNodePoolVolumeEbs - Configuration of EBS volumes mounted onto an EKS node pool node instance. EBS volumes are the default to be used, if no configuration is specified.
type EksNodePoolVolumeEbs struct {

Encryption *EksNodePoolVolumeEncryption `json:"encryption,omitempty"`

// Size of the EBS volume in GiBs of the nodes in the pool (default 50 GiB).
Size int32 `json:"size,omitempty"`

// Type of the mounted volume's storage on the node instances of the node pool.
Storage string `json:"storage"`

// Type of the EBS volume to mount on the EKS node pool node instances (default gp3).
Type string `json:"type,omitempty"`
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

package pipeline

// EksNodePoolVolumeEncryption - Encryption details of the node volumes in an EKS node pool.
// EksNodePoolVolumeEncryption - Encryption details of the instance volumes in an EKS node pool (default null -> control plane configuration -> AWS account default).
type EksNodePoolVolumeEncryption struct {

// Indicator of encrypted node pool node volumes.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/*
* Pipeline API
*
* Pipeline is a feature rich application platform, built for containers on top of Kubernetes to automate the DevOps experience, continuous application development and the lifecycle of deployments.
*
* API version: latest
* Contact: [email protected]
* Generated by: OpenAPI Generator (https://openapi-generator.tech)
*/

package pipeline

// EksNodePoolVolumeInstanceStore - Configuration of instance store volumes mounted onto an EKS node pool node instance. Instance store volumes are encrypted at rest by default using an XTS-AES-256 block cipher implemented in a hardware module on the instance. The size and type of an instance store volume is fixed based on the instance type the volume is attached to. For more details see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes.
type EksNodePoolVolumeInstanceStore struct {

// Type of the mounted volume's storage on the node instances of the node pool.
Storage string `json:"storage"`
}
18 changes: 18 additions & 0 deletions .gen/pipeline/pipeline/model_eks_node_pool_volume_none.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/*
* Pipeline API
*
* Pipeline is a feature rich application platform, built for containers on top of Kubernetes to automate the DevOps experience, continuous application development and the lifecycle of deployments.
*
* API version: latest
* Contact: [email protected]
* Generated by: OpenAPI Generator (https://openapi-generator.tech)
*/

package pipeline

// EksNodePoolVolumeNone - We need this struct to be able to remove a volume in case of an update for example.
type EksNodePoolVolumeNone struct {

// Type of the mounted volume's storage on the node instances of the node pool.
Storage string `json:"storage"`
}
19 changes: 19 additions & 0 deletions .gen/pipeline/pipeline/model_eks_node_pool_volumes.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
* Pipeline API
*
* Pipeline is a feature rich application platform, built for containers on top of Kubernetes to automate the DevOps experience, continuous application development and the lifecycle of deployments.
*
* API version: latest
* Contact: [email protected]
* Generated by: OpenAPI Generator (https://openapi-generator.tech)
*/

package pipeline

// EksNodePoolVolumes - An associative collection of EKS node pool node instance volume configuration objects keyed by their semantical volume names (example instanceRoot, kubeletRoot).
type EksNodePoolVolumes struct {

InstanceRoot *EksNodePoolVolume `json:"instanceRoot,omitempty"`

KubeletRoot *EksNodePoolVolume `json:"kubeletRoot,omitempty"`
}
2 changes: 2 additions & 0 deletions .gen/pipeline/pipeline/model_eks_update_node_pool_request.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,7 @@ type EksUpdateNodePoolRequest struct {
// Setup available instance stores (NVMe disks) to use for Kubelet root if available. As a result emptyDir volumes will be provisioned on local instance storage disks. You can check out available instance storages here https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes.
UseInstanceStore *bool `json:"useInstanceStore,omitempty"`

Volumes *EksNodePoolVolumes `json:"volumes,omitempty"`

Options BaseUpdateNodePoolOptions `json:"options,omitempty"`
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,7 @@ type EksUpdateNodePoolRequestAllOf struct {
// Setup available instance stores (NVMe disks) to use for Kubelet root if available. As a result emptyDir volumes will be provisioned on local instance storage disks. You can check out available instance storages here https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes.
UseInstanceStore *bool `json:"useInstanceStore,omitempty"`

Volumes *EksNodePoolVolumes `json:"volumes,omitempty"`

Options BaseUpdateNodePoolOptions `json:"options,omitempty"`
}
2 changes: 2 additions & 0 deletions .gen/pipeline/pipeline/model_node_pool.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,6 @@ type NodePool struct {

// Setup available instance stores (NVMe disks) to use for Kubelet root if available. As a result emptyDir volumes will be provisioned on local instance storage disks. You can check out available instance storages here https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes.
UseInstanceStore bool `json:"useInstanceStore,omitempty"`

Volumes *EksNodePoolVolumes `json:"volumes,omitempty"`
}
2 changes: 2 additions & 0 deletions .gen/pipeline/pipeline/model_node_pool_summary.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ type NodePoolSummary struct {
// Setup available instance stores (NVMe disks) to use for Kubelet root if available. As a result emptyDir volumes will be provisioned on local instance storage disks. You can check out available instance storages here https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes.
UseInstanceStore bool `json:"useInstanceStore,omitempty"`

Volumes *EksNodePoolVolumes `json:"volumes,omitempty"`

// Current status of the node pool.
Status string `json:"status,omitempty"`

Expand Down
2 changes: 2 additions & 0 deletions .gen/pipeline/pipeline/model_update_node_pool_request.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,5 +46,7 @@ type UpdateNodePoolRequest struct {
// Setup available instance stores (NVMe disks) to use for Kubelet root if available. As a result emptyDir volumes will be provisioned on local instance storage disks. You can check out available instance storages here https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes.
UseInstanceStore *bool `json:"useInstanceStore,omitempty"`

Volumes *EksNodePoolVolumes `json:"volumes,omitempty"`

Options BaseUpdateNodePoolOptions `json:"options,omitempty"`
}
2 changes: 1 addition & 1 deletion .idea/pipeline.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading