-
Notifications
You must be signed in to change notification settings - Fork 260
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: copy external-snapshotter resources to helm chart
- Loading branch information
1 parent
d3c7e62
commit 5643e5f
Showing
5 changed files
with
1,125 additions
and
0 deletions.
There are no files selected for viewing
85 changes: 85 additions & 0 deletions
85
charts/latest/csi-driver-nfs/templates/rbac-snapshot-controller.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
# RBAC file for the snapshot controller. | ||
# | ||
# The snapshot controller implements the control loop for CSI snapshot functionality. | ||
# It should be installed as part of the base Kubernetes distribution in an appropriate | ||
# namespace for components implementing base system functionality. For installing with | ||
# Vanilla Kubernetes, kube-system makes sense for the namespace. | ||
|
||
apiVersion: v1 | ||
kind: ServiceAccount | ||
metadata: | ||
name: snapshot-controller | ||
namespace: kube-system | ||
|
||
--- | ||
kind: ClusterRole | ||
apiVersion: rbac.authorization.k8s.io/v1 | ||
metadata: | ||
name: snapshot-controller-runner | ||
rules: | ||
- apiGroups: [""] | ||
resources: ["persistentvolumes"] | ||
verbs: ["get", "list", "watch"] | ||
- apiGroups: [""] | ||
resources: ["persistentvolumeclaims"] | ||
verbs: ["get", "list", "watch", "update"] | ||
- apiGroups: [""] | ||
resources: ["events"] | ||
verbs: ["list", "watch", "create", "update", "patch"] | ||
- apiGroups: ["snapshot.storage.k8s.io"] | ||
resources: ["volumesnapshotclasses"] | ||
verbs: ["get", "list", "watch"] | ||
- apiGroups: ["snapshot.storage.k8s.io"] | ||
resources: ["volumesnapshotcontents"] | ||
verbs: ["create", "get", "list", "watch", "update", "delete", "patch"] | ||
- apiGroups: ["snapshot.storage.k8s.io"] | ||
resources: ["volumesnapshotcontents/status"] | ||
verbs: ["patch"] | ||
- apiGroups: ["snapshot.storage.k8s.io"] | ||
resources: ["volumesnapshots"] | ||
verbs: ["get", "list", "watch", "update", "patch"] | ||
- apiGroups: ["snapshot.storage.k8s.io"] | ||
resources: ["volumesnapshots/status"] | ||
verbs: ["update", "patch"] | ||
# Enable this RBAC rule only when using distributed snapshotting, i.e. when the enable-distributed-snapshotting flag is set to true | ||
# - apiGroups: [""] | ||
# resources: ["nodes"] | ||
# verbs: ["get", "list", "watch"] | ||
--- | ||
kind: ClusterRoleBinding | ||
apiVersion: rbac.authorization.k8s.io/v1 | ||
metadata: | ||
name: snapshot-controller-role | ||
subjects: | ||
- kind: ServiceAccount | ||
name: snapshot-controller | ||
namespace: kube-system | ||
roleRef: | ||
kind: ClusterRole | ||
name: snapshot-controller-runner | ||
apiGroup: rbac.authorization.k8s.io | ||
|
||
--- | ||
kind: Role | ||
apiVersion: rbac.authorization.k8s.io/v1 | ||
metadata: | ||
name: snapshot-controller-leaderelection | ||
namespace: kube-system | ||
rules: | ||
- apiGroups: ["coordination.k8s.io"] | ||
resources: ["leases"] | ||
verbs: ["get", "watch", "list", "delete", "update", "create"] | ||
|
||
--- | ||
kind: RoleBinding | ||
apiVersion: rbac.authorization.k8s.io/v1 | ||
metadata: | ||
name: snapshot-controller-leaderelection | ||
namespace: kube-system | ||
subjects: | ||
- kind: ServiceAccount | ||
name: snapshot-controller | ||
roleRef: | ||
kind: Role | ||
name: snapshot-controller-leaderelection | ||
apiGroup: rbac.authorization.k8s.io |
40 changes: 40 additions & 0 deletions
40
charts/latest/csi-driver-nfs/templates/setup-snapshot-controller.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# This YAML file shows how to deploy the snapshot controller | ||
|
||
# The snapshot controller implements the control loop for CSI snapshot functionality. | ||
# It should be installed as part of the base Kubernetes distribution in an appropriate | ||
# namespace for components implementing base system functionality. For installing with | ||
# Vanilla Kubernetes, kube-system makes sense for the namespace. | ||
|
||
--- | ||
kind: Deployment | ||
apiVersion: apps/v1 | ||
metadata: | ||
name: snapshot-controller | ||
namespace: kube-system | ||
spec: | ||
replicas: 2 | ||
selector: | ||
matchLabels: | ||
app: snapshot-controller | ||
# the snapshot controller won't be marked as ready if the v1 CRDs are unavailable | ||
# in #504 the snapshot-controller will exit after around 7.5 seconds if it | ||
# can't find the v1 CRDs so this value should be greater than that | ||
minReadySeconds: 15 | ||
strategy: | ||
rollingUpdate: | ||
maxSurge: 0 | ||
maxUnavailable: 1 | ||
type: RollingUpdate | ||
template: | ||
metadata: | ||
labels: | ||
app: snapshot-controller | ||
spec: | ||
serviceAccountName: snapshot-controller | ||
containers: | ||
- name: snapshot-controller | ||
image: registry.k8s.io/sig-storage/snapshot-controller:v6.1.0 | ||
args: | ||
- "--v=5" | ||
- "--leader-election=true" | ||
imagePullPolicy: IfNotPresent |
144 changes: 144 additions & 0 deletions
144
charts/latest/csi-driver-nfs/templates/snapshot.storage.k8s.io_volumesnapshotclasses.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,144 @@ | ||
--- | ||
apiVersion: apiextensions.k8s.io/v1 | ||
kind: CustomResourceDefinition | ||
metadata: | ||
annotations: | ||
controller-gen.kubebuilder.io/version: v0.8.0 | ||
api-approved.kubernetes.io: https://github.com/kubernetes-csi/external-snapshotter/pull/665 | ||
name: volumesnapshotclasses.snapshot.storage.k8s.io | ||
spec: | ||
group: snapshot.storage.k8s.io | ||
names: | ||
kind: VolumeSnapshotClass | ||
listKind: VolumeSnapshotClassList | ||
plural: volumesnapshotclasses | ||
shortNames: [vsclass, vsclasses] | ||
singular: volumesnapshotclass | ||
scope: Cluster | ||
versions: | ||
- additionalPrinterColumns: | ||
- jsonPath: .driver | ||
name: Driver | ||
type: string | ||
- description: Determines whether a VolumeSnapshotContent created through | ||
the VolumeSnapshotClass should be deleted when its bound VolumeSnapshot | ||
is deleted. | ||
jsonPath: .deletionPolicy | ||
name: DeletionPolicy | ||
type: string | ||
- jsonPath: .metadata.creationTimestamp | ||
name: Age | ||
type: date | ||
name: v1 | ||
schema: | ||
openAPIV3Schema: | ||
description: VolumeSnapshotClass specifies parameters that a underlying | ||
storage system uses when creating a volume snapshot. A specific VolumeSnapshotClass | ||
is used by specifying its name in a VolumeSnapshot object. VolumeSnapshotClasses | ||
are non-namespaced | ||
properties: | ||
apiVersion: | ||
description: 'APIVersion defines the versioned schema of this representation | ||
of an object. Servers should convert recognized schemas to the latest | ||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' | ||
type: string | ||
deletionPolicy: | ||
description: deletionPolicy determines whether a VolumeSnapshotContent | ||
created through the VolumeSnapshotClass should be deleted when its | ||
bound VolumeSnapshot is deleted. Supported values are "Retain" and | ||
"Delete". "Retain" means that the VolumeSnapshotContent and its physical | ||
snapshot on underlying storage system are kept. "Delete" means that | ||
the VolumeSnapshotContent and its physical snapshot on underlying | ||
storage system are deleted. Required. | ||
enum: [Delete, Retain] | ||
type: string | ||
driver: | ||
description: driver is the name of the storage driver that handles this | ||
VolumeSnapshotClass. Required. | ||
type: string | ||
kind: | ||
description: 'Kind is a string value representing the REST resource | ||
this object represents. Servers may infer this from the endpoint the | ||
client submits requests to. Cannot be updated. In CamelCase. More | ||
info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | ||
type: string | ||
parameters: | ||
additionalProperties: | ||
type: string | ||
description: parameters is a key-value map with storage driver specific | ||
parameters for creating snapshots. These values are opaque to Kubernetes. | ||
type: object | ||
required: [deletionPolicy, driver] | ||
type: object | ||
served: true | ||
storage: true | ||
subresources: {} | ||
- additionalPrinterColumns: | ||
- jsonPath: .driver | ||
name: Driver | ||
type: string | ||
- description: Determines whether a VolumeSnapshotContent created through | ||
the VolumeSnapshotClass should be deleted when its bound VolumeSnapshot | ||
is deleted. | ||
jsonPath: .deletionPolicy | ||
name: DeletionPolicy | ||
type: string | ||
- jsonPath: .metadata.creationTimestamp | ||
name: Age | ||
type: date | ||
name: v1beta1 | ||
# This indicates the v1beta1 version of the custom resource is deprecated. | ||
# API requests to this version receive a warning in the server response. | ||
deprecated: true | ||
# This overrides the default warning returned to clients making v1beta1 API requests. | ||
deprecationWarning: snapshot.storage.k8s.io/v1beta1 VolumeSnapshotClass is deprecated; | ||
use snapshot.storage.k8s.io/v1 VolumeSnapshotClass | ||
schema: | ||
openAPIV3Schema: | ||
description: VolumeSnapshotClass specifies parameters that a underlying | ||
storage system uses when creating a volume snapshot. A specific VolumeSnapshotClass | ||
is used by specifying its name in a VolumeSnapshot object. VolumeSnapshotClasses | ||
are non-namespaced | ||
properties: | ||
apiVersion: | ||
description: 'APIVersion defines the versioned schema of this representation | ||
of an object. Servers should convert recognized schemas to the latest | ||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' | ||
type: string | ||
deletionPolicy: | ||
description: deletionPolicy determines whether a VolumeSnapshotContent | ||
created through the VolumeSnapshotClass should be deleted when its | ||
bound VolumeSnapshot is deleted. Supported values are "Retain" and | ||
"Delete". "Retain" means that the VolumeSnapshotContent and its physical | ||
snapshot on underlying storage system are kept. "Delete" means that | ||
the VolumeSnapshotContent and its physical snapshot on underlying | ||
storage system are deleted. Required. | ||
enum: [Delete, Retain] | ||
type: string | ||
driver: | ||
description: driver is the name of the storage driver that handles this | ||
VolumeSnapshotClass. Required. | ||
type: string | ||
kind: | ||
description: 'Kind is a string value representing the REST resource | ||
this object represents. Servers may infer this from the endpoint the | ||
client submits requests to. Cannot be updated. In CamelCase. More | ||
info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' | ||
type: string | ||
parameters: | ||
additionalProperties: | ||
type: string | ||
description: parameters is a key-value map with storage driver specific | ||
parameters for creating snapshots. These values are opaque to Kubernetes. | ||
type: object | ||
required: [deletionPolicy, driver] | ||
type: object | ||
served: false | ||
storage: false | ||
subresources: {} | ||
status: | ||
acceptedNames: | ||
kind: '' | ||
plural: '' | ||
conditions: [] | ||
storedVersions: [] |
Oops, something went wrong.