...

Text file src/k8s.io/kubernetes/test/cmd/storage.sh

Documentation: k8s.io/kubernetes/test/cmd

     1#!/usr/bin/env bash
     2
     3# Copyright 2018 The Kubernetes Authors.
     4#
     5# Licensed under the Apache License, Version 2.0 (the "License");
     6# you may not use this file except in compliance with the License.
     7# You may obtain a copy of the License at
     8#
     9#     http://www.apache.org/licenses/LICENSE-2.0
    10#
    11# Unless required by applicable law or agreed to in writing, software
    12# distributed under the License is distributed on an "AS IS" BASIS,
    13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14# See the License for the specific language governing permissions and
    15# limitations under the License.
    16
    17set -o errexit
    18set -o nounset
    19set -o pipefail
    20
    21run_persistent_volumes_tests() {
    22  set -o nounset
    23  set -o errexit
    24
    25  create_and_use_new_namespace
    26  kube::log::status "Testing persistent volumes"
    27
    28  ### Create and delete persistent volume examples
    29  # Pre-condition: no persistent volumes currently exist
    30  kube::test::get_object_assert pv "{{range.items}}{{${id_field:?}}}:{{end}}" ''
    31  # Command
    32  kubectl create -f test/fixtures/doc-yaml/user-guide/persistent-volumes/volumes/local-01.yaml "${kube_flags[@]:?}"
    33  kube::test::get_object_assert pv "{{range.items}}{{${id_field:?}}}:{{end}}" 'pv0001:'
    34  kubectl delete pv pv0001 "${kube_flags[@]:?}"
    35  kubectl create -f test/fixtures/doc-yaml/user-guide/persistent-volumes/volumes/local-02.yaml "${kube_flags[@]:?}"
    36  kube::test::get_object_assert pv "{{range.items}}{{${id_field:?}}}:{{end}}" 'pv0002:'
    37  kubectl delete pv pv0002 "${kube_flags[@]:?}"
    38  kubectl create -f test/fixtures/doc-yaml/user-guide/persistent-volumes/volumes/gce.yaml "${kube_flags[@]:?}"
    39  kube::test::get_object_assert pv "{{range.items}}{{${id_field:?}}}:{{end}}" 'pv0003:'
    40  # Describe command should respect the chunk size parameter
    41  kube::test::describe_resource_chunk_size_assert persistentvolumes events
    42  kubectl delete pv pv0003 "${kube_flags[@]:?}"
    43  # Post-condition: no PVs
    44  kube::test::get_object_assert pv "{{range.items}}{{${id_field:?}}}:{{end}}" ''
    45
    46  kubectl create -f test/fixtures/doc-yaml/user-guide/persistent-volumes/volumes/local-01.yaml "${kube_flags[@]}"
    47  kube::test::get_object_assert pv "{{range.items}}{{$id_field}}:{{end}}" 'pv0001:'
    48  output_message=$(kubectl delete pv -n test --all 2>&1 "${kube_flags[@]}")
    49  kube::test::if_has_string "${output_message}" 'Warning: deleting cluster-scoped resources'
    50  kube::test::if_has_string "${output_message}" 'persistentvolume "pv0001" deleted'
    51  kube::test::get_object_assert pv "{{range.items}}{{$id_field}}:{{end}}" ''
    52
    53  set +o nounset
    54  set +o errexit
    55}
    56
    57run_persistent_volume_claims_tests() {
    58  set -o nounset
    59  set -o errexit
    60
    61  create_and_use_new_namespace
    62  kube::log::status "Testing persistent volumes claims"
    63
    64  ### Create and delete persistent volume claim examples
    65  # Pre-condition: no persistent volume claims currently exist
    66  kube::test::get_object_assert pvc "{{range.items}}{{${id_field:?}}}:{{end}}" ''
    67  # Command
    68  kubectl create -f test/fixtures/doc-yaml/user-guide/persistent-volumes/claims/claim-01.yaml "${kube_flags[@]:?}"
    69  kube::test::get_object_assert pvc "{{range.items}}{{${id_field:?}}}:{{end}}" 'myclaim-1:'
    70  # Describe command should respect the chunk size parameter
    71  kube::test::describe_resource_chunk_size_assert persistentvolumeclaims pods,events
    72  kubectl delete pvc myclaim-1 "${kube_flags[@]:?}"
    73
    74  kubectl create -f test/fixtures/doc-yaml/user-guide/persistent-volumes/claims/claim-02.yaml "${kube_flags[@]:?}"
    75  kube::test::get_object_assert pvc "{{range.items}}{{${id_field:?}}}:{{end}}" 'myclaim-2:'
    76  kubectl delete pvc myclaim-2 "${kube_flags[@]:?}"
    77
    78  kubectl create -f test/fixtures/doc-yaml/user-guide/persistent-volumes/claims/claim-03.json "${kube_flags[@]:?}"
    79  kube::test::get_object_assert pvc "{{range.items}}{{${id_field:?}}}:{{end}}" 'myclaim-3:'
    80  kubectl delete pvc myclaim-3 "${kube_flags[@]:?}"
    81  # Post-condition: no PVCs
    82  kube::test::get_object_assert pvc "{{range.items}}{{${id_field:?}}}:{{end}}" ''
    83
    84  set +o nounset
    85  set +o errexit
    86}
    87
    88run_storage_class_tests() {
    89  set -o nounset
    90  set -o errexit
    91
    92  kube::log::status "Testing storage class"
    93
    94  ### Create and delete storage class
    95  # Pre-condition: no storage classes currently exist
    96  kube::test::get_object_assert storageclass "{{range.items}}{{${id_field:?}}}:{{end}}" ''
    97  # Command
    98  kubectl create -f - "${kube_flags[@]:?}" << __EOF__
    99{
   100  "kind": "StorageClass",
   101  "apiVersion": "storage.k8s.io/v1",
   102  "metadata": {
   103  "name": "storage-class-name"
   104  },
   105  "provisioner": "kubernetes.io/fake-provisioner-type",
   106  "parameters": {
   107  "zone":"us-east-1b",
   108  "type":"ssd"
   109  }
   110}
   111__EOF__
   112  kube::test::get_object_assert storageclass "{{range.items}}{{${id_field:?}}}:{{end}}" 'storage-class-name:'
   113  kube::test::get_object_assert sc "{{range.items}}{{${id_field:?}}}:{{end}}" 'storage-class-name:'
   114  # Describe command should respect the chunk size parameter
   115  kube::test::describe_resource_chunk_size_assert storageclasses events
   116  kubectl delete storageclass storage-class-name "${kube_flags[@]:?}"
   117  # Post-condition: no storage classes
   118  kube::test::get_object_assert storageclass "{{range.items}}{{${id_field:?}}}:{{end}}" ''
   119
   120  set +o nounset
   121  set +o errexit
   122
   123}

View as plain text