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

operator vast-csi-operator (v2.5.0) #4462

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions operators/vast-csi-operator/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
cert_project_id: 66e6bfbd61883e74d5e5f7a1
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: vastclusters.storage.vastdata.com
spec:
group: storage.vastdata.com
names:
kind: VastCluster
listKind: VastClusterList
plural: vastclusters
singular: vastcluster
scope: Namespaced
versions:
- name: v1
schema:
openAPIV3Schema:
description: VastCluster is the Schema for the vastclusters API
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
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
metadata:
type: object
spec:
description: Spec defines the desired state of VastCluster.
properties:
endpoint:
description: Endpoint or URL of the VAST mgmt host.
type: string
password:
description: Password used for authentication.
type: string
sslCert:
description: Optional SSL certificate for secure connections.
nullable: true
type: string
username:
description: Username used for authentication.
type: string
required:
- endpoint
- username
- password
type: object
status:
description: Status defines the observed state of VastCluster
type: object
x-kubernetes-preserve-unknown-fields: true
type: object
served: true
storage: true
subresources:
status: {}

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: vaststorages.storage.vastdata.com
spec:
group: storage.vastdata.com
names:
kind: VastStorage
listKind: VastStorageList
plural: vaststorages
singular: vaststorage
scope: Namespaced
versions:
- additionalPrinterColumns:
- description: Secret
jsonPath: .spec.secretName
name: Secret
type: string
- description: Storage Class
jsonPath: .spec.storageClass.name
name: StorageClass
type: string
- description: Snapshot Class
jsonPath: .spec.snapshotClass.name
name: SnapshotClass
type: string
name: v1
schema:
openAPIV3Schema:
description: VastStorage is the Schema for the vaststorages API
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
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
metadata:
type: object
spec:
description: Spec defines the desired state of VastStorage.
properties:
allowVolumeExpansion:
default: true
description: Allows resizing existing volumes.
type: boolean
clusterName:
description: The name of VastCluster reference.
type: string
createSnapshotClass:
default: true
description: Create SnapshotClass for VastStorage.
type: boolean
ephemeralVolumeNameFormat:
default: csi:{namespace}:{name}:{id}
description: String template for CSI-provisioned ephemeral volumes, within VAST.
type: string
mountOptions:
default: []
description: Add any extra mount NFS options here.
items:
type: string
type: array
qosPolicy:
description: Name of QoS policy associated with the view.
nullable: true
type: string
reclaimPolicy:
default: Delete
description: Reclaim policy defines what happens to the volume when the corresponding PersistentVolumeClaim (PVC) is deleted. See https://kubernetes.io/docs/concepts/storage/storage-classes/#reclaim-policy for more details.
enum:
- Delete
- Retain
type: string
setDefaultStorageClass:
default: false
description: When enabled, Vast CSI will be set as the default storage class for the entire Kubernetes cluster. This means Vast CSI will automatically be chosen as the storage class for persistent volume claims (PVCs) that do not specify a storage class. See https://kubernetes.io/docs/concepts/storage/storage-classes/#default-storageclass for more details.
type: boolean
snapshotClass:
description: VolumeSnapshotClass definition.
properties:
deletionPolicy:
default: Delete
description: Specifies the deletion policy for snapshots associated with this snapshot class. See https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes/#deletionpolicy for more details.
enum:
- Delete
- Retain
type: string
setDefaultSnapshotClass:
default: false
description: When enabled, this sets the VAST CSI Snapshot Class as the default for creating volume snapshots. This means VAST CSI Snapshot Class will be used automatically when volume snapshots are created without specifying a snapshot class. See https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes/#the-volumesnapshotclass-resource for more details.
type: boolean
snapshotNameFormat:
default: csi:{namespace}:{name}:{id}
type: string
type: object
storagePath:
description: Base path where volumes will be located on VAST.
type: string
viewPolicy:
description: VAST policy name to create views.
type: string
vipPool:
description: Name of VAST VIP pool to use.
nullable: true
type: string
vipPoolFQDN:
description: "The FQDN of the VIP pool to use. Must specify either vipPool or vipPoolFQDN.\nUsing a DNS skips an API call to the VMS for obtaining a random VIP from the vipPool, \nleading to faster volume mounting.\nNOTE: The driver will prepend the FQDN with a random prefix, which forces the NFS client \nto resolve into a different VIP, thereby distributing the load across the entire range \nof the VIP pool."
nullable: true
type: string
volumeNameFormat:
default: csi:{namespace}:{name}:{id}
description: String template for CSI-provisioned volume names, within VAST.
type: string
required:
- clusterName
- storagePath
- viewPolicy
type: object
status:
description: Status defines the observed state of VastStorage
type: object
x-kubernetes-preserve-unknown-fields: true
type: object
served: true
storage: true
subresources:
status: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
labels:
control-plane: controller-manager
name: vast-csi-operator-controller-manager-metrics-service
spec:
ports:
- name: https
port: 8443
targetPort: https
selector:
control-plane: controller-manager
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: vast-csi-operator-metrics-reader
rules:
- nonResourceURLs:
- /metrics
verbs:
- get
Loading