Add fsType to aws-ebs (#10041)

* Add fsType to aws-ebs

* trivial changes to kick redeploy
This commit is contained in:
makocchi
2018-08-23 06:38:12 +09:00
committed by k8s-ci-robot
parent 80715640b3
commit e4c4652a31
@@ -11,14 +11,12 @@ weight: 30
{{% capture overview %}} {{% capture overview %}}
This document describes the concept of `StorageClass` in Kubernetes. Familiarity This document describes the concept of a StorageClass in Kubernetes. Familiarity
with [volumes](/docs/concepts/storage/volumes/) and with [volumes](/docs/concepts/storage/volumes/) and
[persistent volumes](/docs/concepts/storage/persistent-volumes) is suggested. [persistent volumes](/docs/concepts/storage/persistent-volumes) is suggested.
{{% /capture %}} {{% /capture %}}
{{< toc >}}
{{% capture body %}} {{% capture body %}}
## Introduction ## Introduction
@@ -140,6 +138,7 @@ parameters:
type: io1 type: io1
zones: us-east-1d, us-east-1c zones: us-east-1d, us-east-1c
iopsPerGB: "10" iopsPerGB: "10"
fsType: ext4
``` ```
* `type`: `io1`, `gp2`, `sc1`, `st1`. See * `type`: `io1`, `gp2`, `sc1`, `st1`. See
@@ -157,6 +156,7 @@ parameters:
of the volume and caps it at 20 000 IOPS (maximum supported by AWS, see of the volume and caps it at 20 000 IOPS (maximum supported by AWS, see
[AWS docs](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html). [AWS docs](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html).
A string is expected here, i.e. `"10"`, not `10`. A string is expected here, i.e. `"10"`, not `10`.
* `fsType`: fsType that is supported by kubernetes. Default: `"ext4"`.
* `encrypted`: denotes whether the EBS volume should be encrypted or not. * `encrypted`: denotes whether the EBS volume should be encrypted or not.
Valid values are `"true"` or `"false"`. A string is expected here, Valid values are `"true"` or `"false"`. A string is expected here,
i.e. `"true"`, not `true`. i.e. `"true"`, not `true`.
@@ -240,13 +240,16 @@ parameters:
parameters are optional, empty password will be used when both parameters are optional, empty password will be used when both
`secretNamespace` and `secretName` are omitted. The provided secret must have `secretNamespace` and `secretName` are omitted. The provided secret must have
type `"kubernetes.io/glusterfs"`, e.g. created in this way: type `"kubernetes.io/glusterfs"`, e.g. created in this way:
``` ```
kubectl create secret generic heketi-secret \ kubectl create secret generic heketi-secret \
--type="kubernetes.io/glusterfs" --from-literal=key='opensesame' \ --type="kubernetes.io/glusterfs" --from-literal=key='opensesame' \
--namespace=default --namespace=default
``` ```
Example of a secret can be found in Example of a secret can be found in
[glusterfs-provisioning-secret.yaml](https://github.com/kubernetes/examples/tree/master/staging/persistent-volume-provisioning/glusterfs/glusterfs-secret.yaml). [glusterfs-provisioning-secret.yaml](https://github.com/kubernetes/examples/tree/master/staging/persistent-volume-provisioning/glusterfs/glusterfs-secret.yaml).
* `clusterid`: `630372ccdc720a92c681fb928f27b53f` is the ID of the cluster * `clusterid`: `630372ccdc720a92c681fb928f27b53f` is the ID of the cluster
which will be used by Heketi when provisioning the volume. It can also be a which will be used by Heketi when provisioning the volume. It can also be a
list of clusterids, for example: list of clusterids, for example:
@@ -260,13 +263,11 @@ parameters:
* `volumetype` : The volume type and its parameters can be configured with this * `volumetype` : The volume type and its parameters can be configured with this
optional value. If the volume type is not mentioned, it's up to the provisioner optional value. If the volume type is not mentioned, it's up to the provisioner
to decide the volume type. to decide the volume type.
For example: For example:
'Replica volume': * Replica volume: `volumetype: replicate:3` where '3' is replica count.
`volumetype: replicate:3` where '3' is replica count. * Disperse/EC volume: `volumetype: disperse:4:2` where '4' is data and '2' is the redundancy count.
'Disperse/EC volume': * Distribute volume: `volumetype: none`
`volumetype: disperse:4:2` where '4' is data and '2' is the redundancy count.
'Distribute volume':
`volumetype: none`
For available volume types and administration options, refer to the For available volume types and administration options, refer to the
[Administration Guide](https://access.redhat.com/documentation/en-US/Red_Hat_Storage/3.1/html/Administration_Guide/part-Overview.html). [Administration Guide](https://access.redhat.com/documentation/en-US/Red_Hat_Storage/3.1/html/Administration_Guide/part-Overview.html).
@@ -306,6 +307,7 @@ This internal provisioner of OpenStack is deprecated. Please use [the external c
1. Create a StorageClass with a user specified disk format. 1. Create a StorageClass with a user specified disk format.
```yaml
kind: StorageClass kind: StorageClass
apiVersion: storage.k8s.io/v1 apiVersion: storage.k8s.io/v1
metadata: metadata:
@@ -313,11 +315,13 @@ This internal provisioner of OpenStack is deprecated. Please use [the external c
provisioner: kubernetes.io/vsphere-volume provisioner: kubernetes.io/vsphere-volume
parameters: parameters:
diskformat: zeroedthick diskformat: zeroedthick
```
`diskformat`: `thin`, `zeroedthick` and `eagerzeroedthick`. Default: `"thin"`. `diskformat`: `thin`, `zeroedthick` and `eagerzeroedthick`. Default: `"thin"`.
2. Create a StorageClass with a disk format on a user specified datastore. 2. Create a StorageClass with a disk format on a user specified datastore.
```yaml
kind: StorageClass kind: StorageClass
apiVersion: storage.k8s.io/v1 apiVersion: storage.k8s.io/v1
metadata: metadata:
@@ -326,6 +330,7 @@ This internal provisioner of OpenStack is deprecated. Please use [the external c
parameters: parameters:
diskformat: zeroedthick diskformat: zeroedthick
datastore: VSANDatastore datastore: VSANDatastore
```
`datastore`: The user can also specify the datastore in the StorageClass. `datastore`: The user can also specify the datastore in the StorageClass.
The volume will be created on the datastore specified in the storage class, The volume will be created on the datastore specified in the storage class,
@@ -402,7 +407,8 @@ parameters:
must exist in the same namespace as PVCs. This parameter is required. must exist in the same namespace as PVCs. This parameter is required.
The provided secret must have type "kubernetes.io/rbd", e.g. created in this The provided secret must have type "kubernetes.io/rbd", e.g. created in this
way: way:
```
```shell
kubectl create secret generic ceph-secret --type="kubernetes.io/rbd" \ kubectl create secret generic ceph-secret --type="kubernetes.io/rbd" \
--from-literal=key='QVFEQ1pMdFhPUnQrSmhBQUFYaERWNHJsZ3BsMmNjcDR6RFZST0E9PQ==' \ --from-literal=key='QVFEQ1pMdFhPUnQrSmhBQUFYaERWNHJsZ3BsMmNjcDR6RFZST0E9PQ==' \
--namespace=kube-system --namespace=kube-system
@@ -445,11 +451,13 @@ parameters:
* `adminSecretName`: secret that holds information about the Quobyte user and * `adminSecretName`: secret that holds information about the Quobyte user and
the password to authenticate against the API server. The provided secret the password to authenticate against the API server. The provided secret
must have type "kubernetes.io/quobyte", e.g. created in this way: must have type "kubernetes.io/quobyte", e.g. created in this way:
```
```shell
kubectl create secret generic quobyte-admin-secret \ kubectl create secret generic quobyte-admin-secret \
--type="kubernetes.io/quobyte" --from-literal=key='opensesame' \ --type="kubernetes.io/quobyte" --from-literal=key='opensesame' \
--namespace=kube-system --namespace=kube-system
``` ```
* `user`: maps all access to this user. Default is "root". * `user`: maps all access to this user. Default is "root".
* `group`: maps all access to this group. Default is "nfsnobody". * `group`: maps all access to this group. Default is "nfsnobody".
* `quobyteConfig`: use the specified configuration to create the volume. You * `quobyteConfig`: use the specified configuration to create the volume. You