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

--feature-gate is no longer present in csi-snapshotter causing container to fail. #15221

Closed
DeprecatedLuke opened this issue Dec 28, 2024 · 6 comments
Labels

Comments

@DeprecatedLuke
Copy link

DeprecatedLuke commented Dec 28, 2024

Is this a bug report or feature request?

  • Bug Report

The '--feature-gate=CSIVolumeGroupSnapshot=true' is passed into csi-cephfs-plugin provisioner and csi-rbdplugin-provisioner in release v1.16, appears to be related to container-storage-interface/spec#573.

The container will not start until the flag is removed from the deployment. However, the documentation is inconsistent since https://github.com/kubernetes-csi/external-snapshotter still claims that --feature-gate flag is required. (kubernetes-csi/external-snapshotter#1223)

Tested versions:

  • registry.k8s.io/sig-storage/csi-snapshotter:v8.2.0
  • registry.k8s.io/sig-storage/csi-snapshotter:v8.0.1 (default)

Looking more into it, appears to be a typo. --feature-gate vs --feature-gates


flag provided but not defined: -feature-gate
Usage of /csi-snapshotter:
-add_dir_header
If true, adds the file directory to the header of the log messages
-alsologtostderr
log to standard error as well as files (no effect when -logtostderr=true)
-csi-address string
Address of the CSI driver socket. (default "/run/csi/socket")
-extra-create-metadata
If set, add snapshot metadata to plugin snapshot requests as parameters.
-feature-gates value
Comma-seprated list of key=value pairs that describe feature gates for alpha/experimental features. Options are:
AllAlpha=true|false (ALPHA - default=false)
AllBeta=true|false (BETA - default=false)
CSIVolumeGroupSnapshot=true|false (BETA - default=false)
-groupsnapshot-name-prefix string
Prefix to apply to the name of a created group snapshot (default "groupsnapshot")
-groupsnapshot-name-uuid-length int
Length in characters for the generated uuid of a created group snapshot. Defaults behavior is to NOT truncate. (default -1)
-http-endpoint :8080
The TCP network address where the HTTP server for diagnostics, including metrics and leader election health check, will listen (example: :8080). The default is empty string, which means the server is disabled. Only one of `--metrics-address` and `--http-endpoint` can be set.
-kube-api-burst int
Burst to use while communicating with the kubernetes apiserver. Defaults to 10. (default 10)
-kube-api-qps float
QPS to use while communicating with the kubernetes apiserver. Defaults to 5.0. (default 5)
-kubeconfig string
Absolute path to the kubeconfig file. Required only when running out of cluster.
-leader-election
Enables leader election.
-leader-election-lease-duration duration
Duration, in seconds, that non-leader candidates will wait to force acquire leadership. Defaults to 15 seconds. (default 15s)
-leader-election-namespace string
The namespace where the leader election resource exists. Defaults to the pod namespace if not set.
-leader-election-renew-deadline duration
Duration, in seconds, that the acting leader will retry refreshing leadership before giving up. Defaults to 10 seconds. (default 10s)
-leader-election-retry-period duration
Duration, in seconds, the LeaderElector clients should wait between tries of actions. Defaults to 5 seconds. (default 5s)
-log_backtrace_at value
when logging hits line file:N, emit a stack trace
-log_dir string
If non-empty, write log files in this directory (no effect when -logtostderr=true)
-log_file string
If non-empty, use this log file (no effect when -logtostderr=true)
-log_file_max_size uint
Defines the maximum size a log file can grow to (no effect when -logtostderr=true). Unit is megabytes. If the value is 0, the maximum file size is unlimited. (default 1800)
@DeprecatedLuke
Copy link
Author

DeprecatedLuke commented Dec 28, 2024

Appears to be fixed in 477b7fd which is part of the v1.16.0 release, but the helm chart does not include such fix even though the version is docker.io/rook/ceph:v1.16.0.

@DeprecatedLuke
Copy link
Author

Tracked it down to an transparent helm upgrade conflict.

@DeprecatedLuke
Copy link
Author

DeprecatedLuke commented Dec 28, 2024

v1.16 Helm Chart should use v8.2.0 as v8.0.1 does not have --feature-gates

  snapshotter:
    # -- Kubernetes CSI snapshotter image repository
    repository: registry.k8s.io/sig-storage/csi-snapshotter
    # -- Snapshotter image tag
    tag: v8.2.0

@warstrolo
Copy link

For what I have seen and my latest installation, this is included in the latest chart, the problem to the issue does not reside in the chart but in the operator code.

The operator does not check the version of CSI snapshoter that is deployed against the params it gives.

@DeprecatedLuke
Copy link
Author

For what I have seen and my latest installation, this is included in the latest chart, the problem to the issue does not reside in the chart but in the operator code.

The operator does not check the version of CSI snapshoter that is deployed against the params it gives.

Actually the operator helm chart just has the v8.0.1 version.

@DeprecatedLuke
Copy link
Author

Appears to be fixed in later v1.16.0 releases. Pulled an older version of v1.16.0?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants