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

add new command kubectl set volume #54284

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs/.generated_docs
Expand Up @@ -217,6 +217,7 @@ docs/man/man1/kubectl-set-resources.1
docs/man/man1/kubectl-set-selector.1
docs/man/man1/kubectl-set-serviceaccount.1
docs/man/man1/kubectl-set-subject.1
docs/man/man1/kubectl-set-volumes.1
docs/man/man1/kubectl-set.1
docs/man/man1/kubectl-taint.1
docs/man/man1/kubectl-top-node.1
Expand Down Expand Up @@ -316,6 +317,7 @@ docs/user-guide/kubectl/kubectl_set_resources.md
docs/user-guide/kubectl/kubectl_set_selector.md
docs/user-guide/kubectl/kubectl_set_serviceaccount.md
docs/user-guide/kubectl/kubectl_set_subject.md
docs/user-guide/kubectl/kubectl_set_volumes.md
docs/user-guide/kubectl/kubectl_taint.md
docs/user-guide/kubectl/kubectl_top.md
docs/user-guide/kubectl/kubectl_top_node.md
Expand Down
3 changes: 3 additions & 0 deletions docs/man/man1/kubectl-set-volumes.1
@@ -0,0 +1,3 @@
This file is autogenerated, but we've stopped checking such files into the
repository to reduce the need for rebases. Please run hack/generate-docs.sh to
populate this file.
3 changes: 3 additions & 0 deletions docs/user-guide/kubectl/kubectl_set_volumes.md
@@ -0,0 +1,3 @@
This file is autogenerated, but we've stopped checking such files into the
repository to reduce the need for rebases. Please run hack/generate-docs.sh to
populate this file.
27 changes: 27 additions & 0 deletions hack/make-rules/test-cmd-util.sh
Expand Up @@ -2943,6 +2943,33 @@ run_deployment_tests() {
kubectl delete configmap test-set-env-config "${kube_flags[@]}"
kubectl delete secret test-set-env-secret "${kube_flags[@]}"

### Set volume of a deployment
# Pre-condition: no deployment exists
kube::test::get_object_assert deployment "{{range.items}}{{$id_field}}:{{end}}" ''
# Create a deployment
kubectl create -f hack/testdata/deployment-multicontainer.yaml "${kube_flags[@]}"
kubectl create -f hack/testdata/configmap.yaml "${kube_flags[@]}"
kubectl create -f hack/testdata/secret.yaml "${kube_flags[@]}"
kube::test::get_object_assert deployment "{{range.items}}{{$id_field}}:{{end}}" 'nginx-deployment:'
kube::test::get_object_assert configmap "{{range.items}}{{$id_field}}:{{end}}" 'test-set-env-config:'
kube::test::get_object_assert secret "{{range.items}}{{$id_field}}:{{end}}" 'test-set-env-secret:'
# Set volume of deployments for all container
kubectl set volume deployment nginx-deployment --add --mount-path=/mount-point-1 "${kube_flags[@]}"
# Set volume of deployments for specific container
kubectl set volume deployment nginx-deployment --add --mount-path=/mount-point-2 -c=nginx "${kube_flags[@]}"
# Set volume of deployments by configmap
kubectl set volume deployment nginx-deployment --add --type=configmap --configmap-name=test-set-env-config --name=configmap-volume --mount-path=/test-configmap "${kube_flags[@]}"
# Set volume of deployments by secret
kubectl set volume deployment nginx-deployment --add --type=secret --secret-name=test-set-env-secret --name=secret-volume --mount-path=/test-secret "${kube_flags[@]}"
# Set volume of deployments by local dir
kubectl set volume deployment nginx-deployment --add --type=hostPath --path=. --name=local-volume --mount-path=/test-local "${kube_flags[@]}"
# Remove specific volume of deployment
kubectl set volume deployment nginx-deployment --remove --name=local-volume "${kube_flags[@]}"
# Clean up
kubectl delete deployment nginx-deployment "${kube_flags[@]}"
kubectl delete configmap test-set-env-config "${kube_flags[@]}"
kubectl delete secret test-set-env-secret "${kube_flags[@]}"

### Delete a deployment with initializer
# Pre-condition: no deployment exists
kube::test::get_object_assert deployment "{{range.items}}{{$id_field}}:{{end}}" ''
Expand Down
10 changes: 10 additions & 0 deletions pkg/kubectl/cmd/set/BUILD
Expand Up @@ -15,6 +15,7 @@ go_library(
"set_selector.go",
"set_serviceaccount.go",
"set_subject.go",
"set_volume.go",
],
importpath = "k8s.io/kubernetes/pkg/kubectl/cmd/set",
visibility = ["//build/visible_to:pkg_kubectl_cmd_set_CONSUMERS"],
Expand All @@ -28,18 +29,24 @@ go_library(
"//pkg/kubectl/cmd/util/env:go_default_library",
"//pkg/kubectl/resource:go_default_library",
"//pkg/kubectl/util/i18n:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/labels:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/types:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/strategicpatch:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/validation:go_default_library",
"//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library",
"//vendor/k8s.io/client-go/kubernetes:go_default_library",
"//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library",
],
)

Expand All @@ -53,6 +60,7 @@ go_test(
"set_serviceaccount_test.go",
"set_subject_test.go",
"set_test.go",
"set_volume_test.go",
],
data = [
"//examples:config",
Expand Down Expand Up @@ -80,9 +88,11 @@ go_test(
"//vendor/k8s.io/api/batch/v1:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/api/extensions/v1beta1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//vendor/k8s.io/client-go/kubernetes/fake:go_default_library",
"//vendor/k8s.io/client-go/rest:go_default_library",
"//vendor/k8s.io/client-go/rest/fake:go_default_library",
],
Expand Down
1 change: 1 addition & 0 deletions pkg/kubectl/cmd/set/set.go
Expand Up @@ -47,6 +47,7 @@ func NewCmdSet(f cmdutil.Factory, in io.Reader, out, err io.Writer) *cobra.Comma
cmd.AddCommand(NewCmdSubject(f, out, err))
cmd.AddCommand(NewCmdServiceAccount(f, out, err))
cmd.AddCommand(NewCmdEnv(f, in, out, err))
cmd.AddCommand(NewCmdVolume(f, out, err))

return cmd
}