From 34553e3fe5664d26341c921353311c142bdbfbc1 Mon Sep 17 00:00:00 2001 From: Federico Stagni Date: Tue, 17 Sep 2024 16:51:18 +0200 Subject: [PATCH 1/7] add info about longhorn disk --- k3s/README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/k3s/README.md b/k3s/README.md index a380d40..5de2f67 100644 --- a/k3s/README.md +++ b/k3s/README.md @@ -169,7 +169,14 @@ kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.5.3/depl wget https://raw.githubusercontent.com/longhorn/longhorn/v1.5.3/deploy/longhorn.yaml ``` -edit `longhorn.yaml` and modify `numberOfReplicas: ` (i.e 1 or 2) +edit `longhorn.yaml` and +- modify `numberOfReplicas: ` (i.e 1 or 2) +- OPTIONAL: look for the `longhorn-default-setting` section. At this point, depending on the configuration you applied on your (Virtual) machine(s), modify its `data` part as following: +``` + data: + default-setting.yaml: |- + default-data-path: /mnt/longhorn # reflect what is the config you'd like to apply. Without, the default is /var/lib/longhorn +``` ```bash kubectl apply -f longhorn.yaml From 2e873185b7be7ede6235b60754a511c4f266b500 Mon Sep 17 00:00:00 2001 From: Federico Stagni Date: Tue, 17 Sep 2024 16:57:50 +0200 Subject: [PATCH 2/7] add info about longhorn dashboard --- k3s/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/k3s/README.md b/k3s/README.md index 5de2f67..38fe3ea 100644 --- a/k3s/README.md +++ b/k3s/README.md @@ -204,10 +204,14 @@ sed -i -e "s/storageclass.kubernetes.io\/is-default-class: \"true\"/storageclass ``` +Now, on your client, start the longhorn UI with ```bash kubectl port-forward -n longhorn-system svc/longhorn-frontend 8080:80 & ``` +and then visualize it by visiting http://localhost:8080 + + ## What is your hostname ? Single node: easy From af9167be9278e0d8504fd90f617b5beb6a92b373 Mon Sep 17 00:00:00 2001 From: Federico Stagni Date: Tue, 17 Sep 2024 17:06:40 +0200 Subject: [PATCH 3/7] added post-installation tips --- k3s/README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/k3s/README.md b/k3s/README.md index 38fe3ea..41f9083 100644 --- a/k3s/README.md +++ b/k3s/README.md @@ -169,7 +169,7 @@ kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.5.3/depl wget https://raw.githubusercontent.com/longhorn/longhorn/v1.5.3/deploy/longhorn.yaml ``` -edit `longhorn.yaml` and +edit `longhorn.yaml` and - modify `numberOfReplicas: ` (i.e 1 or 2) - OPTIONAL: look for the `longhorn-default-setting` section. At this point, depending on the configuration you applied on your (Virtual) machine(s), modify its `data` part as following: ``` @@ -227,7 +227,6 @@ Few tutorials: ## Deploy diracx -------------------------- ```bash # Clone diracx repositories @@ -264,6 +263,12 @@ git add default.yml git commit -m 'Initial config' ``` +## Post-install tips + +In case you would like to make us of the services installed (e.g. MySQL or OpenSearch) from outisde the kubernetes cluster, there are different solutions and configurations to make. LoadBalancer, NodePort, or Ingress are the options. One of these would need to be set out. + +Similar considerations apply for the use of certificates. See https://github.com/DIRACGrid/diracx-charts/issues/107 + ## Uninstall k3s on main server https://docs.k3s.io/installation/uninstall From 6c83db10e7079903cd3db77b30e8b42e8a48323a Mon Sep 17 00:00:00 2001 From: Federico Stagni Date: Mon, 23 Sep 2024 15:59:18 +0200 Subject: [PATCH 4/7] docs: added longhornctl --- k3s/README.md | 15 +- k3s/longhorn.yaml | 4300 +++++++++++++++++++++++++++++++++++++++++++ k3s/longhorn.yaml.1 | 4300 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 8614 insertions(+), 1 deletion(-) create mode 100644 k3s/longhorn.yaml create mode 100644 k3s/longhorn.yaml.1 diff --git a/k3s/README.md b/k3s/README.md index 41f9083..c3525d6 100644 --- a/k3s/README.md +++ b/k3s/README.md @@ -63,6 +63,16 @@ chmod 700 get_helm.sh ./get_helm.sh ``` +Install longhornctl (on laptop) +--------------------------- + +```bash +curl -L https://github.com/longhorn/cli/releases/download/${LonghornVersion}/longhornctl-${OS}-${ARCH} -o longhornctl # check https://github.com/longhorn/cli/releases +chmod +x longhornctl +mv ./longhornctl /usr/local/bin/longhornctl +``` + + Enable completion (optional but useful) --------------------------------------- @@ -72,6 +82,9 @@ source <(kubectl completion bash) # helm source <(helm completion bash) + +# longhornctl +source <(longhornctl completion bash) ``` @@ -160,7 +173,6 @@ Deploy longhorn in your cluster: kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.5.3/deploy/prerequisite/longhorn-iscsi-installation.yaml kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.5.3/deploy/prerequisite/longhorn-nfs-installation.yaml - ``` **Single or two nodes cluster** (less than 3 nodes) @@ -182,6 +194,7 @@ edit `longhorn.yaml` and kubectl apply -f longhorn.yaml ``` + **Multi node cluster** (more than 2 nodes) ```bash diff --git a/k3s/longhorn.yaml b/k3s/longhorn.yaml new file mode 100644 index 0000000..7ff9267 --- /dev/null +++ b/k3s/longhorn.yaml @@ -0,0 +1,4300 @@ +--- +# Builtin: "helm template" does not respect --create-namespace +apiVersion: v1 +kind: Namespace +metadata: + name: longhorn-system +--- +# Source: longhorn/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: longhorn-service-account + namespace: longhorn-system + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 +--- +# Source: longhorn/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: longhorn-support-bundle + namespace: longhorn-system + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 +--- +# Source: longhorn/templates/default-setting.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: longhorn-default-setting + namespace: longhorn-system + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 +data: + default-setting.yaml: |- +--- +# Source: longhorn/templates/storageclass.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: longhorn-storageclass + namespace: longhorn-system + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 +data: + storageclass.yaml: | + kind: StorageClass + apiVersion: storage.k8s.io/v1 + metadata: + name: longhorn + annotations: + storageclass.kubernetes.io/is-default-class: "true" + provisioner: driver.longhorn.io + allowVolumeExpansion: true + reclaimPolicy: "Delete" + volumeBindingMode: Immediate + parameters: + numberOfReplicas: "2" + staleReplicaTimeout: "30" + fromBackup: "" + fsType: "ext4" + dataLocality: "disabled" +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: backingimagedatasources.longhorn.io +spec: + group: longhorn.io + names: + kind: BackingImageDataSource + listKind: BackingImageDataSourceList + plural: backingimagedatasources + shortNames: + - lhbids + singular: backingimagedatasource + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The current state of the pod used to provision the backing image file from source + jsonPath: .status.currentState + name: State + type: string + - description: The data source type + jsonPath: .spec.sourceType + name: SourceType + type: string + - description: The node the backing image file will be prepared on + jsonPath: .spec.nodeID + name: Node + type: string + - description: The disk the backing image file will be prepared on + jsonPath: .spec.diskUUID + name: DiskUUID + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: BackingImageDataSource is where Longhorn stores backing image data source object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The system generated UUID of the provisioned backing image file + jsonPath: .spec.uuid + name: UUID + type: string + - description: The current state of the pod used to provision the backing image file from source + jsonPath: .status.currentState + name: State + type: string + - description: The data source type + jsonPath: .spec.sourceType + name: SourceType + type: string + - description: The backing image file size + jsonPath: .status.size + name: Size + type: string + - description: The node the backing image file will be prepared on + jsonPath: .spec.nodeID + name: Node + type: string + - description: The disk the backing image file will be prepared on + jsonPath: .spec.diskUUID + name: DiskUUID + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: BackingImageDataSource is where Longhorn stores backing image data source object. + 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: BackingImageDataSourceSpec defines the desired state of the Longhorn backing image data source + properties: + checksum: + type: string + diskPath: + type: string + diskUUID: + type: string + fileTransferred: + type: boolean + nodeID: + type: string + parameters: + additionalProperties: + type: string + type: object + sourceType: + enum: + - download + - upload + - export-from-volume + type: string + uuid: + type: string + type: object + status: + description: BackingImageDataSourceStatus defines the observed state of the Longhorn backing image data source + properties: + checksum: + type: string + currentState: + type: string + ip: + type: string + message: + type: string + ownerID: + type: string + progress: + type: integer + runningParameters: + additionalProperties: + type: string + nullable: true + type: object + size: + format: int64 + type: integer + storageIP: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: backingimagemanagers.longhorn.io +spec: + group: longhorn.io + names: + kind: BackingImageManager + listKind: BackingImageManagerList + plural: backingimagemanagers + shortNames: + - lhbim + singular: backingimagemanager + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The current state of the manager + jsonPath: .status.currentState + name: State + type: string + - description: The image the manager pod will use + jsonPath: .spec.image + name: Image + type: string + - description: The node the manager is on + jsonPath: .spec.nodeID + name: Node + type: string + - description: The disk the manager is responsible for + jsonPath: .spec.diskUUID + name: DiskUUID + type: string + - description: The disk path the manager is using + jsonPath: .spec.diskPath + name: DiskPath + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: BackingImageManager is where Longhorn stores backing image manager object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The current state of the manager + jsonPath: .status.currentState + name: State + type: string + - description: The image the manager pod will use + jsonPath: .spec.image + name: Image + type: string + - description: The node the manager is on + jsonPath: .spec.nodeID + name: Node + type: string + - description: The disk the manager is responsible for + jsonPath: .spec.diskUUID + name: DiskUUID + type: string + - description: The disk path the manager is using + jsonPath: .spec.diskPath + name: DiskPath + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: BackingImageManager is where Longhorn stores backing image manager object. + 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: BackingImageManagerSpec defines the desired state of the Longhorn backing image manager + properties: + backingImages: + additionalProperties: + type: string + type: object + diskPath: + type: string + diskUUID: + type: string + image: + type: string + nodeID: + type: string + type: object + status: + description: BackingImageManagerStatus defines the observed state of the Longhorn backing image manager + properties: + apiMinVersion: + type: integer + apiVersion: + type: integer + backingImageFileMap: + additionalProperties: + properties: + currentChecksum: + type: string + message: + type: string + name: + type: string + progress: + type: integer + senderManagerAddress: + type: string + sendingReference: + type: integer + size: + format: int64 + type: integer + state: + type: string + uuid: + type: string + type: object + nullable: true + type: object + currentState: + type: string + ip: + type: string + ownerID: + type: string + storageIP: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: backingimages.longhorn.io +spec: + conversion: + strategy: Webhook + webhook: + clientConfig: + service: + name: longhorn-conversion-webhook + namespace: longhorn-system + path: /v1/webhook/conversion + port: 9501 + conversionReviewVersions: + - v1beta2 + - v1beta1 + group: longhorn.io + names: + kind: BackingImage + listKind: BackingImageList + plural: backingimages + shortNames: + - lhbi + singular: backingimage + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The backing image name + jsonPath: .spec.image + name: Image + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: BackingImage is where Longhorn stores backing image object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The system generated UUID + jsonPath: .status.uuid + name: UUID + type: string + - description: The source of the backing image file data + jsonPath: .spec.sourceType + name: SourceType + type: string + - description: The backing image file size in each disk + jsonPath: .status.size + name: Size + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: BackingImage is where Longhorn stores backing image object. + 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: BackingImageSpec defines the desired state of the Longhorn backing image + properties: + checksum: + type: string + disks: + additionalProperties: + type: string + type: object + sourceParameters: + additionalProperties: + type: string + type: object + sourceType: + enum: + - download + - upload + - export-from-volume + type: string + type: object + status: + description: BackingImageStatus defines the observed state of the Longhorn backing image status + properties: + checksum: + type: string + diskFileStatusMap: + additionalProperties: + properties: + lastStateTransitionTime: + type: string + message: + type: string + progress: + type: integer + state: + type: string + type: object + nullable: true + type: object + diskLastRefAtMap: + additionalProperties: + type: string + nullable: true + type: object + ownerID: + type: string + size: + format: int64 + type: integer + uuid: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: backups.longhorn.io +spec: + group: longhorn.io + names: + kind: Backup + listKind: BackupList + plural: backups + shortNames: + - lhb + singular: backup + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The snapshot name + jsonPath: .status.snapshotName + name: SnapshotName + type: string + - description: The snapshot size + jsonPath: .status.size + name: SnapshotSize + type: string + - description: The snapshot creation time + jsonPath: .status.snapshotCreatedAt + name: SnapshotCreatedAt + type: string + - description: The backup state + jsonPath: .status.state + name: State + type: string + - description: The backup last synced time + jsonPath: .status.lastSyncedAt + name: LastSyncedAt + type: string + name: v1beta1 + schema: + openAPIV3Schema: + description: Backup is where Longhorn stores backup object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The snapshot name + jsonPath: .status.snapshotName + name: SnapshotName + type: string + - description: The snapshot size + jsonPath: .status.size + name: SnapshotSize + type: string + - description: The snapshot creation time + jsonPath: .status.snapshotCreatedAt + name: SnapshotCreatedAt + type: string + - description: The backup state + jsonPath: .status.state + name: State + type: string + - description: The backup last synced time + jsonPath: .status.lastSyncedAt + name: LastSyncedAt + type: string + name: v1beta2 + schema: + openAPIV3Schema: + description: Backup is where Longhorn stores backup object. + 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: BackupSpec defines the desired state of the Longhorn backup + properties: + labels: + additionalProperties: + type: string + description: The labels of snapshot backup. + type: object + snapshotName: + description: The snapshot name. + type: string + syncRequestedAt: + description: The time to request run sync the remote backup. + format: date-time + nullable: true + type: string + type: object + status: + description: BackupStatus defines the observed state of the Longhorn backup + properties: + backupCreatedAt: + description: The snapshot backup upload finished time. + type: string + compressionMethod: + description: Compression method + type: string + error: + description: The error message when taking the snapshot backup. + type: string + labels: + additionalProperties: + type: string + description: The labels of snapshot backup. + nullable: true + type: object + lastSyncedAt: + description: The last time that the backup was synced with the remote backup target. + format: date-time + nullable: true + type: string + messages: + additionalProperties: + type: string + description: The error messages when calling longhorn engine on listing or inspecting backups. + nullable: true + type: object + ownerID: + description: The node ID on which the controller is responsible to reconcile this backup CR. + type: string + progress: + description: The snapshot backup progress. + type: integer + replicaAddress: + description: The address of the replica that runs snapshot backup. + type: string + size: + description: The snapshot size. + type: string + snapshotCreatedAt: + description: The snapshot creation time. + type: string + snapshotName: + description: The snapshot name. + type: string + state: + description: The backup creation state. Can be "", "InProgress", "Completed", "Error", "Unknown". + type: string + url: + description: The snapshot backup URL. + type: string + volumeBackingImageName: + description: The volume's backing image name. + type: string + volumeCreated: + description: The volume creation time. + type: string + volumeName: + description: The volume name. + type: string + volumeSize: + description: The volume size. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: backuptargets.longhorn.io +spec: + conversion: + strategy: Webhook + webhook: + clientConfig: + service: + name: longhorn-conversion-webhook + namespace: longhorn-system + path: /v1/webhook/conversion + port: 9501 + conversionReviewVersions: + - v1beta2 + - v1beta1 + group: longhorn.io + names: + kind: BackupTarget + listKind: BackupTargetList + plural: backuptargets + shortNames: + - lhbt + singular: backuptarget + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The backup target URL + jsonPath: .spec.backupTargetURL + name: URL + type: string + - description: The backup target credential secret + jsonPath: .spec.credentialSecret + name: Credential + type: string + - description: The backup target poll interval + jsonPath: .spec.pollInterval + name: LastBackupAt + type: string + - description: Indicate whether the backup target is available or not + jsonPath: .status.available + name: Available + type: boolean + - description: The backup target last synced time + jsonPath: .status.lastSyncedAt + name: LastSyncedAt + type: string + name: v1beta1 + schema: + openAPIV3Schema: + description: BackupTarget is where Longhorn stores backup target object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The backup target URL + jsonPath: .spec.backupTargetURL + name: URL + type: string + - description: The backup target credential secret + jsonPath: .spec.credentialSecret + name: Credential + type: string + - description: The backup target poll interval + jsonPath: .spec.pollInterval + name: LastBackupAt + type: string + - description: Indicate whether the backup target is available or not + jsonPath: .status.available + name: Available + type: boolean + - description: The backup target last synced time + jsonPath: .status.lastSyncedAt + name: LastSyncedAt + type: string + name: v1beta2 + schema: + openAPIV3Schema: + description: BackupTarget is where Longhorn stores backup target object. + 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: BackupTargetSpec defines the desired state of the Longhorn backup target + properties: + backupTargetURL: + description: The backup target URL. + type: string + credentialSecret: + description: The backup target credential secret. + type: string + pollInterval: + description: The interval that the cluster needs to run sync with the backup target. + type: string + syncRequestedAt: + description: The time to request run sync the remote backup target. + format: date-time + nullable: true + type: string + type: object + status: + description: BackupTargetStatus defines the observed state of the Longhorn backup target + properties: + available: + description: Available indicates if the remote backup target is available or not. + type: boolean + conditions: + description: Records the reason on why the backup target is unavailable. + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + lastSyncedAt: + description: The last time that the controller synced with the remote backup target. + format: date-time + nullable: true + type: string + ownerID: + description: The node ID on which the controller is responsible to reconcile this backup target CR. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: backupvolumes.longhorn.io +spec: + group: longhorn.io + names: + kind: BackupVolume + listKind: BackupVolumeList + plural: backupvolumes + shortNames: + - lhbv + singular: backupvolume + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The backup volume creation time + jsonPath: .status.createdAt + name: CreatedAt + type: string + - description: The backup volume last backup name + jsonPath: .status.lastBackupName + name: LastBackupName + type: string + - description: The backup volume last backup time + jsonPath: .status.lastBackupAt + name: LastBackupAt + type: string + - description: The backup volume last synced time + jsonPath: .status.lastSyncedAt + name: LastSyncedAt + type: string + name: v1beta1 + schema: + openAPIV3Schema: + description: BackupVolume is where Longhorn stores backup volume object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The backup volume creation time + jsonPath: .status.createdAt + name: CreatedAt + type: string + - description: The backup volume last backup name + jsonPath: .status.lastBackupName + name: LastBackupName + type: string + - description: The backup volume last backup time + jsonPath: .status.lastBackupAt + name: LastBackupAt + type: string + - description: The backup volume last synced time + jsonPath: .status.lastSyncedAt + name: LastSyncedAt + type: string + name: v1beta2 + schema: + openAPIV3Schema: + description: BackupVolume is where Longhorn stores backup volume object. + 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: BackupVolumeSpec defines the desired state of the Longhorn backup volume + properties: + syncRequestedAt: + description: The time to request run sync the remote backup volume. + format: date-time + nullable: true + type: string + type: object + status: + description: BackupVolumeStatus defines the observed state of the Longhorn backup volume + properties: + backingImageChecksum: + description: the backing image checksum. + type: string + backingImageName: + description: The backing image name. + type: string + createdAt: + description: The backup volume creation time. + type: string + dataStored: + description: The backup volume block count. + type: string + labels: + additionalProperties: + type: string + description: The backup volume labels. + nullable: true + type: object + lastBackupAt: + description: The latest volume backup time. + type: string + lastBackupName: + description: The latest volume backup name. + type: string + lastModificationTime: + description: The backup volume config last modification time. + format: date-time + nullable: true + type: string + lastSyncedAt: + description: The last time that the backup volume was synced into the cluster. + format: date-time + nullable: true + type: string + messages: + additionalProperties: + type: string + description: The error messages when call longhorn engine on list or inspect backup volumes. + nullable: true + type: object + ownerID: + description: The node ID on which the controller is responsible to reconcile this backup volume CR. + type: string + size: + description: The backup volume size. + type: string + storageClassName: + description: the storage class name of pv/pvc binding with the volume. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: engineimages.longhorn.io +spec: + preserveUnknownFields: false + conversion: + strategy: Webhook + webhook: + clientConfig: + service: + name: longhorn-conversion-webhook + namespace: longhorn-system + path: /v1/webhook/conversion + port: 9501 + conversionReviewVersions: + - v1beta2 + - v1beta1 + group: longhorn.io + names: + kind: EngineImage + listKind: EngineImageList + plural: engineimages + shortNames: + - lhei + singular: engineimage + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: State of the engine image + jsonPath: .status.state + name: State + type: string + - description: The Longhorn engine image + jsonPath: .spec.image + name: Image + type: string + - description: Number of resources using the engine image + jsonPath: .status.refCount + name: RefCount + type: integer + - description: The build date of the engine image + jsonPath: .status.buildDate + name: BuildDate + type: date + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: EngineImage is where Longhorn stores engine image object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: State of the engine image + jsonPath: .status.state + name: State + type: string + - description: The Longhorn engine image + jsonPath: .spec.image + name: Image + type: string + - description: Number of resources using the engine image + jsonPath: .status.refCount + name: RefCount + type: integer + - description: The build date of the engine image + jsonPath: .status.buildDate + name: BuildDate + type: date + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: EngineImage is where Longhorn stores engine image object. + 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: EngineImageSpec defines the desired state of the Longhorn engine image + properties: + image: + minLength: 1 + type: string + required: + - image + type: object + status: + description: EngineImageStatus defines the observed state of the Longhorn engine image + properties: + buildDate: + type: string + cliAPIMinVersion: + type: integer + cliAPIVersion: + type: integer + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + controllerAPIMinVersion: + type: integer + controllerAPIVersion: + type: integer + dataFormatMinVersion: + type: integer + dataFormatVersion: + type: integer + gitCommit: + type: string + noRefSince: + type: string + nodeDeploymentMap: + additionalProperties: + type: boolean + nullable: true + type: object + ownerID: + type: string + refCount: + type: integer + state: + type: string + version: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: engines.longhorn.io +spec: + group: longhorn.io + names: + kind: Engine + listKind: EngineList + plural: engines + shortNames: + - lhe + singular: engine + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The current state of the engine + jsonPath: .status.currentState + name: State + type: string + - description: The node that the engine is on + jsonPath: .spec.nodeID + name: Node + type: string + - description: The instance manager of the engine + jsonPath: .status.instanceManagerName + name: InstanceManager + type: string + - description: The current image of the engine + jsonPath: .status.currentImage + name: Image + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: Engine is where Longhorn stores engine object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The current state of the engine + jsonPath: .status.currentState + name: State + type: string + - description: The node that the engine is on + jsonPath: .spec.nodeID + name: Node + type: string + - description: The instance manager of the engine + jsonPath: .status.instanceManagerName + name: InstanceManager + type: string + - description: The current image of the engine + jsonPath: .status.currentImage + name: Image + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: Engine is where Longhorn stores engine object. + 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: EngineSpec defines the desired state of the Longhorn engine + properties: + active: + type: boolean + backendStoreDriver: + enum: + - v1 + - v2 + type: string + backupVolume: + type: string + desireState: + type: string + disableFrontend: + type: boolean + engineImage: + type: string + frontend: + enum: + - blockdev + - iscsi + - nvmf + - "" + type: string + logRequested: + type: boolean + nodeID: + type: string + replicaAddressMap: + additionalProperties: + type: string + type: object + requestedBackupRestore: + type: string + requestedDataSource: + type: string + revisionCounterDisabled: + type: boolean + salvageRequested: + type: boolean + unmapMarkSnapChainRemovedEnabled: + type: boolean + upgradedReplicaAddressMap: + additionalProperties: + type: string + type: object + volumeName: + type: string + volumeSize: + format: int64 + type: string + type: object + status: + description: EngineStatus defines the observed state of the Longhorn engine + properties: + backupStatus: + additionalProperties: + properties: + backupURL: + type: string + error: + type: string + progress: + type: integer + replicaAddress: + type: string + snapshotName: + type: string + state: + type: string + type: object + nullable: true + type: object + cloneStatus: + additionalProperties: + properties: + error: + type: string + fromReplicaAddress: + type: string + isCloning: + type: boolean + progress: + type: integer + snapshotName: + type: string + state: + type: string + type: object + nullable: true + type: object + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + currentImage: + type: string + currentReplicaAddressMap: + additionalProperties: + type: string + nullable: true + type: object + currentSize: + format: int64 + type: string + currentState: + type: string + endpoint: + type: string + instanceManagerName: + type: string + ip: + type: string + isExpanding: + type: boolean + lastExpansionError: + type: string + lastExpansionFailedAt: + type: string + lastRestoredBackup: + type: string + logFetched: + type: boolean + ownerID: + type: string + port: + type: integer + purgeStatus: + additionalProperties: + properties: + error: + type: string + isPurging: + type: boolean + progress: + type: integer + state: + type: string + type: object + nullable: true + type: object + rebuildStatus: + additionalProperties: + properties: + error: + type: string + fromReplicaAddress: + type: string + isRebuilding: + type: boolean + progress: + type: integer + state: + type: string + type: object + nullable: true + type: object + replicaModeMap: + additionalProperties: + type: string + nullable: true + type: object + restoreStatus: + additionalProperties: + properties: + backupURL: + type: string + currentRestoringBackup: + type: string + error: + type: string + filename: + type: string + isRestoring: + type: boolean + lastRestored: + type: string + progress: + type: integer + state: + type: string + type: object + nullable: true + type: object + salvageExecuted: + type: boolean + snapshots: + additionalProperties: + properties: + children: + additionalProperties: + type: boolean + nullable: true + type: object + created: + type: string + labels: + additionalProperties: + type: string + nullable: true + type: object + name: + type: string + parent: + type: string + removed: + type: boolean + size: + type: string + usercreated: + type: boolean + type: object + nullable: true + type: object + snapshotsError: + type: string + started: + type: boolean + storageIP: + type: string + unmapMarkSnapChainRemovedEnabled: + type: boolean + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: instancemanagers.longhorn.io +spec: + group: longhorn.io + names: + kind: InstanceManager + listKind: InstanceManagerList + plural: instancemanagers + shortNames: + - lhim + singular: instancemanager + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The state of the instance manager + jsonPath: .status.currentState + name: State + type: string + - description: The type of the instance manager (engine or replica) + jsonPath: .spec.type + name: Type + type: string + - description: The node that the instance manager is running on + jsonPath: .spec.nodeID + name: Node + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: InstanceManager is where Longhorn stores instance manager object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The state of the instance manager + jsonPath: .status.currentState + name: State + type: string + - description: The type of the instance manager (engine or replica) + jsonPath: .spec.type + name: Type + type: string + - description: The node that the instance manager is running on + jsonPath: .spec.nodeID + name: Node + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: InstanceManager is where Longhorn stores instance manager object. + 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: InstanceManagerSpec defines the desired state of the Longhorn instancer manager + properties: + image: + type: string + nodeID: + type: string + type: + enum: + - aio + - engine + - replica + type: string + type: object + status: + description: InstanceManagerStatus defines the observed state of the Longhorn instance manager + properties: + apiMinVersion: + type: integer + apiVersion: + type: integer + proxyApiMinVersion: + type: integer + proxyApiVersion: + type: integer + currentState: + type: string + instanceEngines: + additionalProperties: + properties: + spec: + properties: + backendStoreDriver: + type: string + name: + type: string + type: object + status: + properties: + endpoint: + type: string + errorMsg: + type: string + listen: + type: string + portEnd: + format: int32 + type: integer + portStart: + format: int32 + type: integer + resourceVersion: + format: int64 + type: integer + state: + type: string + type: + type: string + type: object + type: object + nullable: true + type: object + instanceReplicas: + additionalProperties: + properties: + spec: + properties: + backendStoreDriver: + type: string + name: + type: string + type: object + status: + properties: + endpoint: + type: string + errorMsg: + type: string + listen: + type: string + portEnd: + format: int32 + type: integer + portStart: + format: int32 + type: integer + resourceVersion: + format: int64 + type: integer + state: + type: string + type: + type: string + type: object + type: object + nullable: true + type: object + instances: + additionalProperties: + properties: + spec: + properties: + backendStoreDriver: + type: string + name: + type: string + type: object + status: + properties: + endpoint: + type: string + errorMsg: + type: string + listen: + type: string + portEnd: + format: int32 + type: integer + portStart: + format: int32 + type: integer + resourceVersion: + format: int64 + type: integer + state: + type: string + type: + type: string + type: object + type: object + nullable: true + description: 'Deprecated: Replaced by InstanceEngines and InstanceReplicas' + type: object + ip: + type: string + ownerID: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: nodes.longhorn.io +spec: + preserveUnknownFields: false + conversion: + strategy: Webhook + webhook: + clientConfig: + service: + name: longhorn-conversion-webhook + namespace: longhorn-system + path: /v1/webhook/conversion + port: 9501 + conversionReviewVersions: + - v1beta2 + - v1beta1 + group: longhorn.io + names: + kind: Node + listKind: NodeList + plural: nodes + shortNames: + - lhn + singular: node + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: Indicate whether the node is ready + jsonPath: .status.conditions['Ready']['status'] + name: Ready + type: string + - description: Indicate whether the user disabled/enabled replica scheduling for the node + jsonPath: .spec.allowScheduling + name: AllowScheduling + type: boolean + - description: Indicate whether Longhorn can schedule replicas on the node + jsonPath: .status.conditions['Schedulable']['status'] + name: Schedulable + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: Node is where Longhorn stores Longhorn node object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: Indicate whether the node is ready + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: Indicate whether the user disabled/enabled replica scheduling for the node + jsonPath: .spec.allowScheduling + name: AllowScheduling + type: boolean + - description: Indicate whether Longhorn can schedule replicas on the node + jsonPath: .status.conditions[?(@.type=='Schedulable')].status + name: Schedulable + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: Node is where Longhorn stores Longhorn node object. + 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: NodeSpec defines the desired state of the Longhorn node + properties: + allowScheduling: + type: boolean + disks: + additionalProperties: + properties: + allowScheduling: + type: boolean + evictionRequested: + type: boolean + path: + type: string + storageReserved: + format: int64 + type: integer + tags: + items: + type: string + type: array + diskType: + enum: + - filesystem + - block + type: string + type: object + type: object + evictionRequested: + type: boolean + instanceManagerCPURequest: + type: integer + name: + type: string + tags: + items: + type: string + type: array + type: object + status: + description: NodeStatus defines the observed state of the Longhorn node + properties: + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + diskStatus: + additionalProperties: + properties: + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + diskType: + type: string + diskUUID: + type: string + scheduledReplica: + additionalProperties: + format: int64 + type: integer + nullable: true + type: object + storageAvailable: + format: int64 + type: integer + storageMaximum: + format: int64 + type: integer + storageScheduled: + format: int64 + type: integer + type: object + nullable: true + type: object + region: + type: string + snapshotCheckStatus: + properties: + lastPeriodicCheckedAt: + format: date-time + type: string + snapshotCheckState: + type: string + type: object + zone: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: orphans.longhorn.io +spec: + group: longhorn.io + names: + kind: Orphan + listKind: OrphanList + plural: orphans + shortNames: + - lho + singular: orphan + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The type of the orphan + jsonPath: .spec.orphanType + name: Type + type: string + - description: The node that the orphan is on + jsonPath: .spec.nodeID + name: Node + type: string + name: v1beta2 + schema: + openAPIV3Schema: + description: Orphan is where Longhorn stores orphan object. + 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: OrphanSpec defines the desired state of the Longhorn orphaned data + properties: + nodeID: + description: The node ID on which the controller is responsible to reconcile this orphan CR. + type: string + orphanType: + description: The type of the orphaned data. Can be "replica". + type: string + parameters: + additionalProperties: + type: string + description: The parameters of the orphaned data + type: object + type: object + status: + description: OrphanStatus defines the observed state of the Longhorn orphaned data + properties: + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + ownerID: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + longhorn-manager: "" + name: recurringjobs.longhorn.io +spec: + group: longhorn.io + names: + kind: RecurringJob + listKind: RecurringJobList + plural: recurringjobs + shortNames: + - lhrj + singular: recurringjob + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: Sets groupings to the jobs. When set to "default" group will be added to the volume label when no other job label exist in volume + jsonPath: .spec.groups + name: Groups + type: string + - description: Should be one of "backup" or "snapshot" + jsonPath: .spec.task + name: Task + type: string + - description: The cron expression represents recurring job scheduling + jsonPath: .spec.cron + name: Cron + type: string + - description: The number of snapshots/backups to keep for the volume + jsonPath: .spec.retain + name: Retain + type: integer + - description: The concurrent job to run by each cron job + jsonPath: .spec.concurrency + name: Concurrency + type: integer + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: Specify the labels + jsonPath: .spec.labels + name: Labels + type: string + name: v1beta1 + schema: + openAPIV3Schema: + description: RecurringJob is where Longhorn stores recurring job object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: Sets groupings to the jobs. When set to "default" group will be added to the volume label when no other job label exist in volume + jsonPath: .spec.groups + name: Groups + type: string + - description: Should be one of "snapshot", "snapshot-force-create", "snapshot-cleanup", "snapshot-delete", "backup", "backup-force-create" or "filesystem-trim" + jsonPath: .spec.task + name: Task + type: string + - description: The cron expression represents recurring job scheduling + jsonPath: .spec.cron + name: Cron + type: string + - description: The number of snapshots/backups to keep for the volume + jsonPath: .spec.retain + name: Retain + type: integer + - description: The concurrent job to run by each cron job + jsonPath: .spec.concurrency + name: Concurrency + type: integer + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: Specify the labels + jsonPath: .spec.labels + name: Labels + type: string + name: v1beta2 + schema: + openAPIV3Schema: + description: RecurringJob is where Longhorn stores recurring job object. + 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: RecurringJobSpec defines the desired state of the Longhorn recurring job + properties: + concurrency: + description: The concurrency of taking the snapshot/backup. + type: integer + cron: + description: The cron setting. + type: string + groups: + description: The recurring job group. + items: + type: string + type: array + labels: + additionalProperties: + type: string + description: The label of the snapshot/backup. + type: object + name: + description: The recurring job name. + type: string + retain: + description: The retain count of the snapshot/backup. + type: integer + task: + description: The recurring job task. Can be "snapshot", "snapshot-force-create", "snapshot-cleanup", "snapshot-delete", "backup", "backup-force-create" or "filesystem-trim" + enum: + - snapshot + - snapshot-force-create + - snapshot-cleanup + - snapshot-delete + - backup + - backup-force-create + - filesystem-trim + type: string + type: object + status: + description: RecurringJobStatus defines the observed state of the Longhorn recurring job + properties: + ownerID: + description: The owner ID which is responsible to reconcile this recurring job CR. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: replicas.longhorn.io +spec: + group: longhorn.io + names: + kind: Replica + listKind: ReplicaList + plural: replicas + shortNames: + - lhr + singular: replica + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The current state of the replica + jsonPath: .status.currentState + name: State + type: string + - description: The node that the replica is on + jsonPath: .spec.nodeID + name: Node + type: string + - description: The disk that the replica is on + jsonPath: .spec.diskID + name: Disk + type: string + - description: The instance manager of the replica + jsonPath: .status.instanceManagerName + name: InstanceManager + type: string + - description: The current image of the replica + jsonPath: .status.currentImage + name: Image + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: Replica is where Longhorn stores replica object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The current state of the replica + jsonPath: .status.currentState + name: State + type: string + - description: The node that the replica is on + jsonPath: .spec.nodeID + name: Node + type: string + - description: The disk that the replica is on + jsonPath: .spec.diskID + name: Disk + type: string + - description: The instance manager of the replica + jsonPath: .status.instanceManagerName + name: InstanceManager + type: string + - description: The current image of the replica + jsonPath: .status.currentImage + name: Image + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: Replica is where Longhorn stores replica object. + 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: ReplicaSpec defines the desired state of the Longhorn replica + properties: + active: + type: boolean + backendStoreDriver: + enum: + - v1 + - v2 + type: string + backingImage: + type: string + dataDirectoryName: + type: string + desireState: + type: string + diskID: + type: string + diskPath: + type: string + engineImage: + type: string + engineName: + type: string + failedAt: + type: string + hardNodeAffinity: + type: string + healthyAt: + type: string + logRequested: + type: boolean + nodeID: + type: string + rebuildRetryCount: + type: integer + revisionCounterDisabled: + type: boolean + salvageRequested: + type: boolean + unmapMarkDiskChainRemovedEnabled: + type: boolean + volumeName: + type: string + volumeSize: + format: int64 + type: string + type: object + status: + description: ReplicaStatus defines the observed state of the Longhorn replica + properties: + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + currentImage: + type: string + currentState: + type: string + evictionRequested: + type: boolean + instanceManagerName: + type: string + ip: + type: string + logFetched: + type: boolean + ownerID: + type: string + port: + type: integer + salvageExecuted: + type: boolean + started: + type: boolean + storageIP: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: settings.longhorn.io +spec: + group: longhorn.io + names: + kind: Setting + listKind: SettingList + plural: settings + shortNames: + - lhs + singular: setting + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The value of the setting + jsonPath: .value + name: Value + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: Setting is where Longhorn stores setting object. + 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 + value: + type: string + required: + - value + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The value of the setting + jsonPath: .value + name: Value + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: Setting is where Longhorn stores setting object. + 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 + value: + type: string + required: + - value + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: sharemanagers.longhorn.io +spec: + group: longhorn.io + names: + kind: ShareManager + listKind: ShareManagerList + plural: sharemanagers + shortNames: + - lhsm + singular: sharemanager + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The state of the share manager + jsonPath: .status.state + name: State + type: string + - description: The node that the share manager is owned by + jsonPath: .status.ownerID + name: Node + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: ShareManager is where Longhorn stores share manager object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The state of the share manager + jsonPath: .status.state + name: State + type: string + - description: The node that the share manager is owned by + jsonPath: .status.ownerID + name: Node + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: ShareManager is where Longhorn stores share manager object. + 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: ShareManagerSpec defines the desired state of the Longhorn share manager + properties: + image: + description: Share manager image used for creating a share manager pod + type: string + type: object + status: + description: ShareManagerStatus defines the observed state of the Longhorn share manager + properties: + endpoint: + description: NFS endpoint that can access the mounted filesystem of the volume + type: string + ownerID: + description: The node ID on which the controller is responsible to reconcile this share manager resource + type: string + state: + description: The state of the share manager resource + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: snapshots.longhorn.io +spec: + group: longhorn.io + names: + kind: Snapshot + listKind: SnapshotList + plural: snapshots + shortNames: + - lhsnap + singular: snapshot + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The volume that this snapshot belongs to + jsonPath: .spec.volume + name: Volume + type: string + - description: Timestamp when the point-in-time snapshot was taken + jsonPath: .status.creationTime + name: CreationTime + type: string + - description: Indicates if the snapshot is ready to be used to restore/backup a volume + jsonPath: .status.readyToUse + name: ReadyToUse + type: boolean + - description: Represents the minimum size of volume required to rehydrate from this snapshot + jsonPath: .status.restoreSize + name: RestoreSize + type: string + - description: The actual size of the snapshot + jsonPath: .status.size + name: Size + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: Snapshot is the Schema for the snapshots 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: SnapshotSpec defines the desired state of Longhorn Snapshot + properties: + createSnapshot: + description: require creating a new snapshot + type: boolean + labels: + additionalProperties: + type: string + description: The labels of snapshot + nullable: true + type: object + volume: + description: the volume that this snapshot belongs to. This field is immutable after creation. Required + type: string + required: + - volume + type: object + status: + description: SnapshotStatus defines the observed state of Longhorn Snapshot + properties: + checksum: + type: string + children: + additionalProperties: + type: boolean + nullable: true + type: object + creationTime: + type: string + error: + type: string + labels: + additionalProperties: + type: string + nullable: true + type: object + markRemoved: + type: boolean + ownerID: + type: string + parent: + type: string + readyToUse: + type: boolean + restoreSize: + format: int64 + type: integer + size: + format: int64 + type: integer + userCreated: + type: boolean + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: supportbundles.longhorn.io +spec: + group: longhorn.io + names: + kind: SupportBundle + listKind: SupportBundleList + plural: supportbundles + shortNames: + - lhbundle + singular: supportbundle + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The state of the support bundle + jsonPath: .status.state + name: State + type: string + - description: The issue URL + jsonPath: .spec.issueURL + name: Issue + type: string + - description: A brief description of the issue + jsonPath: .spec.description + name: Description + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: SupportBundle is where Longhorn stores support bundle object + 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: SupportBundleSpec defines the desired state of the Longhorn SupportBundle + properties: + description: + description: A brief description of the issue + type: string + issueURL: + description: The issue URL + nullable: true + type: string + nodeID: + description: The preferred responsible controller node ID. + type: string + required: + - description + type: object + status: + description: SupportBundleStatus defines the observed state of the Longhorn SupportBundle + properties: + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + filename: + type: string + filesize: + format: int64 + type: integer + image: + description: The support bundle manager image + type: string + managerIP: + description: The support bundle manager IP + type: string + ownerID: + description: The current responsible controller node ID + type: string + progress: + type: integer + state: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: systembackups.longhorn.io +spec: + group: longhorn.io + names: + kind: SystemBackup + listKind: SystemBackupList + plural: systembackups + shortNames: + - lhsb + singular: systembackup + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The system backup Longhorn version + jsonPath: .status.version + name: Version + type: string + - description: The system backup state + jsonPath: .status.state + name: State + type: string + - description: The system backup creation time + jsonPath: .status.createdAt + name: Created + type: string + - description: The last time that the system backup was synced into the cluster + jsonPath: .status.lastSyncedAt + name: LastSyncedAt + type: string + name: v1beta2 + schema: + openAPIV3Schema: + description: SystemBackup is where Longhorn stores system backup object + 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: SystemBackupSpec defines the desired state of the Longhorn SystemBackup + properties: + volumeBackupPolicy: + description: The create volume backup policy Can be "if-not-present", "always" or "disabled" + nullable: true + type: string + type: object + status: + description: SystemBackupStatus defines the observed state of the Longhorn SystemBackup + properties: + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + createdAt: + description: The system backup creation time. + format: date-time + type: string + gitCommit: + description: The saved Longhorn manager git commit. + nullable: true + type: string + lastSyncedAt: + description: The last time that the system backup was synced into the cluster. + format: date-time + nullable: true + type: string + managerImage: + description: The saved manager image. + type: string + ownerID: + description: The node ID of the responsible controller to reconcile this SystemBackup. + type: string + state: + description: The system backup state. + type: string + version: + description: The saved Longhorn version. + nullable: true + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: systemrestores.longhorn.io +spec: + group: longhorn.io + names: + kind: SystemRestore + listKind: SystemRestoreList + plural: systemrestores + shortNames: + - lhsr + singular: systemrestore + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The system restore state + jsonPath: .status.state + name: State + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: SystemRestore is where Longhorn stores system restore object + 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: SystemRestoreSpec defines the desired state of the Longhorn SystemRestore + properties: + systemBackup: + description: The system backup name in the object store. + type: string + required: + - systemBackup + type: object + status: + description: SystemRestoreStatus defines the observed state of the Longhorn SystemRestore + properties: + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + ownerID: + description: The node ID of the responsible controller to reconcile this SystemRestore. + type: string + sourceURL: + description: The source system backup URL. + type: string + state: + description: The system restore state. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: volumes.longhorn.io +spec: + preserveUnknownFields: false + conversion: + strategy: Webhook + webhook: + clientConfig: + service: + name: longhorn-conversion-webhook + namespace: longhorn-system + path: /v1/webhook/conversion + port: 9501 + conversionReviewVersions: + - v1beta2 + - v1beta1 + group: longhorn.io + names: + kind: Volume + listKind: VolumeList + plural: volumes + shortNames: + - lhv + singular: volume + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The state of the volume + jsonPath: .status.state + name: State + type: string + - description: The robustness of the volume + jsonPath: .status.robustness + name: Robustness + type: string + - description: The scheduled condition of the volume + jsonPath: .status.conditions['scheduled']['status'] + name: Scheduled + type: string + - description: The size of the volume + jsonPath: .spec.size + name: Size + type: string + - description: The node that the volume is currently attaching to + jsonPath: .status.currentNodeID + name: Node + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: Volume is where Longhorn stores volume object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The state of the volume + jsonPath: .status.state + name: State + type: string + - description: The robustness of the volume + jsonPath: .status.robustness + name: Robustness + type: string + - description: The scheduled condition of the volume + jsonPath: .status.conditions[?(@.type=='Schedulable')].status + name: Scheduled + type: string + - description: The size of the volume + jsonPath: .spec.size + name: Size + type: string + - description: The node that the volume is currently attaching to + jsonPath: .status.currentNodeID + name: Node + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: Volume is where Longhorn stores volume object. + 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: VolumeSpec defines the desired state of the Longhorn volume + properties: + Standby: + type: boolean + accessMode: + enum: + - rwo + - rwx + type: string + backendStoreDriver: + enum: + - v1 + - v2 + type: string + backingImage: + type: string + backupCompressionMethod: + enum: + - none + - lz4 + - gzip + type: string + dataLocality: + enum: + - disabled + - best-effort + - strict-local + type: string + dataSource: + type: string + disableFrontend: + type: boolean + diskSelector: + items: + type: string + type: array + encrypted: + type: boolean + engineImage: + type: string + fromBackup: + type: string + frontend: + enum: + - blockdev + - iscsi + - nvmf + - "" + type: string + lastAttachedBy: + type: string + migratable: + type: boolean + migrationNodeID: + type: string + nodeID: + type: string + nodeSelector: + items: + type: string + type: array + numberOfReplicas: + type: integer + offlineReplicaRebuilding: + description: OfflineReplicaRebuilding is used to determine if the offline replica rebuilding feature is enabled or not + enum: + - ignored + - disabled + - enabled + type: string + replicaAutoBalance: + enum: + - ignored + - disabled + - least-effort + - best-effort + type: string + replicaSoftAntiAffinity: + description: Replica soft anti affinity of the volume. Set enabled to allow replicas to be scheduled on the same node + enum: + - ignored + - enabled + - disabled + type: string + replicaZoneSoftAntiAffinity: + description: Replica zone soft anti affinity of the volume. Set enabled to allow replicas to be scheduled in the same zone + enum: + - ignored + - enabled + - disabled + type: string + restoreVolumeRecurringJob: + enum: + - ignored + - enabled + - disabled + type: string + revisionCounterDisabled: + type: boolean + size: + format: int64 + type: string + snapshotDataIntegrity: + enum: + - ignored + - disabled + - enabled + - fast-check + type: string + staleReplicaTimeout: + type: integer + unmapMarkSnapChainRemoved: + enum: + - ignored + - disabled + - enabled + type: string + type: object + status: + description: VolumeStatus defines the observed state of the Longhorn volume + properties: + actualSize: + format: int64 + type: integer + cloneStatus: + properties: + snapshot: + type: string + sourceVolume: + type: string + state: + type: string + type: object + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + currentImage: + type: string + currentMigrationNodeID: + description: the node that this volume is currently migrating to + type: string + currentNodeID: + type: string + expansionRequired: + type: boolean + frontendDisabled: + type: boolean + isStandby: + type: boolean + kubernetesStatus: + properties: + lastPVCRefAt: + type: string + lastPodRefAt: + type: string + namespace: + description: determine if PVC/Namespace is history or not + type: string + pvName: + type: string + pvStatus: + type: string + pvcName: + type: string + workloadsStatus: + description: determine if Pod/Workload is history or not + items: + properties: + podName: + type: string + podStatus: + type: string + workloadName: + type: string + workloadType: + type: string + type: object + nullable: true + type: array + type: object + lastBackup: + type: string + lastBackupAt: + type: string + lastDegradedAt: + type: string + offlineReplicaRebuildingRequired: + type: boolean + ownerID: + type: string + pendingNodeID: + description: Deprecated. + type: string + remountRequestedAt: + type: string + restoreInitiated: + type: boolean + restoreRequired: + type: boolean + robustness: + type: string + shareEndpoint: + type: string + shareState: + type: string + state: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: volumeattachments.longhorn.io +spec: + group: longhorn.io + names: + kind: VolumeAttachment + listKind: VolumeAttachmentList + plural: volumeattachments + shortNames: + - lhva + singular: volumeattachment + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: VolumeAttachment stores attachment information of a Longhorn volume + 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: VolumeAttachmentSpec defines the desired state of Longhorn VolumeAttachment + properties: + attachmentTickets: + additionalProperties: + properties: + generation: + description: A sequence number representing a specific generation of the desired state. Populated by the system. Read-only. + format: int64 + type: integer + id: + description: The unique ID of this attachment. Used to differentiate different attachments of the same volume. + type: string + nodeID: + description: The node that this attachment is requesting + type: string + parameters: + additionalProperties: + type: string + description: Optional additional parameter for this attachment + type: object + type: + type: string + type: object + type: object + volume: + description: The name of Longhorn volume of this VolumeAttachment + type: string + required: + - volume + type: object + status: + description: VolumeAttachmentStatus defines the observed state of Longhorn VolumeAttachment + properties: + attachmentTicketStatuses: + additionalProperties: + properties: + conditions: + description: Record any error when trying to fulfill this attachment + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + generation: + description: A sequence number representing a specific generation of the desired state. Populated by the system. Read-only. + format: int64 + type: integer + id: + description: The unique ID of this attachment. Used to differentiate different attachments of the same volume. + type: string + satisfied: + description: Indicate whether this attachment ticket has been satisfied + type: boolean + required: + - conditions + - satisfied + type: object + type: object + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: longhorn-role + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 +rules: +- apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - "*" +- apiGroups: [""] + resources: ["pods", "events", "persistentvolumes", "persistentvolumeclaims","persistentvolumeclaims/status", "nodes", "proxy/nodes", "pods/log", "secrets", "services", "endpoints", "configmaps", "serviceaccounts"] + verbs: ["*"] +- apiGroups: [""] + resources: ["namespaces"] + verbs: ["get", "list"] +- apiGroups: ["apps"] + resources: ["daemonsets", "statefulsets", "deployments"] + verbs: ["*"] +- apiGroups: ["batch"] + resources: ["jobs", "cronjobs"] + verbs: ["*"] +- apiGroups: ["policy"] + resources: ["poddisruptionbudgets", "podsecuritypolicies"] + verbs: ["*"] +- apiGroups: ["scheduling.k8s.io"] + resources: ["priorityclasses"] + verbs: ["watch", "list"] +- apiGroups: ["storage.k8s.io"] + resources: ["storageclasses", "volumeattachments", "volumeattachments/status", "csinodes", "csidrivers"] + verbs: ["*"] +- apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshotclasses", "volumesnapshots", "volumesnapshotcontents", "volumesnapshotcontents/status"] + verbs: ["*"] +- apiGroups: ["longhorn.io"] + resources: ["volumes", "volumes/status", "engines", "engines/status", "replicas", "replicas/status", "settings", + "engineimages", "engineimages/status", "nodes", "nodes/status", "instancemanagers", "instancemanagers/status", + "sharemanagers", "sharemanagers/status", "backingimages", "backingimages/status", + "backingimagemanagers", "backingimagemanagers/status", "backingimagedatasources", "backingimagedatasources/status", + "backuptargets", "backuptargets/status", "backupvolumes", "backupvolumes/status", "backups", "backups/status", + "recurringjobs", "recurringjobs/status", "orphans", "orphans/status", "snapshots", "snapshots/status", + "supportbundles", "supportbundles/status", "systembackups", "systembackups/status", "systemrestores", "systemrestores/status", + "volumeattachments", "volumeattachments/status"] + verbs: ["*"] +- apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["*"] +- apiGroups: ["metrics.k8s.io"] + resources: ["pods", "nodes"] + verbs: ["get", "list"] +- apiGroups: ["apiregistration.k8s.io"] + resources: ["apiservices"] + verbs: ["list", "watch"] +- apiGroups: ["admissionregistration.k8s.io"] + resources: ["mutatingwebhookconfigurations", "validatingwebhookconfigurations"] + verbs: ["get", "list", "create", "patch", "delete"] +- apiGroups: ["rbac.authorization.k8s.io"] + resources: ["roles", "rolebindings", "clusterrolebindings", "clusterroles"] + verbs: ["*"] +--- +# Source: longhorn/templates/clusterrolebinding.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: longhorn-bind + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: longhorn-role +subjects: +- kind: ServiceAccount + name: longhorn-service-account + namespace: longhorn-system +--- +# Source: longhorn/templates/clusterrolebinding.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: longhorn-support-bundle + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: cluster-admin +subjects: +- kind: ServiceAccount + name: longhorn-support-bundle + namespace: longhorn-system +--- +# Source: longhorn/templates/daemonset-sa.yaml +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + app: longhorn-manager + name: longhorn-backend + namespace: longhorn-system +spec: + type: ClusterIP + sessionAffinity: ClientIP + selector: + app: longhorn-manager + ports: + - name: manager + port: 9500 + targetPort: manager +--- +# Source: longhorn/templates/deployment-ui.yaml +kind: Service +apiVersion: v1 +metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + app: longhorn-ui + name: longhorn-frontend + namespace: longhorn-system +spec: + type: ClusterIP + selector: + app: longhorn-ui + ports: + - name: http + port: 80 + targetPort: http + nodePort: null +--- +# Source: longhorn/templates/services.yaml +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + app: longhorn-conversion-webhook + name: longhorn-conversion-webhook + namespace: longhorn-system +spec: + type: ClusterIP + sessionAffinity: ClientIP + selector: + app: longhorn-manager + ports: + - name: conversion-webhook + port: 9501 + targetPort: conversion-wh +--- +# Source: longhorn/templates/services.yaml +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + app: longhorn-admission-webhook + name: longhorn-admission-webhook + namespace: longhorn-system +spec: + type: ClusterIP + sessionAffinity: ClientIP + selector: + app: longhorn-manager + ports: + - name: admission-webhook + port: 9502 + targetPort: admission-wh +--- +# Source: longhorn/templates/services.yaml +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + app: longhorn-recovery-backend + name: longhorn-recovery-backend + namespace: longhorn-system +spec: + type: ClusterIP + sessionAffinity: ClientIP + selector: + app: longhorn-manager + ports: + - name: recovery-backend + port: 9503 + targetPort: recov-backend +--- +# Source: longhorn/templates/services.yaml +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + name: longhorn-engine-manager + namespace: longhorn-system +spec: + clusterIP: None + selector: + longhorn.io/component: instance-manager + longhorn.io/instance-manager-type: engine +--- +# Source: longhorn/templates/services.yaml +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + name: longhorn-replica-manager + namespace: longhorn-system +spec: + clusterIP: None + selector: + longhorn.io/component: instance-manager + longhorn.io/instance-manager-type: replica +--- +# Source: longhorn/templates/daemonset-sa.yaml +apiVersion: apps/v1 +kind: DaemonSet +metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + app: longhorn-manager + name: longhorn-manager + namespace: longhorn-system +spec: + selector: + matchLabels: + app: longhorn-manager + template: + metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + app: longhorn-manager + spec: + containers: + - name: longhorn-manager + image: longhornio/longhorn-manager:v1.5.3 + imagePullPolicy: IfNotPresent + securityContext: + privileged: true + command: + - longhorn-manager + - -d + - daemon + - --engine-image + - "longhornio/longhorn-engine:v1.5.3" + - --instance-manager-image + - "longhornio/longhorn-instance-manager:v1.5.3" + - --share-manager-image + - "longhornio/longhorn-share-manager:v1.5.3" + - --backing-image-manager-image + - "longhornio/backing-image-manager:v1.5.3" + - --support-bundle-manager-image + - "longhornio/support-bundle-kit:v0.0.27" + - --manager-image + - "longhornio/longhorn-manager:v1.5.3" + - --service-account + - longhorn-service-account + ports: + - containerPort: 9500 + name: manager + - containerPort: 9501 + name: conversion-wh + - containerPort: 9502 + name: admission-wh + - containerPort: 9503 + name: recov-backend + readinessProbe: + httpGet: + path: /v1/healthz + port: 9501 + scheme: HTTPS + volumeMounts: + - name: dev + mountPath: /host/dev/ + - name: proc + mountPath: /host/proc/ + - name: longhorn + mountPath: /var/lib/longhorn/ + mountPropagation: Bidirectional + - name: longhorn-grpc-tls + mountPath: /tls-files/ + env: + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + volumes: + - name: dev + hostPath: + path: /dev/ + - name: proc + hostPath: + path: /proc/ + - name: longhorn + hostPath: + path: /var/lib/longhorn/ + - name: longhorn-grpc-tls + secret: + secretName: longhorn-grpc-tls + optional: true + serviceAccountName: longhorn-service-account + updateStrategy: + rollingUpdate: + maxUnavailable: "100%" +--- +# Source: longhorn/templates/deployment-driver.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: longhorn-driver-deployer + namespace: longhorn-system + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 +spec: + replicas: 1 + selector: + matchLabels: + app: longhorn-driver-deployer + template: + metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + app: longhorn-driver-deployer + spec: + initContainers: + - name: wait-longhorn-manager + image: longhornio/longhorn-manager:v1.5.3 + command: ['sh', '-c', 'while [ $(curl -m 1 -s -o /dev/null -w "%{http_code}" http://longhorn-backend:9500/v1) != "200" ]; do echo waiting; sleep 2; done'] + containers: + - name: longhorn-driver-deployer + image: longhornio/longhorn-manager:v1.5.3 + imagePullPolicy: IfNotPresent + command: + - longhorn-manager + - -d + - deploy-driver + - --manager-image + - "longhornio/longhorn-manager:v1.5.3" + - --manager-url + - http://longhorn-backend:9500/v1 + env: + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: SERVICE_ACCOUNT + valueFrom: + fieldRef: + fieldPath: spec.serviceAccountName + - name: CSI_ATTACHER_IMAGE + value: "longhornio/csi-attacher:v4.2.0" + - name: CSI_PROVISIONER_IMAGE + value: "longhornio/csi-provisioner:v3.4.1" + - name: CSI_NODE_DRIVER_REGISTRAR_IMAGE + value: "longhornio/csi-node-driver-registrar:v2.7.0" + - name: CSI_RESIZER_IMAGE + value: "longhornio/csi-resizer:v1.7.0" + - name: CSI_SNAPSHOTTER_IMAGE + value: "longhornio/csi-snapshotter:v6.2.1" + - name: CSI_LIVENESS_PROBE_IMAGE + value: "longhornio/livenessprobe:v2.9.0" + serviceAccountName: longhorn-service-account + securityContext: + runAsUser: 0 +--- +# Source: longhorn/templates/deployment-ui.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + app: longhorn-ui + name: longhorn-ui + namespace: longhorn-system +spec: + replicas: 2 + selector: + matchLabels: + app: longhorn-ui + template: + metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + app: longhorn-ui + spec: + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 1 + podAffinityTerm: + labelSelector: + matchExpressions: + - key: app + operator: In + values: + - longhorn-ui + topologyKey: kubernetes.io/hostname + containers: + - name: longhorn-ui + image: longhornio/longhorn-ui:v1.5.3 + imagePullPolicy: IfNotPresent + volumeMounts: + - name : nginx-cache + mountPath: /var/cache/nginx/ + - name : nginx-config + mountPath: /var/config/nginx/ + - name: var-run + mountPath: /var/run/ + ports: + - containerPort: 8000 + name: http + env: + - name: LONGHORN_MANAGER_IP + value: "http://longhorn-backend:9500" + - name: LONGHORN_UI_PORT + value: "8000" + volumes: + - emptyDir: {} + name: nginx-cache + - emptyDir: {} + name: nginx-config + - emptyDir: {} + name: var-run +--- +# Source: longhorn/templates/validate-psp-install.yaml +# diff --git a/k3s/longhorn.yaml.1 b/k3s/longhorn.yaml.1 new file mode 100644 index 0000000..0e6aa36 --- /dev/null +++ b/k3s/longhorn.yaml.1 @@ -0,0 +1,4300 @@ +--- +# Builtin: "helm template" does not respect --create-namespace +apiVersion: v1 +kind: Namespace +metadata: + name: longhorn-system +--- +# Source: longhorn/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: longhorn-service-account + namespace: longhorn-system + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 +--- +# Source: longhorn/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: longhorn-support-bundle + namespace: longhorn-system + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 +--- +# Source: longhorn/templates/default-setting.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: longhorn-default-setting + namespace: longhorn-system + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 +data: + default-setting.yaml: |- +--- +# Source: longhorn/templates/storageclass.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: longhorn-storageclass + namespace: longhorn-system + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 +data: + storageclass.yaml: | + kind: StorageClass + apiVersion: storage.k8s.io/v1 + metadata: + name: longhorn + annotations: + storageclass.kubernetes.io/is-default-class: "true" + provisioner: driver.longhorn.io + allowVolumeExpansion: true + reclaimPolicy: "Delete" + volumeBindingMode: Immediate + parameters: + numberOfReplicas: "3" + staleReplicaTimeout: "30" + fromBackup: "" + fsType: "ext4" + dataLocality: "disabled" +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: backingimagedatasources.longhorn.io +spec: + group: longhorn.io + names: + kind: BackingImageDataSource + listKind: BackingImageDataSourceList + plural: backingimagedatasources + shortNames: + - lhbids + singular: backingimagedatasource + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The current state of the pod used to provision the backing image file from source + jsonPath: .status.currentState + name: State + type: string + - description: The data source type + jsonPath: .spec.sourceType + name: SourceType + type: string + - description: The node the backing image file will be prepared on + jsonPath: .spec.nodeID + name: Node + type: string + - description: The disk the backing image file will be prepared on + jsonPath: .spec.diskUUID + name: DiskUUID + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: BackingImageDataSource is where Longhorn stores backing image data source object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The system generated UUID of the provisioned backing image file + jsonPath: .spec.uuid + name: UUID + type: string + - description: The current state of the pod used to provision the backing image file from source + jsonPath: .status.currentState + name: State + type: string + - description: The data source type + jsonPath: .spec.sourceType + name: SourceType + type: string + - description: The backing image file size + jsonPath: .status.size + name: Size + type: string + - description: The node the backing image file will be prepared on + jsonPath: .spec.nodeID + name: Node + type: string + - description: The disk the backing image file will be prepared on + jsonPath: .spec.diskUUID + name: DiskUUID + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: BackingImageDataSource is where Longhorn stores backing image data source object. + 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: BackingImageDataSourceSpec defines the desired state of the Longhorn backing image data source + properties: + checksum: + type: string + diskPath: + type: string + diskUUID: + type: string + fileTransferred: + type: boolean + nodeID: + type: string + parameters: + additionalProperties: + type: string + type: object + sourceType: + enum: + - download + - upload + - export-from-volume + type: string + uuid: + type: string + type: object + status: + description: BackingImageDataSourceStatus defines the observed state of the Longhorn backing image data source + properties: + checksum: + type: string + currentState: + type: string + ip: + type: string + message: + type: string + ownerID: + type: string + progress: + type: integer + runningParameters: + additionalProperties: + type: string + nullable: true + type: object + size: + format: int64 + type: integer + storageIP: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: backingimagemanagers.longhorn.io +spec: + group: longhorn.io + names: + kind: BackingImageManager + listKind: BackingImageManagerList + plural: backingimagemanagers + shortNames: + - lhbim + singular: backingimagemanager + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The current state of the manager + jsonPath: .status.currentState + name: State + type: string + - description: The image the manager pod will use + jsonPath: .spec.image + name: Image + type: string + - description: The node the manager is on + jsonPath: .spec.nodeID + name: Node + type: string + - description: The disk the manager is responsible for + jsonPath: .spec.diskUUID + name: DiskUUID + type: string + - description: The disk path the manager is using + jsonPath: .spec.diskPath + name: DiskPath + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: BackingImageManager is where Longhorn stores backing image manager object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The current state of the manager + jsonPath: .status.currentState + name: State + type: string + - description: The image the manager pod will use + jsonPath: .spec.image + name: Image + type: string + - description: The node the manager is on + jsonPath: .spec.nodeID + name: Node + type: string + - description: The disk the manager is responsible for + jsonPath: .spec.diskUUID + name: DiskUUID + type: string + - description: The disk path the manager is using + jsonPath: .spec.diskPath + name: DiskPath + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: BackingImageManager is where Longhorn stores backing image manager object. + 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: BackingImageManagerSpec defines the desired state of the Longhorn backing image manager + properties: + backingImages: + additionalProperties: + type: string + type: object + diskPath: + type: string + diskUUID: + type: string + image: + type: string + nodeID: + type: string + type: object + status: + description: BackingImageManagerStatus defines the observed state of the Longhorn backing image manager + properties: + apiMinVersion: + type: integer + apiVersion: + type: integer + backingImageFileMap: + additionalProperties: + properties: + currentChecksum: + type: string + message: + type: string + name: + type: string + progress: + type: integer + senderManagerAddress: + type: string + sendingReference: + type: integer + size: + format: int64 + type: integer + state: + type: string + uuid: + type: string + type: object + nullable: true + type: object + currentState: + type: string + ip: + type: string + ownerID: + type: string + storageIP: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: backingimages.longhorn.io +spec: + conversion: + strategy: Webhook + webhook: + clientConfig: + service: + name: longhorn-conversion-webhook + namespace: longhorn-system + path: /v1/webhook/conversion + port: 9501 + conversionReviewVersions: + - v1beta2 + - v1beta1 + group: longhorn.io + names: + kind: BackingImage + listKind: BackingImageList + plural: backingimages + shortNames: + - lhbi + singular: backingimage + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The backing image name + jsonPath: .spec.image + name: Image + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: BackingImage is where Longhorn stores backing image object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The system generated UUID + jsonPath: .status.uuid + name: UUID + type: string + - description: The source of the backing image file data + jsonPath: .spec.sourceType + name: SourceType + type: string + - description: The backing image file size in each disk + jsonPath: .status.size + name: Size + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: BackingImage is where Longhorn stores backing image object. + 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: BackingImageSpec defines the desired state of the Longhorn backing image + properties: + checksum: + type: string + disks: + additionalProperties: + type: string + type: object + sourceParameters: + additionalProperties: + type: string + type: object + sourceType: + enum: + - download + - upload + - export-from-volume + type: string + type: object + status: + description: BackingImageStatus defines the observed state of the Longhorn backing image status + properties: + checksum: + type: string + diskFileStatusMap: + additionalProperties: + properties: + lastStateTransitionTime: + type: string + message: + type: string + progress: + type: integer + state: + type: string + type: object + nullable: true + type: object + diskLastRefAtMap: + additionalProperties: + type: string + nullable: true + type: object + ownerID: + type: string + size: + format: int64 + type: integer + uuid: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: backups.longhorn.io +spec: + group: longhorn.io + names: + kind: Backup + listKind: BackupList + plural: backups + shortNames: + - lhb + singular: backup + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The snapshot name + jsonPath: .status.snapshotName + name: SnapshotName + type: string + - description: The snapshot size + jsonPath: .status.size + name: SnapshotSize + type: string + - description: The snapshot creation time + jsonPath: .status.snapshotCreatedAt + name: SnapshotCreatedAt + type: string + - description: The backup state + jsonPath: .status.state + name: State + type: string + - description: The backup last synced time + jsonPath: .status.lastSyncedAt + name: LastSyncedAt + type: string + name: v1beta1 + schema: + openAPIV3Schema: + description: Backup is where Longhorn stores backup object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The snapshot name + jsonPath: .status.snapshotName + name: SnapshotName + type: string + - description: The snapshot size + jsonPath: .status.size + name: SnapshotSize + type: string + - description: The snapshot creation time + jsonPath: .status.snapshotCreatedAt + name: SnapshotCreatedAt + type: string + - description: The backup state + jsonPath: .status.state + name: State + type: string + - description: The backup last synced time + jsonPath: .status.lastSyncedAt + name: LastSyncedAt + type: string + name: v1beta2 + schema: + openAPIV3Schema: + description: Backup is where Longhorn stores backup object. + 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: BackupSpec defines the desired state of the Longhorn backup + properties: + labels: + additionalProperties: + type: string + description: The labels of snapshot backup. + type: object + snapshotName: + description: The snapshot name. + type: string + syncRequestedAt: + description: The time to request run sync the remote backup. + format: date-time + nullable: true + type: string + type: object + status: + description: BackupStatus defines the observed state of the Longhorn backup + properties: + backupCreatedAt: + description: The snapshot backup upload finished time. + type: string + compressionMethod: + description: Compression method + type: string + error: + description: The error message when taking the snapshot backup. + type: string + labels: + additionalProperties: + type: string + description: The labels of snapshot backup. + nullable: true + type: object + lastSyncedAt: + description: The last time that the backup was synced with the remote backup target. + format: date-time + nullable: true + type: string + messages: + additionalProperties: + type: string + description: The error messages when calling longhorn engine on listing or inspecting backups. + nullable: true + type: object + ownerID: + description: The node ID on which the controller is responsible to reconcile this backup CR. + type: string + progress: + description: The snapshot backup progress. + type: integer + replicaAddress: + description: The address of the replica that runs snapshot backup. + type: string + size: + description: The snapshot size. + type: string + snapshotCreatedAt: + description: The snapshot creation time. + type: string + snapshotName: + description: The snapshot name. + type: string + state: + description: The backup creation state. Can be "", "InProgress", "Completed", "Error", "Unknown". + type: string + url: + description: The snapshot backup URL. + type: string + volumeBackingImageName: + description: The volume's backing image name. + type: string + volumeCreated: + description: The volume creation time. + type: string + volumeName: + description: The volume name. + type: string + volumeSize: + description: The volume size. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: backuptargets.longhorn.io +spec: + conversion: + strategy: Webhook + webhook: + clientConfig: + service: + name: longhorn-conversion-webhook + namespace: longhorn-system + path: /v1/webhook/conversion + port: 9501 + conversionReviewVersions: + - v1beta2 + - v1beta1 + group: longhorn.io + names: + kind: BackupTarget + listKind: BackupTargetList + plural: backuptargets + shortNames: + - lhbt + singular: backuptarget + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The backup target URL + jsonPath: .spec.backupTargetURL + name: URL + type: string + - description: The backup target credential secret + jsonPath: .spec.credentialSecret + name: Credential + type: string + - description: The backup target poll interval + jsonPath: .spec.pollInterval + name: LastBackupAt + type: string + - description: Indicate whether the backup target is available or not + jsonPath: .status.available + name: Available + type: boolean + - description: The backup target last synced time + jsonPath: .status.lastSyncedAt + name: LastSyncedAt + type: string + name: v1beta1 + schema: + openAPIV3Schema: + description: BackupTarget is where Longhorn stores backup target object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The backup target URL + jsonPath: .spec.backupTargetURL + name: URL + type: string + - description: The backup target credential secret + jsonPath: .spec.credentialSecret + name: Credential + type: string + - description: The backup target poll interval + jsonPath: .spec.pollInterval + name: LastBackupAt + type: string + - description: Indicate whether the backup target is available or not + jsonPath: .status.available + name: Available + type: boolean + - description: The backup target last synced time + jsonPath: .status.lastSyncedAt + name: LastSyncedAt + type: string + name: v1beta2 + schema: + openAPIV3Schema: + description: BackupTarget is where Longhorn stores backup target object. + 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: BackupTargetSpec defines the desired state of the Longhorn backup target + properties: + backupTargetURL: + description: The backup target URL. + type: string + credentialSecret: + description: The backup target credential secret. + type: string + pollInterval: + description: The interval that the cluster needs to run sync with the backup target. + type: string + syncRequestedAt: + description: The time to request run sync the remote backup target. + format: date-time + nullable: true + type: string + type: object + status: + description: BackupTargetStatus defines the observed state of the Longhorn backup target + properties: + available: + description: Available indicates if the remote backup target is available or not. + type: boolean + conditions: + description: Records the reason on why the backup target is unavailable. + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + lastSyncedAt: + description: The last time that the controller synced with the remote backup target. + format: date-time + nullable: true + type: string + ownerID: + description: The node ID on which the controller is responsible to reconcile this backup target CR. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: backupvolumes.longhorn.io +spec: + group: longhorn.io + names: + kind: BackupVolume + listKind: BackupVolumeList + plural: backupvolumes + shortNames: + - lhbv + singular: backupvolume + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The backup volume creation time + jsonPath: .status.createdAt + name: CreatedAt + type: string + - description: The backup volume last backup name + jsonPath: .status.lastBackupName + name: LastBackupName + type: string + - description: The backup volume last backup time + jsonPath: .status.lastBackupAt + name: LastBackupAt + type: string + - description: The backup volume last synced time + jsonPath: .status.lastSyncedAt + name: LastSyncedAt + type: string + name: v1beta1 + schema: + openAPIV3Schema: + description: BackupVolume is where Longhorn stores backup volume object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The backup volume creation time + jsonPath: .status.createdAt + name: CreatedAt + type: string + - description: The backup volume last backup name + jsonPath: .status.lastBackupName + name: LastBackupName + type: string + - description: The backup volume last backup time + jsonPath: .status.lastBackupAt + name: LastBackupAt + type: string + - description: The backup volume last synced time + jsonPath: .status.lastSyncedAt + name: LastSyncedAt + type: string + name: v1beta2 + schema: + openAPIV3Schema: + description: BackupVolume is where Longhorn stores backup volume object. + 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: BackupVolumeSpec defines the desired state of the Longhorn backup volume + properties: + syncRequestedAt: + description: The time to request run sync the remote backup volume. + format: date-time + nullable: true + type: string + type: object + status: + description: BackupVolumeStatus defines the observed state of the Longhorn backup volume + properties: + backingImageChecksum: + description: the backing image checksum. + type: string + backingImageName: + description: The backing image name. + type: string + createdAt: + description: The backup volume creation time. + type: string + dataStored: + description: The backup volume block count. + type: string + labels: + additionalProperties: + type: string + description: The backup volume labels. + nullable: true + type: object + lastBackupAt: + description: The latest volume backup time. + type: string + lastBackupName: + description: The latest volume backup name. + type: string + lastModificationTime: + description: The backup volume config last modification time. + format: date-time + nullable: true + type: string + lastSyncedAt: + description: The last time that the backup volume was synced into the cluster. + format: date-time + nullable: true + type: string + messages: + additionalProperties: + type: string + description: The error messages when call longhorn engine on list or inspect backup volumes. + nullable: true + type: object + ownerID: + description: The node ID on which the controller is responsible to reconcile this backup volume CR. + type: string + size: + description: The backup volume size. + type: string + storageClassName: + description: the storage class name of pv/pvc binding with the volume. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: engineimages.longhorn.io +spec: + preserveUnknownFields: false + conversion: + strategy: Webhook + webhook: + clientConfig: + service: + name: longhorn-conversion-webhook + namespace: longhorn-system + path: /v1/webhook/conversion + port: 9501 + conversionReviewVersions: + - v1beta2 + - v1beta1 + group: longhorn.io + names: + kind: EngineImage + listKind: EngineImageList + plural: engineimages + shortNames: + - lhei + singular: engineimage + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: State of the engine image + jsonPath: .status.state + name: State + type: string + - description: The Longhorn engine image + jsonPath: .spec.image + name: Image + type: string + - description: Number of resources using the engine image + jsonPath: .status.refCount + name: RefCount + type: integer + - description: The build date of the engine image + jsonPath: .status.buildDate + name: BuildDate + type: date + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: EngineImage is where Longhorn stores engine image object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: State of the engine image + jsonPath: .status.state + name: State + type: string + - description: The Longhorn engine image + jsonPath: .spec.image + name: Image + type: string + - description: Number of resources using the engine image + jsonPath: .status.refCount + name: RefCount + type: integer + - description: The build date of the engine image + jsonPath: .status.buildDate + name: BuildDate + type: date + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: EngineImage is where Longhorn stores engine image object. + 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: EngineImageSpec defines the desired state of the Longhorn engine image + properties: + image: + minLength: 1 + type: string + required: + - image + type: object + status: + description: EngineImageStatus defines the observed state of the Longhorn engine image + properties: + buildDate: + type: string + cliAPIMinVersion: + type: integer + cliAPIVersion: + type: integer + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + controllerAPIMinVersion: + type: integer + controllerAPIVersion: + type: integer + dataFormatMinVersion: + type: integer + dataFormatVersion: + type: integer + gitCommit: + type: string + noRefSince: + type: string + nodeDeploymentMap: + additionalProperties: + type: boolean + nullable: true + type: object + ownerID: + type: string + refCount: + type: integer + state: + type: string + version: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: engines.longhorn.io +spec: + group: longhorn.io + names: + kind: Engine + listKind: EngineList + plural: engines + shortNames: + - lhe + singular: engine + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The current state of the engine + jsonPath: .status.currentState + name: State + type: string + - description: The node that the engine is on + jsonPath: .spec.nodeID + name: Node + type: string + - description: The instance manager of the engine + jsonPath: .status.instanceManagerName + name: InstanceManager + type: string + - description: The current image of the engine + jsonPath: .status.currentImage + name: Image + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: Engine is where Longhorn stores engine object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The current state of the engine + jsonPath: .status.currentState + name: State + type: string + - description: The node that the engine is on + jsonPath: .spec.nodeID + name: Node + type: string + - description: The instance manager of the engine + jsonPath: .status.instanceManagerName + name: InstanceManager + type: string + - description: The current image of the engine + jsonPath: .status.currentImage + name: Image + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: Engine is where Longhorn stores engine object. + 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: EngineSpec defines the desired state of the Longhorn engine + properties: + active: + type: boolean + backendStoreDriver: + enum: + - v1 + - v2 + type: string + backupVolume: + type: string + desireState: + type: string + disableFrontend: + type: boolean + engineImage: + type: string + frontend: + enum: + - blockdev + - iscsi + - nvmf + - "" + type: string + logRequested: + type: boolean + nodeID: + type: string + replicaAddressMap: + additionalProperties: + type: string + type: object + requestedBackupRestore: + type: string + requestedDataSource: + type: string + revisionCounterDisabled: + type: boolean + salvageRequested: + type: boolean + unmapMarkSnapChainRemovedEnabled: + type: boolean + upgradedReplicaAddressMap: + additionalProperties: + type: string + type: object + volumeName: + type: string + volumeSize: + format: int64 + type: string + type: object + status: + description: EngineStatus defines the observed state of the Longhorn engine + properties: + backupStatus: + additionalProperties: + properties: + backupURL: + type: string + error: + type: string + progress: + type: integer + replicaAddress: + type: string + snapshotName: + type: string + state: + type: string + type: object + nullable: true + type: object + cloneStatus: + additionalProperties: + properties: + error: + type: string + fromReplicaAddress: + type: string + isCloning: + type: boolean + progress: + type: integer + snapshotName: + type: string + state: + type: string + type: object + nullable: true + type: object + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + currentImage: + type: string + currentReplicaAddressMap: + additionalProperties: + type: string + nullable: true + type: object + currentSize: + format: int64 + type: string + currentState: + type: string + endpoint: + type: string + instanceManagerName: + type: string + ip: + type: string + isExpanding: + type: boolean + lastExpansionError: + type: string + lastExpansionFailedAt: + type: string + lastRestoredBackup: + type: string + logFetched: + type: boolean + ownerID: + type: string + port: + type: integer + purgeStatus: + additionalProperties: + properties: + error: + type: string + isPurging: + type: boolean + progress: + type: integer + state: + type: string + type: object + nullable: true + type: object + rebuildStatus: + additionalProperties: + properties: + error: + type: string + fromReplicaAddress: + type: string + isRebuilding: + type: boolean + progress: + type: integer + state: + type: string + type: object + nullable: true + type: object + replicaModeMap: + additionalProperties: + type: string + nullable: true + type: object + restoreStatus: + additionalProperties: + properties: + backupURL: + type: string + currentRestoringBackup: + type: string + error: + type: string + filename: + type: string + isRestoring: + type: boolean + lastRestored: + type: string + progress: + type: integer + state: + type: string + type: object + nullable: true + type: object + salvageExecuted: + type: boolean + snapshots: + additionalProperties: + properties: + children: + additionalProperties: + type: boolean + nullable: true + type: object + created: + type: string + labels: + additionalProperties: + type: string + nullable: true + type: object + name: + type: string + parent: + type: string + removed: + type: boolean + size: + type: string + usercreated: + type: boolean + type: object + nullable: true + type: object + snapshotsError: + type: string + started: + type: boolean + storageIP: + type: string + unmapMarkSnapChainRemovedEnabled: + type: boolean + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: instancemanagers.longhorn.io +spec: + group: longhorn.io + names: + kind: InstanceManager + listKind: InstanceManagerList + plural: instancemanagers + shortNames: + - lhim + singular: instancemanager + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The state of the instance manager + jsonPath: .status.currentState + name: State + type: string + - description: The type of the instance manager (engine or replica) + jsonPath: .spec.type + name: Type + type: string + - description: The node that the instance manager is running on + jsonPath: .spec.nodeID + name: Node + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: InstanceManager is where Longhorn stores instance manager object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The state of the instance manager + jsonPath: .status.currentState + name: State + type: string + - description: The type of the instance manager (engine or replica) + jsonPath: .spec.type + name: Type + type: string + - description: The node that the instance manager is running on + jsonPath: .spec.nodeID + name: Node + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: InstanceManager is where Longhorn stores instance manager object. + 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: InstanceManagerSpec defines the desired state of the Longhorn instancer manager + properties: + image: + type: string + nodeID: + type: string + type: + enum: + - aio + - engine + - replica + type: string + type: object + status: + description: InstanceManagerStatus defines the observed state of the Longhorn instance manager + properties: + apiMinVersion: + type: integer + apiVersion: + type: integer + proxyApiMinVersion: + type: integer + proxyApiVersion: + type: integer + currentState: + type: string + instanceEngines: + additionalProperties: + properties: + spec: + properties: + backendStoreDriver: + type: string + name: + type: string + type: object + status: + properties: + endpoint: + type: string + errorMsg: + type: string + listen: + type: string + portEnd: + format: int32 + type: integer + portStart: + format: int32 + type: integer + resourceVersion: + format: int64 + type: integer + state: + type: string + type: + type: string + type: object + type: object + nullable: true + type: object + instanceReplicas: + additionalProperties: + properties: + spec: + properties: + backendStoreDriver: + type: string + name: + type: string + type: object + status: + properties: + endpoint: + type: string + errorMsg: + type: string + listen: + type: string + portEnd: + format: int32 + type: integer + portStart: + format: int32 + type: integer + resourceVersion: + format: int64 + type: integer + state: + type: string + type: + type: string + type: object + type: object + nullable: true + type: object + instances: + additionalProperties: + properties: + spec: + properties: + backendStoreDriver: + type: string + name: + type: string + type: object + status: + properties: + endpoint: + type: string + errorMsg: + type: string + listen: + type: string + portEnd: + format: int32 + type: integer + portStart: + format: int32 + type: integer + resourceVersion: + format: int64 + type: integer + state: + type: string + type: + type: string + type: object + type: object + nullable: true + description: 'Deprecated: Replaced by InstanceEngines and InstanceReplicas' + type: object + ip: + type: string + ownerID: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: nodes.longhorn.io +spec: + preserveUnknownFields: false + conversion: + strategy: Webhook + webhook: + clientConfig: + service: + name: longhorn-conversion-webhook + namespace: longhorn-system + path: /v1/webhook/conversion + port: 9501 + conversionReviewVersions: + - v1beta2 + - v1beta1 + group: longhorn.io + names: + kind: Node + listKind: NodeList + plural: nodes + shortNames: + - lhn + singular: node + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: Indicate whether the node is ready + jsonPath: .status.conditions['Ready']['status'] + name: Ready + type: string + - description: Indicate whether the user disabled/enabled replica scheduling for the node + jsonPath: .spec.allowScheduling + name: AllowScheduling + type: boolean + - description: Indicate whether Longhorn can schedule replicas on the node + jsonPath: .status.conditions['Schedulable']['status'] + name: Schedulable + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: Node is where Longhorn stores Longhorn node object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: Indicate whether the node is ready + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: Indicate whether the user disabled/enabled replica scheduling for the node + jsonPath: .spec.allowScheduling + name: AllowScheduling + type: boolean + - description: Indicate whether Longhorn can schedule replicas on the node + jsonPath: .status.conditions[?(@.type=='Schedulable')].status + name: Schedulable + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: Node is where Longhorn stores Longhorn node object. + 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: NodeSpec defines the desired state of the Longhorn node + properties: + allowScheduling: + type: boolean + disks: + additionalProperties: + properties: + allowScheduling: + type: boolean + evictionRequested: + type: boolean + path: + type: string + storageReserved: + format: int64 + type: integer + tags: + items: + type: string + type: array + diskType: + enum: + - filesystem + - block + type: string + type: object + type: object + evictionRequested: + type: boolean + instanceManagerCPURequest: + type: integer + name: + type: string + tags: + items: + type: string + type: array + type: object + status: + description: NodeStatus defines the observed state of the Longhorn node + properties: + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + diskStatus: + additionalProperties: + properties: + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + diskType: + type: string + diskUUID: + type: string + scheduledReplica: + additionalProperties: + format: int64 + type: integer + nullable: true + type: object + storageAvailable: + format: int64 + type: integer + storageMaximum: + format: int64 + type: integer + storageScheduled: + format: int64 + type: integer + type: object + nullable: true + type: object + region: + type: string + snapshotCheckStatus: + properties: + lastPeriodicCheckedAt: + format: date-time + type: string + snapshotCheckState: + type: string + type: object + zone: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: orphans.longhorn.io +spec: + group: longhorn.io + names: + kind: Orphan + listKind: OrphanList + plural: orphans + shortNames: + - lho + singular: orphan + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The type of the orphan + jsonPath: .spec.orphanType + name: Type + type: string + - description: The node that the orphan is on + jsonPath: .spec.nodeID + name: Node + type: string + name: v1beta2 + schema: + openAPIV3Schema: + description: Orphan is where Longhorn stores orphan object. + 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: OrphanSpec defines the desired state of the Longhorn orphaned data + properties: + nodeID: + description: The node ID on which the controller is responsible to reconcile this orphan CR. + type: string + orphanType: + description: The type of the orphaned data. Can be "replica". + type: string + parameters: + additionalProperties: + type: string + description: The parameters of the orphaned data + type: object + type: object + status: + description: OrphanStatus defines the observed state of the Longhorn orphaned data + properties: + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + ownerID: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + longhorn-manager: "" + name: recurringjobs.longhorn.io +spec: + group: longhorn.io + names: + kind: RecurringJob + listKind: RecurringJobList + plural: recurringjobs + shortNames: + - lhrj + singular: recurringjob + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: Sets groupings to the jobs. When set to "default" group will be added to the volume label when no other job label exist in volume + jsonPath: .spec.groups + name: Groups + type: string + - description: Should be one of "backup" or "snapshot" + jsonPath: .spec.task + name: Task + type: string + - description: The cron expression represents recurring job scheduling + jsonPath: .spec.cron + name: Cron + type: string + - description: The number of snapshots/backups to keep for the volume + jsonPath: .spec.retain + name: Retain + type: integer + - description: The concurrent job to run by each cron job + jsonPath: .spec.concurrency + name: Concurrency + type: integer + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: Specify the labels + jsonPath: .spec.labels + name: Labels + type: string + name: v1beta1 + schema: + openAPIV3Schema: + description: RecurringJob is where Longhorn stores recurring job object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: Sets groupings to the jobs. When set to "default" group will be added to the volume label when no other job label exist in volume + jsonPath: .spec.groups + name: Groups + type: string + - description: Should be one of "snapshot", "snapshot-force-create", "snapshot-cleanup", "snapshot-delete", "backup", "backup-force-create" or "filesystem-trim" + jsonPath: .spec.task + name: Task + type: string + - description: The cron expression represents recurring job scheduling + jsonPath: .spec.cron + name: Cron + type: string + - description: The number of snapshots/backups to keep for the volume + jsonPath: .spec.retain + name: Retain + type: integer + - description: The concurrent job to run by each cron job + jsonPath: .spec.concurrency + name: Concurrency + type: integer + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: Specify the labels + jsonPath: .spec.labels + name: Labels + type: string + name: v1beta2 + schema: + openAPIV3Schema: + description: RecurringJob is where Longhorn stores recurring job object. + 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: RecurringJobSpec defines the desired state of the Longhorn recurring job + properties: + concurrency: + description: The concurrency of taking the snapshot/backup. + type: integer + cron: + description: The cron setting. + type: string + groups: + description: The recurring job group. + items: + type: string + type: array + labels: + additionalProperties: + type: string + description: The label of the snapshot/backup. + type: object + name: + description: The recurring job name. + type: string + retain: + description: The retain count of the snapshot/backup. + type: integer + task: + description: The recurring job task. Can be "snapshot", "snapshot-force-create", "snapshot-cleanup", "snapshot-delete", "backup", "backup-force-create" or "filesystem-trim" + enum: + - snapshot + - snapshot-force-create + - snapshot-cleanup + - snapshot-delete + - backup + - backup-force-create + - filesystem-trim + type: string + type: object + status: + description: RecurringJobStatus defines the observed state of the Longhorn recurring job + properties: + ownerID: + description: The owner ID which is responsible to reconcile this recurring job CR. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: replicas.longhorn.io +spec: + group: longhorn.io + names: + kind: Replica + listKind: ReplicaList + plural: replicas + shortNames: + - lhr + singular: replica + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The current state of the replica + jsonPath: .status.currentState + name: State + type: string + - description: The node that the replica is on + jsonPath: .spec.nodeID + name: Node + type: string + - description: The disk that the replica is on + jsonPath: .spec.diskID + name: Disk + type: string + - description: The instance manager of the replica + jsonPath: .status.instanceManagerName + name: InstanceManager + type: string + - description: The current image of the replica + jsonPath: .status.currentImage + name: Image + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: Replica is where Longhorn stores replica object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The current state of the replica + jsonPath: .status.currentState + name: State + type: string + - description: The node that the replica is on + jsonPath: .spec.nodeID + name: Node + type: string + - description: The disk that the replica is on + jsonPath: .spec.diskID + name: Disk + type: string + - description: The instance manager of the replica + jsonPath: .status.instanceManagerName + name: InstanceManager + type: string + - description: The current image of the replica + jsonPath: .status.currentImage + name: Image + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: Replica is where Longhorn stores replica object. + 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: ReplicaSpec defines the desired state of the Longhorn replica + properties: + active: + type: boolean + backendStoreDriver: + enum: + - v1 + - v2 + type: string + backingImage: + type: string + dataDirectoryName: + type: string + desireState: + type: string + diskID: + type: string + diskPath: + type: string + engineImage: + type: string + engineName: + type: string + failedAt: + type: string + hardNodeAffinity: + type: string + healthyAt: + type: string + logRequested: + type: boolean + nodeID: + type: string + rebuildRetryCount: + type: integer + revisionCounterDisabled: + type: boolean + salvageRequested: + type: boolean + unmapMarkDiskChainRemovedEnabled: + type: boolean + volumeName: + type: string + volumeSize: + format: int64 + type: string + type: object + status: + description: ReplicaStatus defines the observed state of the Longhorn replica + properties: + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + currentImage: + type: string + currentState: + type: string + evictionRequested: + type: boolean + instanceManagerName: + type: string + ip: + type: string + logFetched: + type: boolean + ownerID: + type: string + port: + type: integer + salvageExecuted: + type: boolean + started: + type: boolean + storageIP: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: settings.longhorn.io +spec: + group: longhorn.io + names: + kind: Setting + listKind: SettingList + plural: settings + shortNames: + - lhs + singular: setting + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The value of the setting + jsonPath: .value + name: Value + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: Setting is where Longhorn stores setting object. + 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 + value: + type: string + required: + - value + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The value of the setting + jsonPath: .value + name: Value + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: Setting is where Longhorn stores setting object. + 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 + value: + type: string + required: + - value + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: sharemanagers.longhorn.io +spec: + group: longhorn.io + names: + kind: ShareManager + listKind: ShareManagerList + plural: sharemanagers + shortNames: + - lhsm + singular: sharemanager + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The state of the share manager + jsonPath: .status.state + name: State + type: string + - description: The node that the share manager is owned by + jsonPath: .status.ownerID + name: Node + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: ShareManager is where Longhorn stores share manager object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The state of the share manager + jsonPath: .status.state + name: State + type: string + - description: The node that the share manager is owned by + jsonPath: .status.ownerID + name: Node + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: ShareManager is where Longhorn stores share manager object. + 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: ShareManagerSpec defines the desired state of the Longhorn share manager + properties: + image: + description: Share manager image used for creating a share manager pod + type: string + type: object + status: + description: ShareManagerStatus defines the observed state of the Longhorn share manager + properties: + endpoint: + description: NFS endpoint that can access the mounted filesystem of the volume + type: string + ownerID: + description: The node ID on which the controller is responsible to reconcile this share manager resource + type: string + state: + description: The state of the share manager resource + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: snapshots.longhorn.io +spec: + group: longhorn.io + names: + kind: Snapshot + listKind: SnapshotList + plural: snapshots + shortNames: + - lhsnap + singular: snapshot + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The volume that this snapshot belongs to + jsonPath: .spec.volume + name: Volume + type: string + - description: Timestamp when the point-in-time snapshot was taken + jsonPath: .status.creationTime + name: CreationTime + type: string + - description: Indicates if the snapshot is ready to be used to restore/backup a volume + jsonPath: .status.readyToUse + name: ReadyToUse + type: boolean + - description: Represents the minimum size of volume required to rehydrate from this snapshot + jsonPath: .status.restoreSize + name: RestoreSize + type: string + - description: The actual size of the snapshot + jsonPath: .status.size + name: Size + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: Snapshot is the Schema for the snapshots 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: SnapshotSpec defines the desired state of Longhorn Snapshot + properties: + createSnapshot: + description: require creating a new snapshot + type: boolean + labels: + additionalProperties: + type: string + description: The labels of snapshot + nullable: true + type: object + volume: + description: the volume that this snapshot belongs to. This field is immutable after creation. Required + type: string + required: + - volume + type: object + status: + description: SnapshotStatus defines the observed state of Longhorn Snapshot + properties: + checksum: + type: string + children: + additionalProperties: + type: boolean + nullable: true + type: object + creationTime: + type: string + error: + type: string + labels: + additionalProperties: + type: string + nullable: true + type: object + markRemoved: + type: boolean + ownerID: + type: string + parent: + type: string + readyToUse: + type: boolean + restoreSize: + format: int64 + type: integer + size: + format: int64 + type: integer + userCreated: + type: boolean + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: supportbundles.longhorn.io +spec: + group: longhorn.io + names: + kind: SupportBundle + listKind: SupportBundleList + plural: supportbundles + shortNames: + - lhbundle + singular: supportbundle + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The state of the support bundle + jsonPath: .status.state + name: State + type: string + - description: The issue URL + jsonPath: .spec.issueURL + name: Issue + type: string + - description: A brief description of the issue + jsonPath: .spec.description + name: Description + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: SupportBundle is where Longhorn stores support bundle object + 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: SupportBundleSpec defines the desired state of the Longhorn SupportBundle + properties: + description: + description: A brief description of the issue + type: string + issueURL: + description: The issue URL + nullable: true + type: string + nodeID: + description: The preferred responsible controller node ID. + type: string + required: + - description + type: object + status: + description: SupportBundleStatus defines the observed state of the Longhorn SupportBundle + properties: + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + filename: + type: string + filesize: + format: int64 + type: integer + image: + description: The support bundle manager image + type: string + managerIP: + description: The support bundle manager IP + type: string + ownerID: + description: The current responsible controller node ID + type: string + progress: + type: integer + state: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: systembackups.longhorn.io +spec: + group: longhorn.io + names: + kind: SystemBackup + listKind: SystemBackupList + plural: systembackups + shortNames: + - lhsb + singular: systembackup + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The system backup Longhorn version + jsonPath: .status.version + name: Version + type: string + - description: The system backup state + jsonPath: .status.state + name: State + type: string + - description: The system backup creation time + jsonPath: .status.createdAt + name: Created + type: string + - description: The last time that the system backup was synced into the cluster + jsonPath: .status.lastSyncedAt + name: LastSyncedAt + type: string + name: v1beta2 + schema: + openAPIV3Schema: + description: SystemBackup is where Longhorn stores system backup object + 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: SystemBackupSpec defines the desired state of the Longhorn SystemBackup + properties: + volumeBackupPolicy: + description: The create volume backup policy Can be "if-not-present", "always" or "disabled" + nullable: true + type: string + type: object + status: + description: SystemBackupStatus defines the observed state of the Longhorn SystemBackup + properties: + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + createdAt: + description: The system backup creation time. + format: date-time + type: string + gitCommit: + description: The saved Longhorn manager git commit. + nullable: true + type: string + lastSyncedAt: + description: The last time that the system backup was synced into the cluster. + format: date-time + nullable: true + type: string + managerImage: + description: The saved manager image. + type: string + ownerID: + description: The node ID of the responsible controller to reconcile this SystemBackup. + type: string + state: + description: The system backup state. + type: string + version: + description: The saved Longhorn version. + nullable: true + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: systemrestores.longhorn.io +spec: + group: longhorn.io + names: + kind: SystemRestore + listKind: SystemRestoreList + plural: systemrestores + shortNames: + - lhsr + singular: systemrestore + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The system restore state + jsonPath: .status.state + name: State + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: SystemRestore is where Longhorn stores system restore object + 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: SystemRestoreSpec defines the desired state of the Longhorn SystemRestore + properties: + systemBackup: + description: The system backup name in the object store. + type: string + required: + - systemBackup + type: object + status: + description: SystemRestoreStatus defines the observed state of the Longhorn SystemRestore + properties: + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + ownerID: + description: The node ID of the responsible controller to reconcile this SystemRestore. + type: string + sourceURL: + description: The source system backup URL. + type: string + state: + description: The system restore state. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: volumes.longhorn.io +spec: + preserveUnknownFields: false + conversion: + strategy: Webhook + webhook: + clientConfig: + service: + name: longhorn-conversion-webhook + namespace: longhorn-system + path: /v1/webhook/conversion + port: 9501 + conversionReviewVersions: + - v1beta2 + - v1beta1 + group: longhorn.io + names: + kind: Volume + listKind: VolumeList + plural: volumes + shortNames: + - lhv + singular: volume + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The state of the volume + jsonPath: .status.state + name: State + type: string + - description: The robustness of the volume + jsonPath: .status.robustness + name: Robustness + type: string + - description: The scheduled condition of the volume + jsonPath: .status.conditions['scheduled']['status'] + name: Scheduled + type: string + - description: The size of the volume + jsonPath: .spec.size + name: Size + type: string + - description: The node that the volume is currently attaching to + jsonPath: .status.currentNodeID + name: Node + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: Volume is where Longhorn stores volume object. + 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: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: The state of the volume + jsonPath: .status.state + name: State + type: string + - description: The robustness of the volume + jsonPath: .status.robustness + name: Robustness + type: string + - description: The scheduled condition of the volume + jsonPath: .status.conditions[?(@.type=='Schedulable')].status + name: Scheduled + type: string + - description: The size of the volume + jsonPath: .spec.size + name: Size + type: string + - description: The node that the volume is currently attaching to + jsonPath: .status.currentNodeID + name: Node + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: Volume is where Longhorn stores volume object. + 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: VolumeSpec defines the desired state of the Longhorn volume + properties: + Standby: + type: boolean + accessMode: + enum: + - rwo + - rwx + type: string + backendStoreDriver: + enum: + - v1 + - v2 + type: string + backingImage: + type: string + backupCompressionMethod: + enum: + - none + - lz4 + - gzip + type: string + dataLocality: + enum: + - disabled + - best-effort + - strict-local + type: string + dataSource: + type: string + disableFrontend: + type: boolean + diskSelector: + items: + type: string + type: array + encrypted: + type: boolean + engineImage: + type: string + fromBackup: + type: string + frontend: + enum: + - blockdev + - iscsi + - nvmf + - "" + type: string + lastAttachedBy: + type: string + migratable: + type: boolean + migrationNodeID: + type: string + nodeID: + type: string + nodeSelector: + items: + type: string + type: array + numberOfReplicas: + type: integer + offlineReplicaRebuilding: + description: OfflineReplicaRebuilding is used to determine if the offline replica rebuilding feature is enabled or not + enum: + - ignored + - disabled + - enabled + type: string + replicaAutoBalance: + enum: + - ignored + - disabled + - least-effort + - best-effort + type: string + replicaSoftAntiAffinity: + description: Replica soft anti affinity of the volume. Set enabled to allow replicas to be scheduled on the same node + enum: + - ignored + - enabled + - disabled + type: string + replicaZoneSoftAntiAffinity: + description: Replica zone soft anti affinity of the volume. Set enabled to allow replicas to be scheduled in the same zone + enum: + - ignored + - enabled + - disabled + type: string + restoreVolumeRecurringJob: + enum: + - ignored + - enabled + - disabled + type: string + revisionCounterDisabled: + type: boolean + size: + format: int64 + type: string + snapshotDataIntegrity: + enum: + - ignored + - disabled + - enabled + - fast-check + type: string + staleReplicaTimeout: + type: integer + unmapMarkSnapChainRemoved: + enum: + - ignored + - disabled + - enabled + type: string + type: object + status: + description: VolumeStatus defines the observed state of the Longhorn volume + properties: + actualSize: + format: int64 + type: integer + cloneStatus: + properties: + snapshot: + type: string + sourceVolume: + type: string + state: + type: string + type: object + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + currentImage: + type: string + currentMigrationNodeID: + description: the node that this volume is currently migrating to + type: string + currentNodeID: + type: string + expansionRequired: + type: boolean + frontendDisabled: + type: boolean + isStandby: + type: boolean + kubernetesStatus: + properties: + lastPVCRefAt: + type: string + lastPodRefAt: + type: string + namespace: + description: determine if PVC/Namespace is history or not + type: string + pvName: + type: string + pvStatus: + type: string + pvcName: + type: string + workloadsStatus: + description: determine if Pod/Workload is history or not + items: + properties: + podName: + type: string + podStatus: + type: string + workloadName: + type: string + workloadType: + type: string + type: object + nullable: true + type: array + type: object + lastBackup: + type: string + lastBackupAt: + type: string + lastDegradedAt: + type: string + offlineReplicaRebuildingRequired: + type: boolean + ownerID: + type: string + pendingNodeID: + description: Deprecated. + type: string + remountRequestedAt: + type: string + restoreInitiated: + type: boolean + restoreRequired: + type: boolean + robustness: + type: string + shareEndpoint: + type: string + shareState: + type: string + state: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/crds.yaml +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + longhorn-manager: "" + name: volumeattachments.longhorn.io +spec: + group: longhorn.io + names: + kind: VolumeAttachment + listKind: VolumeAttachmentList + plural: volumeattachments + shortNames: + - lhva + singular: volumeattachment + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: VolumeAttachment stores attachment information of a Longhorn volume + 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: VolumeAttachmentSpec defines the desired state of Longhorn VolumeAttachment + properties: + attachmentTickets: + additionalProperties: + properties: + generation: + description: A sequence number representing a specific generation of the desired state. Populated by the system. Read-only. + format: int64 + type: integer + id: + description: The unique ID of this attachment. Used to differentiate different attachments of the same volume. + type: string + nodeID: + description: The node that this attachment is requesting + type: string + parameters: + additionalProperties: + type: string + description: Optional additional parameter for this attachment + type: object + type: + type: string + type: object + type: object + volume: + description: The name of Longhorn volume of this VolumeAttachment + type: string + required: + - volume + type: object + status: + description: VolumeAttachmentStatus defines the observed state of Longhorn VolumeAttachment + properties: + attachmentTicketStatuses: + additionalProperties: + properties: + conditions: + description: Record any error when trying to fulfill this attachment + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status to another. + type: string + message: + description: Human-readable message indicating details about last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's last transition. + type: string + status: + description: Status is the status of the condition. Can be True, False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + nullable: true + type: array + generation: + description: A sequence number representing a specific generation of the desired state. Populated by the system. Read-only. + format: int64 + type: integer + id: + description: The unique ID of this attachment. Used to differentiate different attachments of the same volume. + type: string + satisfied: + description: Indicate whether this attachment ticket has been satisfied + type: boolean + required: + - conditions + - satisfied + type: object + type: object + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +# Source: longhorn/templates/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: longhorn-role + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 +rules: +- apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - "*" +- apiGroups: [""] + resources: ["pods", "events", "persistentvolumes", "persistentvolumeclaims","persistentvolumeclaims/status", "nodes", "proxy/nodes", "pods/log", "secrets", "services", "endpoints", "configmaps", "serviceaccounts"] + verbs: ["*"] +- apiGroups: [""] + resources: ["namespaces"] + verbs: ["get", "list"] +- apiGroups: ["apps"] + resources: ["daemonsets", "statefulsets", "deployments"] + verbs: ["*"] +- apiGroups: ["batch"] + resources: ["jobs", "cronjobs"] + verbs: ["*"] +- apiGroups: ["policy"] + resources: ["poddisruptionbudgets", "podsecuritypolicies"] + verbs: ["*"] +- apiGroups: ["scheduling.k8s.io"] + resources: ["priorityclasses"] + verbs: ["watch", "list"] +- apiGroups: ["storage.k8s.io"] + resources: ["storageclasses", "volumeattachments", "volumeattachments/status", "csinodes", "csidrivers"] + verbs: ["*"] +- apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshotclasses", "volumesnapshots", "volumesnapshotcontents", "volumesnapshotcontents/status"] + verbs: ["*"] +- apiGroups: ["longhorn.io"] + resources: ["volumes", "volumes/status", "engines", "engines/status", "replicas", "replicas/status", "settings", + "engineimages", "engineimages/status", "nodes", "nodes/status", "instancemanagers", "instancemanagers/status", + "sharemanagers", "sharemanagers/status", "backingimages", "backingimages/status", + "backingimagemanagers", "backingimagemanagers/status", "backingimagedatasources", "backingimagedatasources/status", + "backuptargets", "backuptargets/status", "backupvolumes", "backupvolumes/status", "backups", "backups/status", + "recurringjobs", "recurringjobs/status", "orphans", "orphans/status", "snapshots", "snapshots/status", + "supportbundles", "supportbundles/status", "systembackups", "systembackups/status", "systemrestores", "systemrestores/status", + "volumeattachments", "volumeattachments/status"] + verbs: ["*"] +- apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["*"] +- apiGroups: ["metrics.k8s.io"] + resources: ["pods", "nodes"] + verbs: ["get", "list"] +- apiGroups: ["apiregistration.k8s.io"] + resources: ["apiservices"] + verbs: ["list", "watch"] +- apiGroups: ["admissionregistration.k8s.io"] + resources: ["mutatingwebhookconfigurations", "validatingwebhookconfigurations"] + verbs: ["get", "list", "create", "patch", "delete"] +- apiGroups: ["rbac.authorization.k8s.io"] + resources: ["roles", "rolebindings", "clusterrolebindings", "clusterroles"] + verbs: ["*"] +--- +# Source: longhorn/templates/clusterrolebinding.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: longhorn-bind + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: longhorn-role +subjects: +- kind: ServiceAccount + name: longhorn-service-account + namespace: longhorn-system +--- +# Source: longhorn/templates/clusterrolebinding.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: longhorn-support-bundle + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: cluster-admin +subjects: +- kind: ServiceAccount + name: longhorn-support-bundle + namespace: longhorn-system +--- +# Source: longhorn/templates/daemonset-sa.yaml +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + app: longhorn-manager + name: longhorn-backend + namespace: longhorn-system +spec: + type: ClusterIP + sessionAffinity: ClientIP + selector: + app: longhorn-manager + ports: + - name: manager + port: 9500 + targetPort: manager +--- +# Source: longhorn/templates/deployment-ui.yaml +kind: Service +apiVersion: v1 +metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + app: longhorn-ui + name: longhorn-frontend + namespace: longhorn-system +spec: + type: ClusterIP + selector: + app: longhorn-ui + ports: + - name: http + port: 80 + targetPort: http + nodePort: null +--- +# Source: longhorn/templates/services.yaml +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + app: longhorn-conversion-webhook + name: longhorn-conversion-webhook + namespace: longhorn-system +spec: + type: ClusterIP + sessionAffinity: ClientIP + selector: + app: longhorn-manager + ports: + - name: conversion-webhook + port: 9501 + targetPort: conversion-wh +--- +# Source: longhorn/templates/services.yaml +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + app: longhorn-admission-webhook + name: longhorn-admission-webhook + namespace: longhorn-system +spec: + type: ClusterIP + sessionAffinity: ClientIP + selector: + app: longhorn-manager + ports: + - name: admission-webhook + port: 9502 + targetPort: admission-wh +--- +# Source: longhorn/templates/services.yaml +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + app: longhorn-recovery-backend + name: longhorn-recovery-backend + namespace: longhorn-system +spec: + type: ClusterIP + sessionAffinity: ClientIP + selector: + app: longhorn-manager + ports: + - name: recovery-backend + port: 9503 + targetPort: recov-backend +--- +# Source: longhorn/templates/services.yaml +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + name: longhorn-engine-manager + namespace: longhorn-system +spec: + clusterIP: None + selector: + longhorn.io/component: instance-manager + longhorn.io/instance-manager-type: engine +--- +# Source: longhorn/templates/services.yaml +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + name: longhorn-replica-manager + namespace: longhorn-system +spec: + clusterIP: None + selector: + longhorn.io/component: instance-manager + longhorn.io/instance-manager-type: replica +--- +# Source: longhorn/templates/daemonset-sa.yaml +apiVersion: apps/v1 +kind: DaemonSet +metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + app: longhorn-manager + name: longhorn-manager + namespace: longhorn-system +spec: + selector: + matchLabels: + app: longhorn-manager + template: + metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + app: longhorn-manager + spec: + containers: + - name: longhorn-manager + image: longhornio/longhorn-manager:v1.5.3 + imagePullPolicy: IfNotPresent + securityContext: + privileged: true + command: + - longhorn-manager + - -d + - daemon + - --engine-image + - "longhornio/longhorn-engine:v1.5.3" + - --instance-manager-image + - "longhornio/longhorn-instance-manager:v1.5.3" + - --share-manager-image + - "longhornio/longhorn-share-manager:v1.5.3" + - --backing-image-manager-image + - "longhornio/backing-image-manager:v1.5.3" + - --support-bundle-manager-image + - "longhornio/support-bundle-kit:v0.0.27" + - --manager-image + - "longhornio/longhorn-manager:v1.5.3" + - --service-account + - longhorn-service-account + ports: + - containerPort: 9500 + name: manager + - containerPort: 9501 + name: conversion-wh + - containerPort: 9502 + name: admission-wh + - containerPort: 9503 + name: recov-backend + readinessProbe: + httpGet: + path: /v1/healthz + port: 9501 + scheme: HTTPS + volumeMounts: + - name: dev + mountPath: /host/dev/ + - name: proc + mountPath: /host/proc/ + - name: longhorn + mountPath: /var/lib/longhorn/ + mountPropagation: Bidirectional + - name: longhorn-grpc-tls + mountPath: /tls-files/ + env: + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + volumes: + - name: dev + hostPath: + path: /dev/ + - name: proc + hostPath: + path: /proc/ + - name: longhorn + hostPath: + path: /var/lib/longhorn/ + - name: longhorn-grpc-tls + secret: + secretName: longhorn-grpc-tls + optional: true + serviceAccountName: longhorn-service-account + updateStrategy: + rollingUpdate: + maxUnavailable: "100%" +--- +# Source: longhorn/templates/deployment-driver.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: longhorn-driver-deployer + namespace: longhorn-system + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 +spec: + replicas: 1 + selector: + matchLabels: + app: longhorn-driver-deployer + template: + metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + app: longhorn-driver-deployer + spec: + initContainers: + - name: wait-longhorn-manager + image: longhornio/longhorn-manager:v1.5.3 + command: ['sh', '-c', 'while [ $(curl -m 1 -s -o /dev/null -w "%{http_code}" http://longhorn-backend:9500/v1) != "200" ]; do echo waiting; sleep 2; done'] + containers: + - name: longhorn-driver-deployer + image: longhornio/longhorn-manager:v1.5.3 + imagePullPolicy: IfNotPresent + command: + - longhorn-manager + - -d + - deploy-driver + - --manager-image + - "longhornio/longhorn-manager:v1.5.3" + - --manager-url + - http://longhorn-backend:9500/v1 + env: + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: SERVICE_ACCOUNT + valueFrom: + fieldRef: + fieldPath: spec.serviceAccountName + - name: CSI_ATTACHER_IMAGE + value: "longhornio/csi-attacher:v4.2.0" + - name: CSI_PROVISIONER_IMAGE + value: "longhornio/csi-provisioner:v3.4.1" + - name: CSI_NODE_DRIVER_REGISTRAR_IMAGE + value: "longhornio/csi-node-driver-registrar:v2.7.0" + - name: CSI_RESIZER_IMAGE + value: "longhornio/csi-resizer:v1.7.0" + - name: CSI_SNAPSHOTTER_IMAGE + value: "longhornio/csi-snapshotter:v6.2.1" + - name: CSI_LIVENESS_PROBE_IMAGE + value: "longhornio/livenessprobe:v2.9.0" + serviceAccountName: longhorn-service-account + securityContext: + runAsUser: 0 +--- +# Source: longhorn/templates/deployment-ui.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + app: longhorn-ui + name: longhorn-ui + namespace: longhorn-system +spec: + replicas: 2 + selector: + matchLabels: + app: longhorn-ui + template: + metadata: + labels: + app.kubernetes.io/name: longhorn + app.kubernetes.io/instance: longhorn + app.kubernetes.io/version: v1.5.3 + app: longhorn-ui + spec: + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 1 + podAffinityTerm: + labelSelector: + matchExpressions: + - key: app + operator: In + values: + - longhorn-ui + topologyKey: kubernetes.io/hostname + containers: + - name: longhorn-ui + image: longhornio/longhorn-ui:v1.5.3 + imagePullPolicy: IfNotPresent + volumeMounts: + - name : nginx-cache + mountPath: /var/cache/nginx/ + - name : nginx-config + mountPath: /var/config/nginx/ + - name: var-run + mountPath: /var/run/ + ports: + - containerPort: 8000 + name: http + env: + - name: LONGHORN_MANAGER_IP + value: "http://longhorn-backend:9500" + - name: LONGHORN_UI_PORT + value: "8000" + volumes: + - emptyDir: {} + name: nginx-cache + - emptyDir: {} + name: nginx-config + - emptyDir: {} + name: var-run +--- +# Source: longhorn/templates/validate-psp-install.yaml +# From eba19592781b7de385437e9097d9e973bee125e4 Mon Sep 17 00:00:00 2001 From: Federico Stagni Date: Wed, 25 Sep 2024 12:10:18 +0200 Subject: [PATCH 5/7] restructured + added few advices --- k3s/README.md | 139 +++++++++++++++++++++----------------------------- 1 file changed, 59 insertions(+), 80 deletions(-) diff --git a/k3s/README.md b/k3s/README.md index c3525d6..a384a5b 100644 --- a/k3s/README.md +++ b/k3s/README.md @@ -1,9 +1,11 @@ -# diracx-k3s +# Deploy diracx on a k3s cluster remotely -Deploy diracx on a k3s cluster remotely +## Before you start -## Resources +Make sure you go at least through the requirements below + +### Resources (to study) kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/ @@ -18,26 +20,28 @@ diracx: https://github.com/DIRACGrid/diracx diracx-charts: https://github.com/DIRACGrid/diracx-charts -## Requirements - -- Accessible cluster machines via ssh - -- kubectl (client for managing kubernetes cluster) +### Requirements for the (Virtual) machines of your cluster: -- helm (tool for managing kubernetes deployments via charts) +You should have either one machine (for a test setup) or 3 or more. Avoid 2. -- Clone this repo on your laptop - -- Ports +Minimal requirements: +- Accessible via ssh (root) +- Ports that need to be open - 6443 (kubernetes) - - 8001 (kubernetes dashboard) + - 8001 (kubectl dashboard) - 8080 (longhorn dashboard) - 9000 (traefik dashboard) +- Check that you follow the recommendations https://docs.k3s.io/installation/requirements especially paying attention to the point about firewall + +The diracx chart includes by default all services that will ever be needed. These include MySQL, OpenSearch, MinIO, etc. Refer to the `values.yml` file for info (look for the `enabled` entries). +If you think you will install everything, pay attention to provide enough disk space, so if your machines come from a private cloud create and assign volumes. Few minimal relevant info: +- **longhorn** normally uses `/var/lib/longhorn` for storing its volumes. You can modify this value, for example below we used `/mnt/longhorn` +- **minIO** suggestions can be found [here](https://min.io/docs/minio/linux/operations/checklists/hardware.html#use-xfs-formatted-drives-with-labels). The info you need to extract is basically to use `mkfs.xfs` for formatting the volume. + -Check that you follow the recommendations https://docs.k3s.io/installation/requirements +## Client software to install -Install kubectl (on laptop) ---------------------------- +### kubectl ```bash # kubectl @@ -52,76 +56,68 @@ echo "$(cat kubectl.sha256) kubectl" | sha256sum --check # install sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl +# Enable completion (optional but useful) +source <(kubectl completion bash) ``` -Install helm (on laptop) ---------------------------- + +### helm ```bash curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.sh + +# Enable completion (optional but useful) +source <(helm completion bash) ``` -Install longhornctl (on laptop) ---------------------------- + +### longhornctl (optional) ```bash curl -L https://github.com/longhorn/cli/releases/download/${LonghornVersion}/longhornctl-${OS}-${ARCH} -o longhornctl # check https://github.com/longhorn/cli/releases chmod +x longhornctl mv ./longhornctl /usr/local/bin/longhornctl -``` - -Enable completion (optional but useful) ---------------------------------------- - -```bash -# kubectl -source <(kubectl completion bash) - -# helm -source <(helm completion bash) - -# longhornctl +# Enable completion (optional but useful) source <(longhornctl completion bash) ``` -## Deploy K3S remotely (using k3sup) - -Install k3sup (on laptop) -------------------------- +### k3sup ```bash curl -sLS https://get.k3sup.dev | sh sudo install k3sup /usr/local/bin/ ``` -Assuming your cluster is composed of 2 machines (main server and agent server) - -```bash -# install k3s on main server -export SERVER_IP=xxx.xxx.xxx.xxx -export USER=root -k3sup install --ip $SERVER_IP --user $USER --k3s-extra-args '--flannel-backend=wireguard-native' +## Deploy K3S remotely (using k3sup) +1. Move yourself in a directory when you would like to keep deployment files +```bash +git clone git@github.com:DIRACGrid/diracx-charts +``` -# join agent server +2. For the main server: -export AGENT_IP=xxx.xxx.xxx.xxx +```bash +export SERVER_IP=xxx.xxx.xxx.xxx +k3sup install --ip $SERVER_IP --user root --k3s-extra-args '--flannel-backend=wireguard-native' +``` -k3sup join --ip $AGENT_IP --server-ip $SERVER_IP --user $USER +3. For each agent server: +``` +k3sup join --ip $AGENT_IP --server-ip $SERVER_IP --user root ``` -Test your cluster ------------------ +### Test your cluster ```bash -export KUBECONFIG=`pwd`/kubeconfig +export KUBECONFIG=$PWD/kubeconfig kubectl config use-context default kubectl get node @@ -129,22 +125,18 @@ kubectl get node kubectl get pods -A ``` -## Deploy Kubernetes Dashboard (optional but useful) +### Deploy Kubernetes Dashboard (optional but useful) ```bash kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml -kubectl apply -f ./manifest/dashboard/cluster-role.yaml -kubectl apply -f ./manifest/dashboard/secret.yaml -kubectl apply -f ./manifest/dashboard/service-account.yaml -``` +kubectl apply -f ./diracx-charts/k3s/manifest/dashboard/cluster-role.yaml +kubectl apply -f ./diracx-charts/k3s/manifest/dashboard/secret.yaml +kubectl apply -f ./diracx-charts/k3s/manifest/dashboard/service-account.yaml -```bash # generate token kubectl -n kubernetes-dashboard create token admin-user -``` -```bash # launch web server kubectl proxy & ``` @@ -154,7 +146,7 @@ Note: use token created just above for login Choose `Token` as login method, paste the token just generated -## Get Traefik Dashboard +### Get Traefik Dashboard Traefik comes out of the box with k3s. In order to access Traefik Dashboard from your laptop: @@ -164,20 +156,14 @@ kubectl --namespace kube-system port-forward deployments/traefik 9000:9000 & In a web browser, go to : http://localhost:9000/dashboard/ -Storage configuration (Longhorn) --------------------------------- +### Storage configuration (Longhorn) Deploy longhorn in your cluster: ```bash kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.5.3/deploy/prerequisite/longhorn-iscsi-installation.yaml - kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.5.3/deploy/prerequisite/longhorn-nfs-installation.yaml -``` - -**Single or two nodes cluster** (less than 3 nodes) -```bash wget https://raw.githubusercontent.com/longhorn/longhorn/v1.5.3/deploy/longhorn.yaml ``` @@ -195,12 +181,6 @@ kubectl apply -f longhorn.yaml ``` -**Multi node cluster** (more than 2 nodes) - -```bash -kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.5.3/deploy/longhorn.yaml -``` - Check environnment ------------------ @@ -225,7 +205,7 @@ kubectl port-forward -n longhorn-system svc/longhorn-frontend 8080:80 & and then visualize it by visiting http://localhost:8080 -## What is your hostname ? + ## Deploy diracx ```bash -# Clone diracx repositories - -git clone https://github.com/DIRACGrid/diracx-charts.git - # Update the config with your hostname sed -i 's//thenameyouareacutally.using.com/g' ./diracx-charts/k3s/examples/* +``` -# Deploy via provided helm charts +Now, it is time to choose what to install, so go through `./diracx-charts/diracx/values.yaml` file and edit it accordingly. +``` +# Deploy time! helm install --timeout 3600s diracx ./diracx-charts/diracx/ -f ./diracx-charts/k3s/examples/my.values.yaml --debug ``` @@ -278,7 +257,7 @@ git commit -m 'Initial config' ## Post-install tips -In case you would like to make us of the services installed (e.g. MySQL or OpenSearch) from outisde the kubernetes cluster, there are different solutions and configurations to make. LoadBalancer, NodePort, or Ingress are the options. One of these would need to be set out. +In case you would like to make us of the services installed (e.g. MySQL or OpenSearch) from inside the kubernetes cluster, there are different solutions and configurations to make. LoadBalancer, NodePort, or Ingress are the options. One of these would need to be set out. Similar considerations apply for the use of certificates. See https://github.com/DIRACGrid/diracx-charts/issues/107 From 84bf0c7b1ceecd4b443f5d649153d0e0dc5dccea Mon Sep 17 00:00:00 2001 From: Federico Stagni Date: Wed, 25 Sep 2024 14:49:15 +0200 Subject: [PATCH 6/7] few fixes --- diracx/Chart.yaml | 4 +- diracx/values.yaml | 2 +- k3s/longhorn.yaml | 4300 ------------------------------------------- k3s/longhorn.yaml.1 | 4300 ------------------------------------------- 4 files changed, 3 insertions(+), 8603 deletions(-) delete mode 100644 k3s/longhorn.yaml delete mode 100644 k3s/longhorn.yaml.1 diff --git a/diracx/Chart.yaml b/diracx/Chart.yaml index e7d108b..82d6fd9 100644 --- a/diracx/Chart.yaml +++ b/diracx/Chart.yaml @@ -17,7 +17,7 @@ version: 0.1.0 # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "0.0.1a" +appVersion: "0.0.1a17" dependencies: @@ -30,7 +30,7 @@ dependencies: - name: elasticsearch version: 8.5.1 repository: https://helm.elastic.co - # condition: elasticsearch.enabled + condition: elasticsearch.enabled - name: dex version: 0.14.2 diff --git a/diracx/values.yaml b/diracx/values.yaml index 3f7cdff..9176de1 100644 --- a/diracx/values.yaml +++ b/diracx/values.yaml @@ -13,7 +13,7 @@ global: # What storage class should we use for DiracX volumes storageClassName: standard # -- timeout for job deadlines - activeDeadlineSeconds: 900 + activeDeadlineSeconds: 3600 images: tag: "dev" services: ghcr.io/diracgrid/diracx/services diff --git a/k3s/longhorn.yaml b/k3s/longhorn.yaml deleted file mode 100644 index 7ff9267..0000000 --- a/k3s/longhorn.yaml +++ /dev/null @@ -1,4300 +0,0 @@ ---- -# Builtin: "helm template" does not respect --create-namespace -apiVersion: v1 -kind: Namespace -metadata: - name: longhorn-system ---- -# Source: longhorn/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: longhorn-service-account - namespace: longhorn-system - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 ---- -# Source: longhorn/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: longhorn-support-bundle - namespace: longhorn-system - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 ---- -# Source: longhorn/templates/default-setting.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: longhorn-default-setting - namespace: longhorn-system - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 -data: - default-setting.yaml: |- ---- -# Source: longhorn/templates/storageclass.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: longhorn-storageclass - namespace: longhorn-system - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 -data: - storageclass.yaml: | - kind: StorageClass - apiVersion: storage.k8s.io/v1 - metadata: - name: longhorn - annotations: - storageclass.kubernetes.io/is-default-class: "true" - provisioner: driver.longhorn.io - allowVolumeExpansion: true - reclaimPolicy: "Delete" - volumeBindingMode: Immediate - parameters: - numberOfReplicas: "2" - staleReplicaTimeout: "30" - fromBackup: "" - fsType: "ext4" - dataLocality: "disabled" ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: backingimagedatasources.longhorn.io -spec: - group: longhorn.io - names: - kind: BackingImageDataSource - listKind: BackingImageDataSourceList - plural: backingimagedatasources - shortNames: - - lhbids - singular: backingimagedatasource - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The current state of the pod used to provision the backing image file from source - jsonPath: .status.currentState - name: State - type: string - - description: The data source type - jsonPath: .spec.sourceType - name: SourceType - type: string - - description: The node the backing image file will be prepared on - jsonPath: .spec.nodeID - name: Node - type: string - - description: The disk the backing image file will be prepared on - jsonPath: .spec.diskUUID - name: DiskUUID - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: BackingImageDataSource is where Longhorn stores backing image data source object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The system generated UUID of the provisioned backing image file - jsonPath: .spec.uuid - name: UUID - type: string - - description: The current state of the pod used to provision the backing image file from source - jsonPath: .status.currentState - name: State - type: string - - description: The data source type - jsonPath: .spec.sourceType - name: SourceType - type: string - - description: The backing image file size - jsonPath: .status.size - name: Size - type: string - - description: The node the backing image file will be prepared on - jsonPath: .spec.nodeID - name: Node - type: string - - description: The disk the backing image file will be prepared on - jsonPath: .spec.diskUUID - name: DiskUUID - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: BackingImageDataSource is where Longhorn stores backing image data source object. - 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: BackingImageDataSourceSpec defines the desired state of the Longhorn backing image data source - properties: - checksum: - type: string - diskPath: - type: string - diskUUID: - type: string - fileTransferred: - type: boolean - nodeID: - type: string - parameters: - additionalProperties: - type: string - type: object - sourceType: - enum: - - download - - upload - - export-from-volume - type: string - uuid: - type: string - type: object - status: - description: BackingImageDataSourceStatus defines the observed state of the Longhorn backing image data source - properties: - checksum: - type: string - currentState: - type: string - ip: - type: string - message: - type: string - ownerID: - type: string - progress: - type: integer - runningParameters: - additionalProperties: - type: string - nullable: true - type: object - size: - format: int64 - type: integer - storageIP: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: backingimagemanagers.longhorn.io -spec: - group: longhorn.io - names: - kind: BackingImageManager - listKind: BackingImageManagerList - plural: backingimagemanagers - shortNames: - - lhbim - singular: backingimagemanager - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The current state of the manager - jsonPath: .status.currentState - name: State - type: string - - description: The image the manager pod will use - jsonPath: .spec.image - name: Image - type: string - - description: The node the manager is on - jsonPath: .spec.nodeID - name: Node - type: string - - description: The disk the manager is responsible for - jsonPath: .spec.diskUUID - name: DiskUUID - type: string - - description: The disk path the manager is using - jsonPath: .spec.diskPath - name: DiskPath - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: BackingImageManager is where Longhorn stores backing image manager object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The current state of the manager - jsonPath: .status.currentState - name: State - type: string - - description: The image the manager pod will use - jsonPath: .spec.image - name: Image - type: string - - description: The node the manager is on - jsonPath: .spec.nodeID - name: Node - type: string - - description: The disk the manager is responsible for - jsonPath: .spec.diskUUID - name: DiskUUID - type: string - - description: The disk path the manager is using - jsonPath: .spec.diskPath - name: DiskPath - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: BackingImageManager is where Longhorn stores backing image manager object. - 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: BackingImageManagerSpec defines the desired state of the Longhorn backing image manager - properties: - backingImages: - additionalProperties: - type: string - type: object - diskPath: - type: string - diskUUID: - type: string - image: - type: string - nodeID: - type: string - type: object - status: - description: BackingImageManagerStatus defines the observed state of the Longhorn backing image manager - properties: - apiMinVersion: - type: integer - apiVersion: - type: integer - backingImageFileMap: - additionalProperties: - properties: - currentChecksum: - type: string - message: - type: string - name: - type: string - progress: - type: integer - senderManagerAddress: - type: string - sendingReference: - type: integer - size: - format: int64 - type: integer - state: - type: string - uuid: - type: string - type: object - nullable: true - type: object - currentState: - type: string - ip: - type: string - ownerID: - type: string - storageIP: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: backingimages.longhorn.io -spec: - conversion: - strategy: Webhook - webhook: - clientConfig: - service: - name: longhorn-conversion-webhook - namespace: longhorn-system - path: /v1/webhook/conversion - port: 9501 - conversionReviewVersions: - - v1beta2 - - v1beta1 - group: longhorn.io - names: - kind: BackingImage - listKind: BackingImageList - plural: backingimages - shortNames: - - lhbi - singular: backingimage - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The backing image name - jsonPath: .spec.image - name: Image - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: BackingImage is where Longhorn stores backing image object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The system generated UUID - jsonPath: .status.uuid - name: UUID - type: string - - description: The source of the backing image file data - jsonPath: .spec.sourceType - name: SourceType - type: string - - description: The backing image file size in each disk - jsonPath: .status.size - name: Size - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: BackingImage is where Longhorn stores backing image object. - 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: BackingImageSpec defines the desired state of the Longhorn backing image - properties: - checksum: - type: string - disks: - additionalProperties: - type: string - type: object - sourceParameters: - additionalProperties: - type: string - type: object - sourceType: - enum: - - download - - upload - - export-from-volume - type: string - type: object - status: - description: BackingImageStatus defines the observed state of the Longhorn backing image status - properties: - checksum: - type: string - diskFileStatusMap: - additionalProperties: - properties: - lastStateTransitionTime: - type: string - message: - type: string - progress: - type: integer - state: - type: string - type: object - nullable: true - type: object - diskLastRefAtMap: - additionalProperties: - type: string - nullable: true - type: object - ownerID: - type: string - size: - format: int64 - type: integer - uuid: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: backups.longhorn.io -spec: - group: longhorn.io - names: - kind: Backup - listKind: BackupList - plural: backups - shortNames: - - lhb - singular: backup - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The snapshot name - jsonPath: .status.snapshotName - name: SnapshotName - type: string - - description: The snapshot size - jsonPath: .status.size - name: SnapshotSize - type: string - - description: The snapshot creation time - jsonPath: .status.snapshotCreatedAt - name: SnapshotCreatedAt - type: string - - description: The backup state - jsonPath: .status.state - name: State - type: string - - description: The backup last synced time - jsonPath: .status.lastSyncedAt - name: LastSyncedAt - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: Backup is where Longhorn stores backup object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The snapshot name - jsonPath: .status.snapshotName - name: SnapshotName - type: string - - description: The snapshot size - jsonPath: .status.size - name: SnapshotSize - type: string - - description: The snapshot creation time - jsonPath: .status.snapshotCreatedAt - name: SnapshotCreatedAt - type: string - - description: The backup state - jsonPath: .status.state - name: State - type: string - - description: The backup last synced time - jsonPath: .status.lastSyncedAt - name: LastSyncedAt - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: Backup is where Longhorn stores backup object. - 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: BackupSpec defines the desired state of the Longhorn backup - properties: - labels: - additionalProperties: - type: string - description: The labels of snapshot backup. - type: object - snapshotName: - description: The snapshot name. - type: string - syncRequestedAt: - description: The time to request run sync the remote backup. - format: date-time - nullable: true - type: string - type: object - status: - description: BackupStatus defines the observed state of the Longhorn backup - properties: - backupCreatedAt: - description: The snapshot backup upload finished time. - type: string - compressionMethod: - description: Compression method - type: string - error: - description: The error message when taking the snapshot backup. - type: string - labels: - additionalProperties: - type: string - description: The labels of snapshot backup. - nullable: true - type: object - lastSyncedAt: - description: The last time that the backup was synced with the remote backup target. - format: date-time - nullable: true - type: string - messages: - additionalProperties: - type: string - description: The error messages when calling longhorn engine on listing or inspecting backups. - nullable: true - type: object - ownerID: - description: The node ID on which the controller is responsible to reconcile this backup CR. - type: string - progress: - description: The snapshot backup progress. - type: integer - replicaAddress: - description: The address of the replica that runs snapshot backup. - type: string - size: - description: The snapshot size. - type: string - snapshotCreatedAt: - description: The snapshot creation time. - type: string - snapshotName: - description: The snapshot name. - type: string - state: - description: The backup creation state. Can be "", "InProgress", "Completed", "Error", "Unknown". - type: string - url: - description: The snapshot backup URL. - type: string - volumeBackingImageName: - description: The volume's backing image name. - type: string - volumeCreated: - description: The volume creation time. - type: string - volumeName: - description: The volume name. - type: string - volumeSize: - description: The volume size. - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: backuptargets.longhorn.io -spec: - conversion: - strategy: Webhook - webhook: - clientConfig: - service: - name: longhorn-conversion-webhook - namespace: longhorn-system - path: /v1/webhook/conversion - port: 9501 - conversionReviewVersions: - - v1beta2 - - v1beta1 - group: longhorn.io - names: - kind: BackupTarget - listKind: BackupTargetList - plural: backuptargets - shortNames: - - lhbt - singular: backuptarget - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The backup target URL - jsonPath: .spec.backupTargetURL - name: URL - type: string - - description: The backup target credential secret - jsonPath: .spec.credentialSecret - name: Credential - type: string - - description: The backup target poll interval - jsonPath: .spec.pollInterval - name: LastBackupAt - type: string - - description: Indicate whether the backup target is available or not - jsonPath: .status.available - name: Available - type: boolean - - description: The backup target last synced time - jsonPath: .status.lastSyncedAt - name: LastSyncedAt - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: BackupTarget is where Longhorn stores backup target object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The backup target URL - jsonPath: .spec.backupTargetURL - name: URL - type: string - - description: The backup target credential secret - jsonPath: .spec.credentialSecret - name: Credential - type: string - - description: The backup target poll interval - jsonPath: .spec.pollInterval - name: LastBackupAt - type: string - - description: Indicate whether the backup target is available or not - jsonPath: .status.available - name: Available - type: boolean - - description: The backup target last synced time - jsonPath: .status.lastSyncedAt - name: LastSyncedAt - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: BackupTarget is where Longhorn stores backup target object. - 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: BackupTargetSpec defines the desired state of the Longhorn backup target - properties: - backupTargetURL: - description: The backup target URL. - type: string - credentialSecret: - description: The backup target credential secret. - type: string - pollInterval: - description: The interval that the cluster needs to run sync with the backup target. - type: string - syncRequestedAt: - description: The time to request run sync the remote backup target. - format: date-time - nullable: true - type: string - type: object - status: - description: BackupTargetStatus defines the observed state of the Longhorn backup target - properties: - available: - description: Available indicates if the remote backup target is available or not. - type: boolean - conditions: - description: Records the reason on why the backup target is unavailable. - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - lastSyncedAt: - description: The last time that the controller synced with the remote backup target. - format: date-time - nullable: true - type: string - ownerID: - description: The node ID on which the controller is responsible to reconcile this backup target CR. - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: backupvolumes.longhorn.io -spec: - group: longhorn.io - names: - kind: BackupVolume - listKind: BackupVolumeList - plural: backupvolumes - shortNames: - - lhbv - singular: backupvolume - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The backup volume creation time - jsonPath: .status.createdAt - name: CreatedAt - type: string - - description: The backup volume last backup name - jsonPath: .status.lastBackupName - name: LastBackupName - type: string - - description: The backup volume last backup time - jsonPath: .status.lastBackupAt - name: LastBackupAt - type: string - - description: The backup volume last synced time - jsonPath: .status.lastSyncedAt - name: LastSyncedAt - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: BackupVolume is where Longhorn stores backup volume object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The backup volume creation time - jsonPath: .status.createdAt - name: CreatedAt - type: string - - description: The backup volume last backup name - jsonPath: .status.lastBackupName - name: LastBackupName - type: string - - description: The backup volume last backup time - jsonPath: .status.lastBackupAt - name: LastBackupAt - type: string - - description: The backup volume last synced time - jsonPath: .status.lastSyncedAt - name: LastSyncedAt - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: BackupVolume is where Longhorn stores backup volume object. - 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: BackupVolumeSpec defines the desired state of the Longhorn backup volume - properties: - syncRequestedAt: - description: The time to request run sync the remote backup volume. - format: date-time - nullable: true - type: string - type: object - status: - description: BackupVolumeStatus defines the observed state of the Longhorn backup volume - properties: - backingImageChecksum: - description: the backing image checksum. - type: string - backingImageName: - description: The backing image name. - type: string - createdAt: - description: The backup volume creation time. - type: string - dataStored: - description: The backup volume block count. - type: string - labels: - additionalProperties: - type: string - description: The backup volume labels. - nullable: true - type: object - lastBackupAt: - description: The latest volume backup time. - type: string - lastBackupName: - description: The latest volume backup name. - type: string - lastModificationTime: - description: The backup volume config last modification time. - format: date-time - nullable: true - type: string - lastSyncedAt: - description: The last time that the backup volume was synced into the cluster. - format: date-time - nullable: true - type: string - messages: - additionalProperties: - type: string - description: The error messages when call longhorn engine on list or inspect backup volumes. - nullable: true - type: object - ownerID: - description: The node ID on which the controller is responsible to reconcile this backup volume CR. - type: string - size: - description: The backup volume size. - type: string - storageClassName: - description: the storage class name of pv/pvc binding with the volume. - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: engineimages.longhorn.io -spec: - preserveUnknownFields: false - conversion: - strategy: Webhook - webhook: - clientConfig: - service: - name: longhorn-conversion-webhook - namespace: longhorn-system - path: /v1/webhook/conversion - port: 9501 - conversionReviewVersions: - - v1beta2 - - v1beta1 - group: longhorn.io - names: - kind: EngineImage - listKind: EngineImageList - plural: engineimages - shortNames: - - lhei - singular: engineimage - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: State of the engine image - jsonPath: .status.state - name: State - type: string - - description: The Longhorn engine image - jsonPath: .spec.image - name: Image - type: string - - description: Number of resources using the engine image - jsonPath: .status.refCount - name: RefCount - type: integer - - description: The build date of the engine image - jsonPath: .status.buildDate - name: BuildDate - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: EngineImage is where Longhorn stores engine image object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: State of the engine image - jsonPath: .status.state - name: State - type: string - - description: The Longhorn engine image - jsonPath: .spec.image - name: Image - type: string - - description: Number of resources using the engine image - jsonPath: .status.refCount - name: RefCount - type: integer - - description: The build date of the engine image - jsonPath: .status.buildDate - name: BuildDate - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: EngineImage is where Longhorn stores engine image object. - 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: EngineImageSpec defines the desired state of the Longhorn engine image - properties: - image: - minLength: 1 - type: string - required: - - image - type: object - status: - description: EngineImageStatus defines the observed state of the Longhorn engine image - properties: - buildDate: - type: string - cliAPIMinVersion: - type: integer - cliAPIVersion: - type: integer - conditions: - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - controllerAPIMinVersion: - type: integer - controllerAPIVersion: - type: integer - dataFormatMinVersion: - type: integer - dataFormatVersion: - type: integer - gitCommit: - type: string - noRefSince: - type: string - nodeDeploymentMap: - additionalProperties: - type: boolean - nullable: true - type: object - ownerID: - type: string - refCount: - type: integer - state: - type: string - version: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: engines.longhorn.io -spec: - group: longhorn.io - names: - kind: Engine - listKind: EngineList - plural: engines - shortNames: - - lhe - singular: engine - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The current state of the engine - jsonPath: .status.currentState - name: State - type: string - - description: The node that the engine is on - jsonPath: .spec.nodeID - name: Node - type: string - - description: The instance manager of the engine - jsonPath: .status.instanceManagerName - name: InstanceManager - type: string - - description: The current image of the engine - jsonPath: .status.currentImage - name: Image - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: Engine is where Longhorn stores engine object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The current state of the engine - jsonPath: .status.currentState - name: State - type: string - - description: The node that the engine is on - jsonPath: .spec.nodeID - name: Node - type: string - - description: The instance manager of the engine - jsonPath: .status.instanceManagerName - name: InstanceManager - type: string - - description: The current image of the engine - jsonPath: .status.currentImage - name: Image - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: Engine is where Longhorn stores engine object. - 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: EngineSpec defines the desired state of the Longhorn engine - properties: - active: - type: boolean - backendStoreDriver: - enum: - - v1 - - v2 - type: string - backupVolume: - type: string - desireState: - type: string - disableFrontend: - type: boolean - engineImage: - type: string - frontend: - enum: - - blockdev - - iscsi - - nvmf - - "" - type: string - logRequested: - type: boolean - nodeID: - type: string - replicaAddressMap: - additionalProperties: - type: string - type: object - requestedBackupRestore: - type: string - requestedDataSource: - type: string - revisionCounterDisabled: - type: boolean - salvageRequested: - type: boolean - unmapMarkSnapChainRemovedEnabled: - type: boolean - upgradedReplicaAddressMap: - additionalProperties: - type: string - type: object - volumeName: - type: string - volumeSize: - format: int64 - type: string - type: object - status: - description: EngineStatus defines the observed state of the Longhorn engine - properties: - backupStatus: - additionalProperties: - properties: - backupURL: - type: string - error: - type: string - progress: - type: integer - replicaAddress: - type: string - snapshotName: - type: string - state: - type: string - type: object - nullable: true - type: object - cloneStatus: - additionalProperties: - properties: - error: - type: string - fromReplicaAddress: - type: string - isCloning: - type: boolean - progress: - type: integer - snapshotName: - type: string - state: - type: string - type: object - nullable: true - type: object - conditions: - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - currentImage: - type: string - currentReplicaAddressMap: - additionalProperties: - type: string - nullable: true - type: object - currentSize: - format: int64 - type: string - currentState: - type: string - endpoint: - type: string - instanceManagerName: - type: string - ip: - type: string - isExpanding: - type: boolean - lastExpansionError: - type: string - lastExpansionFailedAt: - type: string - lastRestoredBackup: - type: string - logFetched: - type: boolean - ownerID: - type: string - port: - type: integer - purgeStatus: - additionalProperties: - properties: - error: - type: string - isPurging: - type: boolean - progress: - type: integer - state: - type: string - type: object - nullable: true - type: object - rebuildStatus: - additionalProperties: - properties: - error: - type: string - fromReplicaAddress: - type: string - isRebuilding: - type: boolean - progress: - type: integer - state: - type: string - type: object - nullable: true - type: object - replicaModeMap: - additionalProperties: - type: string - nullable: true - type: object - restoreStatus: - additionalProperties: - properties: - backupURL: - type: string - currentRestoringBackup: - type: string - error: - type: string - filename: - type: string - isRestoring: - type: boolean - lastRestored: - type: string - progress: - type: integer - state: - type: string - type: object - nullable: true - type: object - salvageExecuted: - type: boolean - snapshots: - additionalProperties: - properties: - children: - additionalProperties: - type: boolean - nullable: true - type: object - created: - type: string - labels: - additionalProperties: - type: string - nullable: true - type: object - name: - type: string - parent: - type: string - removed: - type: boolean - size: - type: string - usercreated: - type: boolean - type: object - nullable: true - type: object - snapshotsError: - type: string - started: - type: boolean - storageIP: - type: string - unmapMarkSnapChainRemovedEnabled: - type: boolean - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: instancemanagers.longhorn.io -spec: - group: longhorn.io - names: - kind: InstanceManager - listKind: InstanceManagerList - plural: instancemanagers - shortNames: - - lhim - singular: instancemanager - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The state of the instance manager - jsonPath: .status.currentState - name: State - type: string - - description: The type of the instance manager (engine or replica) - jsonPath: .spec.type - name: Type - type: string - - description: The node that the instance manager is running on - jsonPath: .spec.nodeID - name: Node - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: InstanceManager is where Longhorn stores instance manager object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The state of the instance manager - jsonPath: .status.currentState - name: State - type: string - - description: The type of the instance manager (engine or replica) - jsonPath: .spec.type - name: Type - type: string - - description: The node that the instance manager is running on - jsonPath: .spec.nodeID - name: Node - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: InstanceManager is where Longhorn stores instance manager object. - 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: InstanceManagerSpec defines the desired state of the Longhorn instancer manager - properties: - image: - type: string - nodeID: - type: string - type: - enum: - - aio - - engine - - replica - type: string - type: object - status: - description: InstanceManagerStatus defines the observed state of the Longhorn instance manager - properties: - apiMinVersion: - type: integer - apiVersion: - type: integer - proxyApiMinVersion: - type: integer - proxyApiVersion: - type: integer - currentState: - type: string - instanceEngines: - additionalProperties: - properties: - spec: - properties: - backendStoreDriver: - type: string - name: - type: string - type: object - status: - properties: - endpoint: - type: string - errorMsg: - type: string - listen: - type: string - portEnd: - format: int32 - type: integer - portStart: - format: int32 - type: integer - resourceVersion: - format: int64 - type: integer - state: - type: string - type: - type: string - type: object - type: object - nullable: true - type: object - instanceReplicas: - additionalProperties: - properties: - spec: - properties: - backendStoreDriver: - type: string - name: - type: string - type: object - status: - properties: - endpoint: - type: string - errorMsg: - type: string - listen: - type: string - portEnd: - format: int32 - type: integer - portStart: - format: int32 - type: integer - resourceVersion: - format: int64 - type: integer - state: - type: string - type: - type: string - type: object - type: object - nullable: true - type: object - instances: - additionalProperties: - properties: - spec: - properties: - backendStoreDriver: - type: string - name: - type: string - type: object - status: - properties: - endpoint: - type: string - errorMsg: - type: string - listen: - type: string - portEnd: - format: int32 - type: integer - portStart: - format: int32 - type: integer - resourceVersion: - format: int64 - type: integer - state: - type: string - type: - type: string - type: object - type: object - nullable: true - description: 'Deprecated: Replaced by InstanceEngines and InstanceReplicas' - type: object - ip: - type: string - ownerID: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: nodes.longhorn.io -spec: - preserveUnknownFields: false - conversion: - strategy: Webhook - webhook: - clientConfig: - service: - name: longhorn-conversion-webhook - namespace: longhorn-system - path: /v1/webhook/conversion - port: 9501 - conversionReviewVersions: - - v1beta2 - - v1beta1 - group: longhorn.io - names: - kind: Node - listKind: NodeList - plural: nodes - shortNames: - - lhn - singular: node - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicate whether the node is ready - jsonPath: .status.conditions['Ready']['status'] - name: Ready - type: string - - description: Indicate whether the user disabled/enabled replica scheduling for the node - jsonPath: .spec.allowScheduling - name: AllowScheduling - type: boolean - - description: Indicate whether Longhorn can schedule replicas on the node - jsonPath: .status.conditions['Schedulable']['status'] - name: Schedulable - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: Node is where Longhorn stores Longhorn node object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: Indicate whether the node is ready - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: Indicate whether the user disabled/enabled replica scheduling for the node - jsonPath: .spec.allowScheduling - name: AllowScheduling - type: boolean - - description: Indicate whether Longhorn can schedule replicas on the node - jsonPath: .status.conditions[?(@.type=='Schedulable')].status - name: Schedulable - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: Node is where Longhorn stores Longhorn node object. - 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: NodeSpec defines the desired state of the Longhorn node - properties: - allowScheduling: - type: boolean - disks: - additionalProperties: - properties: - allowScheduling: - type: boolean - evictionRequested: - type: boolean - path: - type: string - storageReserved: - format: int64 - type: integer - tags: - items: - type: string - type: array - diskType: - enum: - - filesystem - - block - type: string - type: object - type: object - evictionRequested: - type: boolean - instanceManagerCPURequest: - type: integer - name: - type: string - tags: - items: - type: string - type: array - type: object - status: - description: NodeStatus defines the observed state of the Longhorn node - properties: - conditions: - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - diskStatus: - additionalProperties: - properties: - conditions: - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - diskType: - type: string - diskUUID: - type: string - scheduledReplica: - additionalProperties: - format: int64 - type: integer - nullable: true - type: object - storageAvailable: - format: int64 - type: integer - storageMaximum: - format: int64 - type: integer - storageScheduled: - format: int64 - type: integer - type: object - nullable: true - type: object - region: - type: string - snapshotCheckStatus: - properties: - lastPeriodicCheckedAt: - format: date-time - type: string - snapshotCheckState: - type: string - type: object - zone: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: orphans.longhorn.io -spec: - group: longhorn.io - names: - kind: Orphan - listKind: OrphanList - plural: orphans - shortNames: - - lho - singular: orphan - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The type of the orphan - jsonPath: .spec.orphanType - name: Type - type: string - - description: The node that the orphan is on - jsonPath: .spec.nodeID - name: Node - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: Orphan is where Longhorn stores orphan object. - 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: OrphanSpec defines the desired state of the Longhorn orphaned data - properties: - nodeID: - description: The node ID on which the controller is responsible to reconcile this orphan CR. - type: string - orphanType: - description: The type of the orphaned data. Can be "replica". - type: string - parameters: - additionalProperties: - type: string - description: The parameters of the orphaned data - type: object - type: object - status: - description: OrphanStatus defines the observed state of the Longhorn orphaned data - properties: - conditions: - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - ownerID: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - longhorn-manager: "" - name: recurringjobs.longhorn.io -spec: - group: longhorn.io - names: - kind: RecurringJob - listKind: RecurringJobList - plural: recurringjobs - shortNames: - - lhrj - singular: recurringjob - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Sets groupings to the jobs. When set to "default" group will be added to the volume label when no other job label exist in volume - jsonPath: .spec.groups - name: Groups - type: string - - description: Should be one of "backup" or "snapshot" - jsonPath: .spec.task - name: Task - type: string - - description: The cron expression represents recurring job scheduling - jsonPath: .spec.cron - name: Cron - type: string - - description: The number of snapshots/backups to keep for the volume - jsonPath: .spec.retain - name: Retain - type: integer - - description: The concurrent job to run by each cron job - jsonPath: .spec.concurrency - name: Concurrency - type: integer - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: Specify the labels - jsonPath: .spec.labels - name: Labels - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: RecurringJob is where Longhorn stores recurring job object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: Sets groupings to the jobs. When set to "default" group will be added to the volume label when no other job label exist in volume - jsonPath: .spec.groups - name: Groups - type: string - - description: Should be one of "snapshot", "snapshot-force-create", "snapshot-cleanup", "snapshot-delete", "backup", "backup-force-create" or "filesystem-trim" - jsonPath: .spec.task - name: Task - type: string - - description: The cron expression represents recurring job scheduling - jsonPath: .spec.cron - name: Cron - type: string - - description: The number of snapshots/backups to keep for the volume - jsonPath: .spec.retain - name: Retain - type: integer - - description: The concurrent job to run by each cron job - jsonPath: .spec.concurrency - name: Concurrency - type: integer - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: Specify the labels - jsonPath: .spec.labels - name: Labels - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: RecurringJob is where Longhorn stores recurring job object. - 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: RecurringJobSpec defines the desired state of the Longhorn recurring job - properties: - concurrency: - description: The concurrency of taking the snapshot/backup. - type: integer - cron: - description: The cron setting. - type: string - groups: - description: The recurring job group. - items: - type: string - type: array - labels: - additionalProperties: - type: string - description: The label of the snapshot/backup. - type: object - name: - description: The recurring job name. - type: string - retain: - description: The retain count of the snapshot/backup. - type: integer - task: - description: The recurring job task. Can be "snapshot", "snapshot-force-create", "snapshot-cleanup", "snapshot-delete", "backup", "backup-force-create" or "filesystem-trim" - enum: - - snapshot - - snapshot-force-create - - snapshot-cleanup - - snapshot-delete - - backup - - backup-force-create - - filesystem-trim - type: string - type: object - status: - description: RecurringJobStatus defines the observed state of the Longhorn recurring job - properties: - ownerID: - description: The owner ID which is responsible to reconcile this recurring job CR. - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: replicas.longhorn.io -spec: - group: longhorn.io - names: - kind: Replica - listKind: ReplicaList - plural: replicas - shortNames: - - lhr - singular: replica - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The current state of the replica - jsonPath: .status.currentState - name: State - type: string - - description: The node that the replica is on - jsonPath: .spec.nodeID - name: Node - type: string - - description: The disk that the replica is on - jsonPath: .spec.diskID - name: Disk - type: string - - description: The instance manager of the replica - jsonPath: .status.instanceManagerName - name: InstanceManager - type: string - - description: The current image of the replica - jsonPath: .status.currentImage - name: Image - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: Replica is where Longhorn stores replica object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The current state of the replica - jsonPath: .status.currentState - name: State - type: string - - description: The node that the replica is on - jsonPath: .spec.nodeID - name: Node - type: string - - description: The disk that the replica is on - jsonPath: .spec.diskID - name: Disk - type: string - - description: The instance manager of the replica - jsonPath: .status.instanceManagerName - name: InstanceManager - type: string - - description: The current image of the replica - jsonPath: .status.currentImage - name: Image - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: Replica is where Longhorn stores replica object. - 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: ReplicaSpec defines the desired state of the Longhorn replica - properties: - active: - type: boolean - backendStoreDriver: - enum: - - v1 - - v2 - type: string - backingImage: - type: string - dataDirectoryName: - type: string - desireState: - type: string - diskID: - type: string - diskPath: - type: string - engineImage: - type: string - engineName: - type: string - failedAt: - type: string - hardNodeAffinity: - type: string - healthyAt: - type: string - logRequested: - type: boolean - nodeID: - type: string - rebuildRetryCount: - type: integer - revisionCounterDisabled: - type: boolean - salvageRequested: - type: boolean - unmapMarkDiskChainRemovedEnabled: - type: boolean - volumeName: - type: string - volumeSize: - format: int64 - type: string - type: object - status: - description: ReplicaStatus defines the observed state of the Longhorn replica - properties: - conditions: - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - currentImage: - type: string - currentState: - type: string - evictionRequested: - type: boolean - instanceManagerName: - type: string - ip: - type: string - logFetched: - type: boolean - ownerID: - type: string - port: - type: integer - salvageExecuted: - type: boolean - started: - type: boolean - storageIP: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: settings.longhorn.io -spec: - group: longhorn.io - names: - kind: Setting - listKind: SettingList - plural: settings - shortNames: - - lhs - singular: setting - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The value of the setting - jsonPath: .value - name: Value - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: Setting is where Longhorn stores setting object. - 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 - value: - type: string - required: - - value - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The value of the setting - jsonPath: .value - name: Value - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: Setting is where Longhorn stores setting object. - 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 - value: - type: string - required: - - value - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: sharemanagers.longhorn.io -spec: - group: longhorn.io - names: - kind: ShareManager - listKind: ShareManagerList - plural: sharemanagers - shortNames: - - lhsm - singular: sharemanager - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The state of the share manager - jsonPath: .status.state - name: State - type: string - - description: The node that the share manager is owned by - jsonPath: .status.ownerID - name: Node - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: ShareManager is where Longhorn stores share manager object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The state of the share manager - jsonPath: .status.state - name: State - type: string - - description: The node that the share manager is owned by - jsonPath: .status.ownerID - name: Node - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: ShareManager is where Longhorn stores share manager object. - 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: ShareManagerSpec defines the desired state of the Longhorn share manager - properties: - image: - description: Share manager image used for creating a share manager pod - type: string - type: object - status: - description: ShareManagerStatus defines the observed state of the Longhorn share manager - properties: - endpoint: - description: NFS endpoint that can access the mounted filesystem of the volume - type: string - ownerID: - description: The node ID on which the controller is responsible to reconcile this share manager resource - type: string - state: - description: The state of the share manager resource - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: snapshots.longhorn.io -spec: - group: longhorn.io - names: - kind: Snapshot - listKind: SnapshotList - plural: snapshots - shortNames: - - lhsnap - singular: snapshot - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The volume that this snapshot belongs to - jsonPath: .spec.volume - name: Volume - type: string - - description: Timestamp when the point-in-time snapshot was taken - jsonPath: .status.creationTime - name: CreationTime - type: string - - description: Indicates if the snapshot is ready to be used to restore/backup a volume - jsonPath: .status.readyToUse - name: ReadyToUse - type: boolean - - description: Represents the minimum size of volume required to rehydrate from this snapshot - jsonPath: .status.restoreSize - name: RestoreSize - type: string - - description: The actual size of the snapshot - jsonPath: .status.size - name: Size - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: Snapshot is the Schema for the snapshots 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: SnapshotSpec defines the desired state of Longhorn Snapshot - properties: - createSnapshot: - description: require creating a new snapshot - type: boolean - labels: - additionalProperties: - type: string - description: The labels of snapshot - nullable: true - type: object - volume: - description: the volume that this snapshot belongs to. This field is immutable after creation. Required - type: string - required: - - volume - type: object - status: - description: SnapshotStatus defines the observed state of Longhorn Snapshot - properties: - checksum: - type: string - children: - additionalProperties: - type: boolean - nullable: true - type: object - creationTime: - type: string - error: - type: string - labels: - additionalProperties: - type: string - nullable: true - type: object - markRemoved: - type: boolean - ownerID: - type: string - parent: - type: string - readyToUse: - type: boolean - restoreSize: - format: int64 - type: integer - size: - format: int64 - type: integer - userCreated: - type: boolean - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: supportbundles.longhorn.io -spec: - group: longhorn.io - names: - kind: SupportBundle - listKind: SupportBundleList - plural: supportbundles - shortNames: - - lhbundle - singular: supportbundle - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The state of the support bundle - jsonPath: .status.state - name: State - type: string - - description: The issue URL - jsonPath: .spec.issueURL - name: Issue - type: string - - description: A brief description of the issue - jsonPath: .spec.description - name: Description - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: SupportBundle is where Longhorn stores support bundle object - 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: SupportBundleSpec defines the desired state of the Longhorn SupportBundle - properties: - description: - description: A brief description of the issue - type: string - issueURL: - description: The issue URL - nullable: true - type: string - nodeID: - description: The preferred responsible controller node ID. - type: string - required: - - description - type: object - status: - description: SupportBundleStatus defines the observed state of the Longhorn SupportBundle - properties: - conditions: - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - type: array - filename: - type: string - filesize: - format: int64 - type: integer - image: - description: The support bundle manager image - type: string - managerIP: - description: The support bundle manager IP - type: string - ownerID: - description: The current responsible controller node ID - type: string - progress: - type: integer - state: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: systembackups.longhorn.io -spec: - group: longhorn.io - names: - kind: SystemBackup - listKind: SystemBackupList - plural: systembackups - shortNames: - - lhsb - singular: systembackup - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The system backup Longhorn version - jsonPath: .status.version - name: Version - type: string - - description: The system backup state - jsonPath: .status.state - name: State - type: string - - description: The system backup creation time - jsonPath: .status.createdAt - name: Created - type: string - - description: The last time that the system backup was synced into the cluster - jsonPath: .status.lastSyncedAt - name: LastSyncedAt - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: SystemBackup is where Longhorn stores system backup object - 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: SystemBackupSpec defines the desired state of the Longhorn SystemBackup - properties: - volumeBackupPolicy: - description: The create volume backup policy Can be "if-not-present", "always" or "disabled" - nullable: true - type: string - type: object - status: - description: SystemBackupStatus defines the observed state of the Longhorn SystemBackup - properties: - conditions: - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - createdAt: - description: The system backup creation time. - format: date-time - type: string - gitCommit: - description: The saved Longhorn manager git commit. - nullable: true - type: string - lastSyncedAt: - description: The last time that the system backup was synced into the cluster. - format: date-time - nullable: true - type: string - managerImage: - description: The saved manager image. - type: string - ownerID: - description: The node ID of the responsible controller to reconcile this SystemBackup. - type: string - state: - description: The system backup state. - type: string - version: - description: The saved Longhorn version. - nullable: true - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: systemrestores.longhorn.io -spec: - group: longhorn.io - names: - kind: SystemRestore - listKind: SystemRestoreList - plural: systemrestores - shortNames: - - lhsr - singular: systemrestore - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The system restore state - jsonPath: .status.state - name: State - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: SystemRestore is where Longhorn stores system restore object - 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: SystemRestoreSpec defines the desired state of the Longhorn SystemRestore - properties: - systemBackup: - description: The system backup name in the object store. - type: string - required: - - systemBackup - type: object - status: - description: SystemRestoreStatus defines the observed state of the Longhorn SystemRestore - properties: - conditions: - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - ownerID: - description: The node ID of the responsible controller to reconcile this SystemRestore. - type: string - sourceURL: - description: The source system backup URL. - type: string - state: - description: The system restore state. - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: volumes.longhorn.io -spec: - preserveUnknownFields: false - conversion: - strategy: Webhook - webhook: - clientConfig: - service: - name: longhorn-conversion-webhook - namespace: longhorn-system - path: /v1/webhook/conversion - port: 9501 - conversionReviewVersions: - - v1beta2 - - v1beta1 - group: longhorn.io - names: - kind: Volume - listKind: VolumeList - plural: volumes - shortNames: - - lhv - singular: volume - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The state of the volume - jsonPath: .status.state - name: State - type: string - - description: The robustness of the volume - jsonPath: .status.robustness - name: Robustness - type: string - - description: The scheduled condition of the volume - jsonPath: .status.conditions['scheduled']['status'] - name: Scheduled - type: string - - description: The size of the volume - jsonPath: .spec.size - name: Size - type: string - - description: The node that the volume is currently attaching to - jsonPath: .status.currentNodeID - name: Node - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: Volume is where Longhorn stores volume object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The state of the volume - jsonPath: .status.state - name: State - type: string - - description: The robustness of the volume - jsonPath: .status.robustness - name: Robustness - type: string - - description: The scheduled condition of the volume - jsonPath: .status.conditions[?(@.type=='Schedulable')].status - name: Scheduled - type: string - - description: The size of the volume - jsonPath: .spec.size - name: Size - type: string - - description: The node that the volume is currently attaching to - jsonPath: .status.currentNodeID - name: Node - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: Volume is where Longhorn stores volume object. - 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: VolumeSpec defines the desired state of the Longhorn volume - properties: - Standby: - type: boolean - accessMode: - enum: - - rwo - - rwx - type: string - backendStoreDriver: - enum: - - v1 - - v2 - type: string - backingImage: - type: string - backupCompressionMethod: - enum: - - none - - lz4 - - gzip - type: string - dataLocality: - enum: - - disabled - - best-effort - - strict-local - type: string - dataSource: - type: string - disableFrontend: - type: boolean - diskSelector: - items: - type: string - type: array - encrypted: - type: boolean - engineImage: - type: string - fromBackup: - type: string - frontend: - enum: - - blockdev - - iscsi - - nvmf - - "" - type: string - lastAttachedBy: - type: string - migratable: - type: boolean - migrationNodeID: - type: string - nodeID: - type: string - nodeSelector: - items: - type: string - type: array - numberOfReplicas: - type: integer - offlineReplicaRebuilding: - description: OfflineReplicaRebuilding is used to determine if the offline replica rebuilding feature is enabled or not - enum: - - ignored - - disabled - - enabled - type: string - replicaAutoBalance: - enum: - - ignored - - disabled - - least-effort - - best-effort - type: string - replicaSoftAntiAffinity: - description: Replica soft anti affinity of the volume. Set enabled to allow replicas to be scheduled on the same node - enum: - - ignored - - enabled - - disabled - type: string - replicaZoneSoftAntiAffinity: - description: Replica zone soft anti affinity of the volume. Set enabled to allow replicas to be scheduled in the same zone - enum: - - ignored - - enabled - - disabled - type: string - restoreVolumeRecurringJob: - enum: - - ignored - - enabled - - disabled - type: string - revisionCounterDisabled: - type: boolean - size: - format: int64 - type: string - snapshotDataIntegrity: - enum: - - ignored - - disabled - - enabled - - fast-check - type: string - staleReplicaTimeout: - type: integer - unmapMarkSnapChainRemoved: - enum: - - ignored - - disabled - - enabled - type: string - type: object - status: - description: VolumeStatus defines the observed state of the Longhorn volume - properties: - actualSize: - format: int64 - type: integer - cloneStatus: - properties: - snapshot: - type: string - sourceVolume: - type: string - state: - type: string - type: object - conditions: - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - currentImage: - type: string - currentMigrationNodeID: - description: the node that this volume is currently migrating to - type: string - currentNodeID: - type: string - expansionRequired: - type: boolean - frontendDisabled: - type: boolean - isStandby: - type: boolean - kubernetesStatus: - properties: - lastPVCRefAt: - type: string - lastPodRefAt: - type: string - namespace: - description: determine if PVC/Namespace is history or not - type: string - pvName: - type: string - pvStatus: - type: string - pvcName: - type: string - workloadsStatus: - description: determine if Pod/Workload is history or not - items: - properties: - podName: - type: string - podStatus: - type: string - workloadName: - type: string - workloadType: - type: string - type: object - nullable: true - type: array - type: object - lastBackup: - type: string - lastBackupAt: - type: string - lastDegradedAt: - type: string - offlineReplicaRebuildingRequired: - type: boolean - ownerID: - type: string - pendingNodeID: - description: Deprecated. - type: string - remountRequestedAt: - type: string - restoreInitiated: - type: boolean - restoreRequired: - type: boolean - robustness: - type: string - shareEndpoint: - type: string - shareState: - type: string - state: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: volumeattachments.longhorn.io -spec: - group: longhorn.io - names: - kind: VolumeAttachment - listKind: VolumeAttachmentList - plural: volumeattachments - shortNames: - - lhva - singular: volumeattachment - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: VolumeAttachment stores attachment information of a Longhorn volume - 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: VolumeAttachmentSpec defines the desired state of Longhorn VolumeAttachment - properties: - attachmentTickets: - additionalProperties: - properties: - generation: - description: A sequence number representing a specific generation of the desired state. Populated by the system. Read-only. - format: int64 - type: integer - id: - description: The unique ID of this attachment. Used to differentiate different attachments of the same volume. - type: string - nodeID: - description: The node that this attachment is requesting - type: string - parameters: - additionalProperties: - type: string - description: Optional additional parameter for this attachment - type: object - type: - type: string - type: object - type: object - volume: - description: The name of Longhorn volume of this VolumeAttachment - type: string - required: - - volume - type: object - status: - description: VolumeAttachmentStatus defines the observed state of Longhorn VolumeAttachment - properties: - attachmentTicketStatuses: - additionalProperties: - properties: - conditions: - description: Record any error when trying to fulfill this attachment - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - generation: - description: A sequence number representing a specific generation of the desired state. Populated by the system. Read-only. - format: int64 - type: integer - id: - description: The unique ID of this attachment. Used to differentiate different attachments of the same volume. - type: string - satisfied: - description: Indicate whether this attachment ticket has been satisfied - type: boolean - required: - - conditions - - satisfied - type: object - type: object - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/clusterrole.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: longhorn-role - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 -rules: -- apiGroups: - - apiextensions.k8s.io - resources: - - customresourcedefinitions - verbs: - - "*" -- apiGroups: [""] - resources: ["pods", "events", "persistentvolumes", "persistentvolumeclaims","persistentvolumeclaims/status", "nodes", "proxy/nodes", "pods/log", "secrets", "services", "endpoints", "configmaps", "serviceaccounts"] - verbs: ["*"] -- apiGroups: [""] - resources: ["namespaces"] - verbs: ["get", "list"] -- apiGroups: ["apps"] - resources: ["daemonsets", "statefulsets", "deployments"] - verbs: ["*"] -- apiGroups: ["batch"] - resources: ["jobs", "cronjobs"] - verbs: ["*"] -- apiGroups: ["policy"] - resources: ["poddisruptionbudgets", "podsecuritypolicies"] - verbs: ["*"] -- apiGroups: ["scheduling.k8s.io"] - resources: ["priorityclasses"] - verbs: ["watch", "list"] -- apiGroups: ["storage.k8s.io"] - resources: ["storageclasses", "volumeattachments", "volumeattachments/status", "csinodes", "csidrivers"] - verbs: ["*"] -- apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotclasses", "volumesnapshots", "volumesnapshotcontents", "volumesnapshotcontents/status"] - verbs: ["*"] -- apiGroups: ["longhorn.io"] - resources: ["volumes", "volumes/status", "engines", "engines/status", "replicas", "replicas/status", "settings", - "engineimages", "engineimages/status", "nodes", "nodes/status", "instancemanagers", "instancemanagers/status", - "sharemanagers", "sharemanagers/status", "backingimages", "backingimages/status", - "backingimagemanagers", "backingimagemanagers/status", "backingimagedatasources", "backingimagedatasources/status", - "backuptargets", "backuptargets/status", "backupvolumes", "backupvolumes/status", "backups", "backups/status", - "recurringjobs", "recurringjobs/status", "orphans", "orphans/status", "snapshots", "snapshots/status", - "supportbundles", "supportbundles/status", "systembackups", "systembackups/status", "systemrestores", "systemrestores/status", - "volumeattachments", "volumeattachments/status"] - verbs: ["*"] -- apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["*"] -- apiGroups: ["metrics.k8s.io"] - resources: ["pods", "nodes"] - verbs: ["get", "list"] -- apiGroups: ["apiregistration.k8s.io"] - resources: ["apiservices"] - verbs: ["list", "watch"] -- apiGroups: ["admissionregistration.k8s.io"] - resources: ["mutatingwebhookconfigurations", "validatingwebhookconfigurations"] - verbs: ["get", "list", "create", "patch", "delete"] -- apiGroups: ["rbac.authorization.k8s.io"] - resources: ["roles", "rolebindings", "clusterrolebindings", "clusterroles"] - verbs: ["*"] ---- -# Source: longhorn/templates/clusterrolebinding.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: longhorn-bind - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: longhorn-role -subjects: -- kind: ServiceAccount - name: longhorn-service-account - namespace: longhorn-system ---- -# Source: longhorn/templates/clusterrolebinding.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: longhorn-support-bundle - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: cluster-admin -subjects: -- kind: ServiceAccount - name: longhorn-support-bundle - namespace: longhorn-system ---- -# Source: longhorn/templates/daemonset-sa.yaml -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - app: longhorn-manager - name: longhorn-backend - namespace: longhorn-system -spec: - type: ClusterIP - sessionAffinity: ClientIP - selector: - app: longhorn-manager - ports: - - name: manager - port: 9500 - targetPort: manager ---- -# Source: longhorn/templates/deployment-ui.yaml -kind: Service -apiVersion: v1 -metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - app: longhorn-ui - name: longhorn-frontend - namespace: longhorn-system -spec: - type: ClusterIP - selector: - app: longhorn-ui - ports: - - name: http - port: 80 - targetPort: http - nodePort: null ---- -# Source: longhorn/templates/services.yaml -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - app: longhorn-conversion-webhook - name: longhorn-conversion-webhook - namespace: longhorn-system -spec: - type: ClusterIP - sessionAffinity: ClientIP - selector: - app: longhorn-manager - ports: - - name: conversion-webhook - port: 9501 - targetPort: conversion-wh ---- -# Source: longhorn/templates/services.yaml -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - app: longhorn-admission-webhook - name: longhorn-admission-webhook - namespace: longhorn-system -spec: - type: ClusterIP - sessionAffinity: ClientIP - selector: - app: longhorn-manager - ports: - - name: admission-webhook - port: 9502 - targetPort: admission-wh ---- -# Source: longhorn/templates/services.yaml -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - app: longhorn-recovery-backend - name: longhorn-recovery-backend - namespace: longhorn-system -spec: - type: ClusterIP - sessionAffinity: ClientIP - selector: - app: longhorn-manager - ports: - - name: recovery-backend - port: 9503 - targetPort: recov-backend ---- -# Source: longhorn/templates/services.yaml -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - name: longhorn-engine-manager - namespace: longhorn-system -spec: - clusterIP: None - selector: - longhorn.io/component: instance-manager - longhorn.io/instance-manager-type: engine ---- -# Source: longhorn/templates/services.yaml -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - name: longhorn-replica-manager - namespace: longhorn-system -spec: - clusterIP: None - selector: - longhorn.io/component: instance-manager - longhorn.io/instance-manager-type: replica ---- -# Source: longhorn/templates/daemonset-sa.yaml -apiVersion: apps/v1 -kind: DaemonSet -metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - app: longhorn-manager - name: longhorn-manager - namespace: longhorn-system -spec: - selector: - matchLabels: - app: longhorn-manager - template: - metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - app: longhorn-manager - spec: - containers: - - name: longhorn-manager - image: longhornio/longhorn-manager:v1.5.3 - imagePullPolicy: IfNotPresent - securityContext: - privileged: true - command: - - longhorn-manager - - -d - - daemon - - --engine-image - - "longhornio/longhorn-engine:v1.5.3" - - --instance-manager-image - - "longhornio/longhorn-instance-manager:v1.5.3" - - --share-manager-image - - "longhornio/longhorn-share-manager:v1.5.3" - - --backing-image-manager-image - - "longhornio/backing-image-manager:v1.5.3" - - --support-bundle-manager-image - - "longhornio/support-bundle-kit:v0.0.27" - - --manager-image - - "longhornio/longhorn-manager:v1.5.3" - - --service-account - - longhorn-service-account - ports: - - containerPort: 9500 - name: manager - - containerPort: 9501 - name: conversion-wh - - containerPort: 9502 - name: admission-wh - - containerPort: 9503 - name: recov-backend - readinessProbe: - httpGet: - path: /v1/healthz - port: 9501 - scheme: HTTPS - volumeMounts: - - name: dev - mountPath: /host/dev/ - - name: proc - mountPath: /host/proc/ - - name: longhorn - mountPath: /var/lib/longhorn/ - mountPropagation: Bidirectional - - name: longhorn-grpc-tls - mountPath: /tls-files/ - env: - - name: POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: POD_IP - valueFrom: - fieldRef: - fieldPath: status.podIP - - name: NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - volumes: - - name: dev - hostPath: - path: /dev/ - - name: proc - hostPath: - path: /proc/ - - name: longhorn - hostPath: - path: /var/lib/longhorn/ - - name: longhorn-grpc-tls - secret: - secretName: longhorn-grpc-tls - optional: true - serviceAccountName: longhorn-service-account - updateStrategy: - rollingUpdate: - maxUnavailable: "100%" ---- -# Source: longhorn/templates/deployment-driver.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: longhorn-driver-deployer - namespace: longhorn-system - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 -spec: - replicas: 1 - selector: - matchLabels: - app: longhorn-driver-deployer - template: - metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - app: longhorn-driver-deployer - spec: - initContainers: - - name: wait-longhorn-manager - image: longhornio/longhorn-manager:v1.5.3 - command: ['sh', '-c', 'while [ $(curl -m 1 -s -o /dev/null -w "%{http_code}" http://longhorn-backend:9500/v1) != "200" ]; do echo waiting; sleep 2; done'] - containers: - - name: longhorn-driver-deployer - image: longhornio/longhorn-manager:v1.5.3 - imagePullPolicy: IfNotPresent - command: - - longhorn-manager - - -d - - deploy-driver - - --manager-image - - "longhornio/longhorn-manager:v1.5.3" - - --manager-url - - http://longhorn-backend:9500/v1 - env: - - name: POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - - name: SERVICE_ACCOUNT - valueFrom: - fieldRef: - fieldPath: spec.serviceAccountName - - name: CSI_ATTACHER_IMAGE - value: "longhornio/csi-attacher:v4.2.0" - - name: CSI_PROVISIONER_IMAGE - value: "longhornio/csi-provisioner:v3.4.1" - - name: CSI_NODE_DRIVER_REGISTRAR_IMAGE - value: "longhornio/csi-node-driver-registrar:v2.7.0" - - name: CSI_RESIZER_IMAGE - value: "longhornio/csi-resizer:v1.7.0" - - name: CSI_SNAPSHOTTER_IMAGE - value: "longhornio/csi-snapshotter:v6.2.1" - - name: CSI_LIVENESS_PROBE_IMAGE - value: "longhornio/livenessprobe:v2.9.0" - serviceAccountName: longhorn-service-account - securityContext: - runAsUser: 0 ---- -# Source: longhorn/templates/deployment-ui.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - app: longhorn-ui - name: longhorn-ui - namespace: longhorn-system -spec: - replicas: 2 - selector: - matchLabels: - app: longhorn-ui - template: - metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - app: longhorn-ui - spec: - affinity: - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - weight: 1 - podAffinityTerm: - labelSelector: - matchExpressions: - - key: app - operator: In - values: - - longhorn-ui - topologyKey: kubernetes.io/hostname - containers: - - name: longhorn-ui - image: longhornio/longhorn-ui:v1.5.3 - imagePullPolicy: IfNotPresent - volumeMounts: - - name : nginx-cache - mountPath: /var/cache/nginx/ - - name : nginx-config - mountPath: /var/config/nginx/ - - name: var-run - mountPath: /var/run/ - ports: - - containerPort: 8000 - name: http - env: - - name: LONGHORN_MANAGER_IP - value: "http://longhorn-backend:9500" - - name: LONGHORN_UI_PORT - value: "8000" - volumes: - - emptyDir: {} - name: nginx-cache - - emptyDir: {} - name: nginx-config - - emptyDir: {} - name: var-run ---- -# Source: longhorn/templates/validate-psp-install.yaml -# diff --git a/k3s/longhorn.yaml.1 b/k3s/longhorn.yaml.1 deleted file mode 100644 index 0e6aa36..0000000 --- a/k3s/longhorn.yaml.1 +++ /dev/null @@ -1,4300 +0,0 @@ ---- -# Builtin: "helm template" does not respect --create-namespace -apiVersion: v1 -kind: Namespace -metadata: - name: longhorn-system ---- -# Source: longhorn/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: longhorn-service-account - namespace: longhorn-system - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 ---- -# Source: longhorn/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: longhorn-support-bundle - namespace: longhorn-system - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 ---- -# Source: longhorn/templates/default-setting.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: longhorn-default-setting - namespace: longhorn-system - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 -data: - default-setting.yaml: |- ---- -# Source: longhorn/templates/storageclass.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: longhorn-storageclass - namespace: longhorn-system - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 -data: - storageclass.yaml: | - kind: StorageClass - apiVersion: storage.k8s.io/v1 - metadata: - name: longhorn - annotations: - storageclass.kubernetes.io/is-default-class: "true" - provisioner: driver.longhorn.io - allowVolumeExpansion: true - reclaimPolicy: "Delete" - volumeBindingMode: Immediate - parameters: - numberOfReplicas: "3" - staleReplicaTimeout: "30" - fromBackup: "" - fsType: "ext4" - dataLocality: "disabled" ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: backingimagedatasources.longhorn.io -spec: - group: longhorn.io - names: - kind: BackingImageDataSource - listKind: BackingImageDataSourceList - plural: backingimagedatasources - shortNames: - - lhbids - singular: backingimagedatasource - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The current state of the pod used to provision the backing image file from source - jsonPath: .status.currentState - name: State - type: string - - description: The data source type - jsonPath: .spec.sourceType - name: SourceType - type: string - - description: The node the backing image file will be prepared on - jsonPath: .spec.nodeID - name: Node - type: string - - description: The disk the backing image file will be prepared on - jsonPath: .spec.diskUUID - name: DiskUUID - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: BackingImageDataSource is where Longhorn stores backing image data source object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The system generated UUID of the provisioned backing image file - jsonPath: .spec.uuid - name: UUID - type: string - - description: The current state of the pod used to provision the backing image file from source - jsonPath: .status.currentState - name: State - type: string - - description: The data source type - jsonPath: .spec.sourceType - name: SourceType - type: string - - description: The backing image file size - jsonPath: .status.size - name: Size - type: string - - description: The node the backing image file will be prepared on - jsonPath: .spec.nodeID - name: Node - type: string - - description: The disk the backing image file will be prepared on - jsonPath: .spec.diskUUID - name: DiskUUID - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: BackingImageDataSource is where Longhorn stores backing image data source object. - 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: BackingImageDataSourceSpec defines the desired state of the Longhorn backing image data source - properties: - checksum: - type: string - diskPath: - type: string - diskUUID: - type: string - fileTransferred: - type: boolean - nodeID: - type: string - parameters: - additionalProperties: - type: string - type: object - sourceType: - enum: - - download - - upload - - export-from-volume - type: string - uuid: - type: string - type: object - status: - description: BackingImageDataSourceStatus defines the observed state of the Longhorn backing image data source - properties: - checksum: - type: string - currentState: - type: string - ip: - type: string - message: - type: string - ownerID: - type: string - progress: - type: integer - runningParameters: - additionalProperties: - type: string - nullable: true - type: object - size: - format: int64 - type: integer - storageIP: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: backingimagemanagers.longhorn.io -spec: - group: longhorn.io - names: - kind: BackingImageManager - listKind: BackingImageManagerList - plural: backingimagemanagers - shortNames: - - lhbim - singular: backingimagemanager - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The current state of the manager - jsonPath: .status.currentState - name: State - type: string - - description: The image the manager pod will use - jsonPath: .spec.image - name: Image - type: string - - description: The node the manager is on - jsonPath: .spec.nodeID - name: Node - type: string - - description: The disk the manager is responsible for - jsonPath: .spec.diskUUID - name: DiskUUID - type: string - - description: The disk path the manager is using - jsonPath: .spec.diskPath - name: DiskPath - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: BackingImageManager is where Longhorn stores backing image manager object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The current state of the manager - jsonPath: .status.currentState - name: State - type: string - - description: The image the manager pod will use - jsonPath: .spec.image - name: Image - type: string - - description: The node the manager is on - jsonPath: .spec.nodeID - name: Node - type: string - - description: The disk the manager is responsible for - jsonPath: .spec.diskUUID - name: DiskUUID - type: string - - description: The disk path the manager is using - jsonPath: .spec.diskPath - name: DiskPath - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: BackingImageManager is where Longhorn stores backing image manager object. - 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: BackingImageManagerSpec defines the desired state of the Longhorn backing image manager - properties: - backingImages: - additionalProperties: - type: string - type: object - diskPath: - type: string - diskUUID: - type: string - image: - type: string - nodeID: - type: string - type: object - status: - description: BackingImageManagerStatus defines the observed state of the Longhorn backing image manager - properties: - apiMinVersion: - type: integer - apiVersion: - type: integer - backingImageFileMap: - additionalProperties: - properties: - currentChecksum: - type: string - message: - type: string - name: - type: string - progress: - type: integer - senderManagerAddress: - type: string - sendingReference: - type: integer - size: - format: int64 - type: integer - state: - type: string - uuid: - type: string - type: object - nullable: true - type: object - currentState: - type: string - ip: - type: string - ownerID: - type: string - storageIP: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: backingimages.longhorn.io -spec: - conversion: - strategy: Webhook - webhook: - clientConfig: - service: - name: longhorn-conversion-webhook - namespace: longhorn-system - path: /v1/webhook/conversion - port: 9501 - conversionReviewVersions: - - v1beta2 - - v1beta1 - group: longhorn.io - names: - kind: BackingImage - listKind: BackingImageList - plural: backingimages - shortNames: - - lhbi - singular: backingimage - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The backing image name - jsonPath: .spec.image - name: Image - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: BackingImage is where Longhorn stores backing image object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The system generated UUID - jsonPath: .status.uuid - name: UUID - type: string - - description: The source of the backing image file data - jsonPath: .spec.sourceType - name: SourceType - type: string - - description: The backing image file size in each disk - jsonPath: .status.size - name: Size - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: BackingImage is where Longhorn stores backing image object. - 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: BackingImageSpec defines the desired state of the Longhorn backing image - properties: - checksum: - type: string - disks: - additionalProperties: - type: string - type: object - sourceParameters: - additionalProperties: - type: string - type: object - sourceType: - enum: - - download - - upload - - export-from-volume - type: string - type: object - status: - description: BackingImageStatus defines the observed state of the Longhorn backing image status - properties: - checksum: - type: string - diskFileStatusMap: - additionalProperties: - properties: - lastStateTransitionTime: - type: string - message: - type: string - progress: - type: integer - state: - type: string - type: object - nullable: true - type: object - diskLastRefAtMap: - additionalProperties: - type: string - nullable: true - type: object - ownerID: - type: string - size: - format: int64 - type: integer - uuid: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: backups.longhorn.io -spec: - group: longhorn.io - names: - kind: Backup - listKind: BackupList - plural: backups - shortNames: - - lhb - singular: backup - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The snapshot name - jsonPath: .status.snapshotName - name: SnapshotName - type: string - - description: The snapshot size - jsonPath: .status.size - name: SnapshotSize - type: string - - description: The snapshot creation time - jsonPath: .status.snapshotCreatedAt - name: SnapshotCreatedAt - type: string - - description: The backup state - jsonPath: .status.state - name: State - type: string - - description: The backup last synced time - jsonPath: .status.lastSyncedAt - name: LastSyncedAt - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: Backup is where Longhorn stores backup object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The snapshot name - jsonPath: .status.snapshotName - name: SnapshotName - type: string - - description: The snapshot size - jsonPath: .status.size - name: SnapshotSize - type: string - - description: The snapshot creation time - jsonPath: .status.snapshotCreatedAt - name: SnapshotCreatedAt - type: string - - description: The backup state - jsonPath: .status.state - name: State - type: string - - description: The backup last synced time - jsonPath: .status.lastSyncedAt - name: LastSyncedAt - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: Backup is where Longhorn stores backup object. - 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: BackupSpec defines the desired state of the Longhorn backup - properties: - labels: - additionalProperties: - type: string - description: The labels of snapshot backup. - type: object - snapshotName: - description: The snapshot name. - type: string - syncRequestedAt: - description: The time to request run sync the remote backup. - format: date-time - nullable: true - type: string - type: object - status: - description: BackupStatus defines the observed state of the Longhorn backup - properties: - backupCreatedAt: - description: The snapshot backup upload finished time. - type: string - compressionMethod: - description: Compression method - type: string - error: - description: The error message when taking the snapshot backup. - type: string - labels: - additionalProperties: - type: string - description: The labels of snapshot backup. - nullable: true - type: object - lastSyncedAt: - description: The last time that the backup was synced with the remote backup target. - format: date-time - nullable: true - type: string - messages: - additionalProperties: - type: string - description: The error messages when calling longhorn engine on listing or inspecting backups. - nullable: true - type: object - ownerID: - description: The node ID on which the controller is responsible to reconcile this backup CR. - type: string - progress: - description: The snapshot backup progress. - type: integer - replicaAddress: - description: The address of the replica that runs snapshot backup. - type: string - size: - description: The snapshot size. - type: string - snapshotCreatedAt: - description: The snapshot creation time. - type: string - snapshotName: - description: The snapshot name. - type: string - state: - description: The backup creation state. Can be "", "InProgress", "Completed", "Error", "Unknown". - type: string - url: - description: The snapshot backup URL. - type: string - volumeBackingImageName: - description: The volume's backing image name. - type: string - volumeCreated: - description: The volume creation time. - type: string - volumeName: - description: The volume name. - type: string - volumeSize: - description: The volume size. - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: backuptargets.longhorn.io -spec: - conversion: - strategy: Webhook - webhook: - clientConfig: - service: - name: longhorn-conversion-webhook - namespace: longhorn-system - path: /v1/webhook/conversion - port: 9501 - conversionReviewVersions: - - v1beta2 - - v1beta1 - group: longhorn.io - names: - kind: BackupTarget - listKind: BackupTargetList - plural: backuptargets - shortNames: - - lhbt - singular: backuptarget - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The backup target URL - jsonPath: .spec.backupTargetURL - name: URL - type: string - - description: The backup target credential secret - jsonPath: .spec.credentialSecret - name: Credential - type: string - - description: The backup target poll interval - jsonPath: .spec.pollInterval - name: LastBackupAt - type: string - - description: Indicate whether the backup target is available or not - jsonPath: .status.available - name: Available - type: boolean - - description: The backup target last synced time - jsonPath: .status.lastSyncedAt - name: LastSyncedAt - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: BackupTarget is where Longhorn stores backup target object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The backup target URL - jsonPath: .spec.backupTargetURL - name: URL - type: string - - description: The backup target credential secret - jsonPath: .spec.credentialSecret - name: Credential - type: string - - description: The backup target poll interval - jsonPath: .spec.pollInterval - name: LastBackupAt - type: string - - description: Indicate whether the backup target is available or not - jsonPath: .status.available - name: Available - type: boolean - - description: The backup target last synced time - jsonPath: .status.lastSyncedAt - name: LastSyncedAt - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: BackupTarget is where Longhorn stores backup target object. - 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: BackupTargetSpec defines the desired state of the Longhorn backup target - properties: - backupTargetURL: - description: The backup target URL. - type: string - credentialSecret: - description: The backup target credential secret. - type: string - pollInterval: - description: The interval that the cluster needs to run sync with the backup target. - type: string - syncRequestedAt: - description: The time to request run sync the remote backup target. - format: date-time - nullable: true - type: string - type: object - status: - description: BackupTargetStatus defines the observed state of the Longhorn backup target - properties: - available: - description: Available indicates if the remote backup target is available or not. - type: boolean - conditions: - description: Records the reason on why the backup target is unavailable. - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - lastSyncedAt: - description: The last time that the controller synced with the remote backup target. - format: date-time - nullable: true - type: string - ownerID: - description: The node ID on which the controller is responsible to reconcile this backup target CR. - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: backupvolumes.longhorn.io -spec: - group: longhorn.io - names: - kind: BackupVolume - listKind: BackupVolumeList - plural: backupvolumes - shortNames: - - lhbv - singular: backupvolume - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The backup volume creation time - jsonPath: .status.createdAt - name: CreatedAt - type: string - - description: The backup volume last backup name - jsonPath: .status.lastBackupName - name: LastBackupName - type: string - - description: The backup volume last backup time - jsonPath: .status.lastBackupAt - name: LastBackupAt - type: string - - description: The backup volume last synced time - jsonPath: .status.lastSyncedAt - name: LastSyncedAt - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: BackupVolume is where Longhorn stores backup volume object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The backup volume creation time - jsonPath: .status.createdAt - name: CreatedAt - type: string - - description: The backup volume last backup name - jsonPath: .status.lastBackupName - name: LastBackupName - type: string - - description: The backup volume last backup time - jsonPath: .status.lastBackupAt - name: LastBackupAt - type: string - - description: The backup volume last synced time - jsonPath: .status.lastSyncedAt - name: LastSyncedAt - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: BackupVolume is where Longhorn stores backup volume object. - 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: BackupVolumeSpec defines the desired state of the Longhorn backup volume - properties: - syncRequestedAt: - description: The time to request run sync the remote backup volume. - format: date-time - nullable: true - type: string - type: object - status: - description: BackupVolumeStatus defines the observed state of the Longhorn backup volume - properties: - backingImageChecksum: - description: the backing image checksum. - type: string - backingImageName: - description: The backing image name. - type: string - createdAt: - description: The backup volume creation time. - type: string - dataStored: - description: The backup volume block count. - type: string - labels: - additionalProperties: - type: string - description: The backup volume labels. - nullable: true - type: object - lastBackupAt: - description: The latest volume backup time. - type: string - lastBackupName: - description: The latest volume backup name. - type: string - lastModificationTime: - description: The backup volume config last modification time. - format: date-time - nullable: true - type: string - lastSyncedAt: - description: The last time that the backup volume was synced into the cluster. - format: date-time - nullable: true - type: string - messages: - additionalProperties: - type: string - description: The error messages when call longhorn engine on list or inspect backup volumes. - nullable: true - type: object - ownerID: - description: The node ID on which the controller is responsible to reconcile this backup volume CR. - type: string - size: - description: The backup volume size. - type: string - storageClassName: - description: the storage class name of pv/pvc binding with the volume. - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: engineimages.longhorn.io -spec: - preserveUnknownFields: false - conversion: - strategy: Webhook - webhook: - clientConfig: - service: - name: longhorn-conversion-webhook - namespace: longhorn-system - path: /v1/webhook/conversion - port: 9501 - conversionReviewVersions: - - v1beta2 - - v1beta1 - group: longhorn.io - names: - kind: EngineImage - listKind: EngineImageList - plural: engineimages - shortNames: - - lhei - singular: engineimage - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: State of the engine image - jsonPath: .status.state - name: State - type: string - - description: The Longhorn engine image - jsonPath: .spec.image - name: Image - type: string - - description: Number of resources using the engine image - jsonPath: .status.refCount - name: RefCount - type: integer - - description: The build date of the engine image - jsonPath: .status.buildDate - name: BuildDate - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: EngineImage is where Longhorn stores engine image object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: State of the engine image - jsonPath: .status.state - name: State - type: string - - description: The Longhorn engine image - jsonPath: .spec.image - name: Image - type: string - - description: Number of resources using the engine image - jsonPath: .status.refCount - name: RefCount - type: integer - - description: The build date of the engine image - jsonPath: .status.buildDate - name: BuildDate - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: EngineImage is where Longhorn stores engine image object. - 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: EngineImageSpec defines the desired state of the Longhorn engine image - properties: - image: - minLength: 1 - type: string - required: - - image - type: object - status: - description: EngineImageStatus defines the observed state of the Longhorn engine image - properties: - buildDate: - type: string - cliAPIMinVersion: - type: integer - cliAPIVersion: - type: integer - conditions: - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - controllerAPIMinVersion: - type: integer - controllerAPIVersion: - type: integer - dataFormatMinVersion: - type: integer - dataFormatVersion: - type: integer - gitCommit: - type: string - noRefSince: - type: string - nodeDeploymentMap: - additionalProperties: - type: boolean - nullable: true - type: object - ownerID: - type: string - refCount: - type: integer - state: - type: string - version: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: engines.longhorn.io -spec: - group: longhorn.io - names: - kind: Engine - listKind: EngineList - plural: engines - shortNames: - - lhe - singular: engine - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The current state of the engine - jsonPath: .status.currentState - name: State - type: string - - description: The node that the engine is on - jsonPath: .spec.nodeID - name: Node - type: string - - description: The instance manager of the engine - jsonPath: .status.instanceManagerName - name: InstanceManager - type: string - - description: The current image of the engine - jsonPath: .status.currentImage - name: Image - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: Engine is where Longhorn stores engine object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The current state of the engine - jsonPath: .status.currentState - name: State - type: string - - description: The node that the engine is on - jsonPath: .spec.nodeID - name: Node - type: string - - description: The instance manager of the engine - jsonPath: .status.instanceManagerName - name: InstanceManager - type: string - - description: The current image of the engine - jsonPath: .status.currentImage - name: Image - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: Engine is where Longhorn stores engine object. - 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: EngineSpec defines the desired state of the Longhorn engine - properties: - active: - type: boolean - backendStoreDriver: - enum: - - v1 - - v2 - type: string - backupVolume: - type: string - desireState: - type: string - disableFrontend: - type: boolean - engineImage: - type: string - frontend: - enum: - - blockdev - - iscsi - - nvmf - - "" - type: string - logRequested: - type: boolean - nodeID: - type: string - replicaAddressMap: - additionalProperties: - type: string - type: object - requestedBackupRestore: - type: string - requestedDataSource: - type: string - revisionCounterDisabled: - type: boolean - salvageRequested: - type: boolean - unmapMarkSnapChainRemovedEnabled: - type: boolean - upgradedReplicaAddressMap: - additionalProperties: - type: string - type: object - volumeName: - type: string - volumeSize: - format: int64 - type: string - type: object - status: - description: EngineStatus defines the observed state of the Longhorn engine - properties: - backupStatus: - additionalProperties: - properties: - backupURL: - type: string - error: - type: string - progress: - type: integer - replicaAddress: - type: string - snapshotName: - type: string - state: - type: string - type: object - nullable: true - type: object - cloneStatus: - additionalProperties: - properties: - error: - type: string - fromReplicaAddress: - type: string - isCloning: - type: boolean - progress: - type: integer - snapshotName: - type: string - state: - type: string - type: object - nullable: true - type: object - conditions: - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - currentImage: - type: string - currentReplicaAddressMap: - additionalProperties: - type: string - nullable: true - type: object - currentSize: - format: int64 - type: string - currentState: - type: string - endpoint: - type: string - instanceManagerName: - type: string - ip: - type: string - isExpanding: - type: boolean - lastExpansionError: - type: string - lastExpansionFailedAt: - type: string - lastRestoredBackup: - type: string - logFetched: - type: boolean - ownerID: - type: string - port: - type: integer - purgeStatus: - additionalProperties: - properties: - error: - type: string - isPurging: - type: boolean - progress: - type: integer - state: - type: string - type: object - nullable: true - type: object - rebuildStatus: - additionalProperties: - properties: - error: - type: string - fromReplicaAddress: - type: string - isRebuilding: - type: boolean - progress: - type: integer - state: - type: string - type: object - nullable: true - type: object - replicaModeMap: - additionalProperties: - type: string - nullable: true - type: object - restoreStatus: - additionalProperties: - properties: - backupURL: - type: string - currentRestoringBackup: - type: string - error: - type: string - filename: - type: string - isRestoring: - type: boolean - lastRestored: - type: string - progress: - type: integer - state: - type: string - type: object - nullable: true - type: object - salvageExecuted: - type: boolean - snapshots: - additionalProperties: - properties: - children: - additionalProperties: - type: boolean - nullable: true - type: object - created: - type: string - labels: - additionalProperties: - type: string - nullable: true - type: object - name: - type: string - parent: - type: string - removed: - type: boolean - size: - type: string - usercreated: - type: boolean - type: object - nullable: true - type: object - snapshotsError: - type: string - started: - type: boolean - storageIP: - type: string - unmapMarkSnapChainRemovedEnabled: - type: boolean - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: instancemanagers.longhorn.io -spec: - group: longhorn.io - names: - kind: InstanceManager - listKind: InstanceManagerList - plural: instancemanagers - shortNames: - - lhim - singular: instancemanager - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The state of the instance manager - jsonPath: .status.currentState - name: State - type: string - - description: The type of the instance manager (engine or replica) - jsonPath: .spec.type - name: Type - type: string - - description: The node that the instance manager is running on - jsonPath: .spec.nodeID - name: Node - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: InstanceManager is where Longhorn stores instance manager object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The state of the instance manager - jsonPath: .status.currentState - name: State - type: string - - description: The type of the instance manager (engine or replica) - jsonPath: .spec.type - name: Type - type: string - - description: The node that the instance manager is running on - jsonPath: .spec.nodeID - name: Node - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: InstanceManager is where Longhorn stores instance manager object. - 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: InstanceManagerSpec defines the desired state of the Longhorn instancer manager - properties: - image: - type: string - nodeID: - type: string - type: - enum: - - aio - - engine - - replica - type: string - type: object - status: - description: InstanceManagerStatus defines the observed state of the Longhorn instance manager - properties: - apiMinVersion: - type: integer - apiVersion: - type: integer - proxyApiMinVersion: - type: integer - proxyApiVersion: - type: integer - currentState: - type: string - instanceEngines: - additionalProperties: - properties: - spec: - properties: - backendStoreDriver: - type: string - name: - type: string - type: object - status: - properties: - endpoint: - type: string - errorMsg: - type: string - listen: - type: string - portEnd: - format: int32 - type: integer - portStart: - format: int32 - type: integer - resourceVersion: - format: int64 - type: integer - state: - type: string - type: - type: string - type: object - type: object - nullable: true - type: object - instanceReplicas: - additionalProperties: - properties: - spec: - properties: - backendStoreDriver: - type: string - name: - type: string - type: object - status: - properties: - endpoint: - type: string - errorMsg: - type: string - listen: - type: string - portEnd: - format: int32 - type: integer - portStart: - format: int32 - type: integer - resourceVersion: - format: int64 - type: integer - state: - type: string - type: - type: string - type: object - type: object - nullable: true - type: object - instances: - additionalProperties: - properties: - spec: - properties: - backendStoreDriver: - type: string - name: - type: string - type: object - status: - properties: - endpoint: - type: string - errorMsg: - type: string - listen: - type: string - portEnd: - format: int32 - type: integer - portStart: - format: int32 - type: integer - resourceVersion: - format: int64 - type: integer - state: - type: string - type: - type: string - type: object - type: object - nullable: true - description: 'Deprecated: Replaced by InstanceEngines and InstanceReplicas' - type: object - ip: - type: string - ownerID: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: nodes.longhorn.io -spec: - preserveUnknownFields: false - conversion: - strategy: Webhook - webhook: - clientConfig: - service: - name: longhorn-conversion-webhook - namespace: longhorn-system - path: /v1/webhook/conversion - port: 9501 - conversionReviewVersions: - - v1beta2 - - v1beta1 - group: longhorn.io - names: - kind: Node - listKind: NodeList - plural: nodes - shortNames: - - lhn - singular: node - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicate whether the node is ready - jsonPath: .status.conditions['Ready']['status'] - name: Ready - type: string - - description: Indicate whether the user disabled/enabled replica scheduling for the node - jsonPath: .spec.allowScheduling - name: AllowScheduling - type: boolean - - description: Indicate whether Longhorn can schedule replicas on the node - jsonPath: .status.conditions['Schedulable']['status'] - name: Schedulable - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: Node is where Longhorn stores Longhorn node object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: Indicate whether the node is ready - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: Indicate whether the user disabled/enabled replica scheduling for the node - jsonPath: .spec.allowScheduling - name: AllowScheduling - type: boolean - - description: Indicate whether Longhorn can schedule replicas on the node - jsonPath: .status.conditions[?(@.type=='Schedulable')].status - name: Schedulable - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: Node is where Longhorn stores Longhorn node object. - 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: NodeSpec defines the desired state of the Longhorn node - properties: - allowScheduling: - type: boolean - disks: - additionalProperties: - properties: - allowScheduling: - type: boolean - evictionRequested: - type: boolean - path: - type: string - storageReserved: - format: int64 - type: integer - tags: - items: - type: string - type: array - diskType: - enum: - - filesystem - - block - type: string - type: object - type: object - evictionRequested: - type: boolean - instanceManagerCPURequest: - type: integer - name: - type: string - tags: - items: - type: string - type: array - type: object - status: - description: NodeStatus defines the observed state of the Longhorn node - properties: - conditions: - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - diskStatus: - additionalProperties: - properties: - conditions: - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - diskType: - type: string - diskUUID: - type: string - scheduledReplica: - additionalProperties: - format: int64 - type: integer - nullable: true - type: object - storageAvailable: - format: int64 - type: integer - storageMaximum: - format: int64 - type: integer - storageScheduled: - format: int64 - type: integer - type: object - nullable: true - type: object - region: - type: string - snapshotCheckStatus: - properties: - lastPeriodicCheckedAt: - format: date-time - type: string - snapshotCheckState: - type: string - type: object - zone: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: orphans.longhorn.io -spec: - group: longhorn.io - names: - kind: Orphan - listKind: OrphanList - plural: orphans - shortNames: - - lho - singular: orphan - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The type of the orphan - jsonPath: .spec.orphanType - name: Type - type: string - - description: The node that the orphan is on - jsonPath: .spec.nodeID - name: Node - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: Orphan is where Longhorn stores orphan object. - 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: OrphanSpec defines the desired state of the Longhorn orphaned data - properties: - nodeID: - description: The node ID on which the controller is responsible to reconcile this orphan CR. - type: string - orphanType: - description: The type of the orphaned data. Can be "replica". - type: string - parameters: - additionalProperties: - type: string - description: The parameters of the orphaned data - type: object - type: object - status: - description: OrphanStatus defines the observed state of the Longhorn orphaned data - properties: - conditions: - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - ownerID: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - longhorn-manager: "" - name: recurringjobs.longhorn.io -spec: - group: longhorn.io - names: - kind: RecurringJob - listKind: RecurringJobList - plural: recurringjobs - shortNames: - - lhrj - singular: recurringjob - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Sets groupings to the jobs. When set to "default" group will be added to the volume label when no other job label exist in volume - jsonPath: .spec.groups - name: Groups - type: string - - description: Should be one of "backup" or "snapshot" - jsonPath: .spec.task - name: Task - type: string - - description: The cron expression represents recurring job scheduling - jsonPath: .spec.cron - name: Cron - type: string - - description: The number of snapshots/backups to keep for the volume - jsonPath: .spec.retain - name: Retain - type: integer - - description: The concurrent job to run by each cron job - jsonPath: .spec.concurrency - name: Concurrency - type: integer - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: Specify the labels - jsonPath: .spec.labels - name: Labels - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: RecurringJob is where Longhorn stores recurring job object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: Sets groupings to the jobs. When set to "default" group will be added to the volume label when no other job label exist in volume - jsonPath: .spec.groups - name: Groups - type: string - - description: Should be one of "snapshot", "snapshot-force-create", "snapshot-cleanup", "snapshot-delete", "backup", "backup-force-create" or "filesystem-trim" - jsonPath: .spec.task - name: Task - type: string - - description: The cron expression represents recurring job scheduling - jsonPath: .spec.cron - name: Cron - type: string - - description: The number of snapshots/backups to keep for the volume - jsonPath: .spec.retain - name: Retain - type: integer - - description: The concurrent job to run by each cron job - jsonPath: .spec.concurrency - name: Concurrency - type: integer - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: Specify the labels - jsonPath: .spec.labels - name: Labels - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: RecurringJob is where Longhorn stores recurring job object. - 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: RecurringJobSpec defines the desired state of the Longhorn recurring job - properties: - concurrency: - description: The concurrency of taking the snapshot/backup. - type: integer - cron: - description: The cron setting. - type: string - groups: - description: The recurring job group. - items: - type: string - type: array - labels: - additionalProperties: - type: string - description: The label of the snapshot/backup. - type: object - name: - description: The recurring job name. - type: string - retain: - description: The retain count of the snapshot/backup. - type: integer - task: - description: The recurring job task. Can be "snapshot", "snapshot-force-create", "snapshot-cleanup", "snapshot-delete", "backup", "backup-force-create" or "filesystem-trim" - enum: - - snapshot - - snapshot-force-create - - snapshot-cleanup - - snapshot-delete - - backup - - backup-force-create - - filesystem-trim - type: string - type: object - status: - description: RecurringJobStatus defines the observed state of the Longhorn recurring job - properties: - ownerID: - description: The owner ID which is responsible to reconcile this recurring job CR. - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: replicas.longhorn.io -spec: - group: longhorn.io - names: - kind: Replica - listKind: ReplicaList - plural: replicas - shortNames: - - lhr - singular: replica - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The current state of the replica - jsonPath: .status.currentState - name: State - type: string - - description: The node that the replica is on - jsonPath: .spec.nodeID - name: Node - type: string - - description: The disk that the replica is on - jsonPath: .spec.diskID - name: Disk - type: string - - description: The instance manager of the replica - jsonPath: .status.instanceManagerName - name: InstanceManager - type: string - - description: The current image of the replica - jsonPath: .status.currentImage - name: Image - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: Replica is where Longhorn stores replica object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The current state of the replica - jsonPath: .status.currentState - name: State - type: string - - description: The node that the replica is on - jsonPath: .spec.nodeID - name: Node - type: string - - description: The disk that the replica is on - jsonPath: .spec.diskID - name: Disk - type: string - - description: The instance manager of the replica - jsonPath: .status.instanceManagerName - name: InstanceManager - type: string - - description: The current image of the replica - jsonPath: .status.currentImage - name: Image - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: Replica is where Longhorn stores replica object. - 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: ReplicaSpec defines the desired state of the Longhorn replica - properties: - active: - type: boolean - backendStoreDriver: - enum: - - v1 - - v2 - type: string - backingImage: - type: string - dataDirectoryName: - type: string - desireState: - type: string - diskID: - type: string - diskPath: - type: string - engineImage: - type: string - engineName: - type: string - failedAt: - type: string - hardNodeAffinity: - type: string - healthyAt: - type: string - logRequested: - type: boolean - nodeID: - type: string - rebuildRetryCount: - type: integer - revisionCounterDisabled: - type: boolean - salvageRequested: - type: boolean - unmapMarkDiskChainRemovedEnabled: - type: boolean - volumeName: - type: string - volumeSize: - format: int64 - type: string - type: object - status: - description: ReplicaStatus defines the observed state of the Longhorn replica - properties: - conditions: - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - currentImage: - type: string - currentState: - type: string - evictionRequested: - type: boolean - instanceManagerName: - type: string - ip: - type: string - logFetched: - type: boolean - ownerID: - type: string - port: - type: integer - salvageExecuted: - type: boolean - started: - type: boolean - storageIP: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: settings.longhorn.io -spec: - group: longhorn.io - names: - kind: Setting - listKind: SettingList - plural: settings - shortNames: - - lhs - singular: setting - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The value of the setting - jsonPath: .value - name: Value - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: Setting is where Longhorn stores setting object. - 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 - value: - type: string - required: - - value - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The value of the setting - jsonPath: .value - name: Value - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: Setting is where Longhorn stores setting object. - 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 - value: - type: string - required: - - value - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: sharemanagers.longhorn.io -spec: - group: longhorn.io - names: - kind: ShareManager - listKind: ShareManagerList - plural: sharemanagers - shortNames: - - lhsm - singular: sharemanager - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The state of the share manager - jsonPath: .status.state - name: State - type: string - - description: The node that the share manager is owned by - jsonPath: .status.ownerID - name: Node - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: ShareManager is where Longhorn stores share manager object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The state of the share manager - jsonPath: .status.state - name: State - type: string - - description: The node that the share manager is owned by - jsonPath: .status.ownerID - name: Node - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: ShareManager is where Longhorn stores share manager object. - 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: ShareManagerSpec defines the desired state of the Longhorn share manager - properties: - image: - description: Share manager image used for creating a share manager pod - type: string - type: object - status: - description: ShareManagerStatus defines the observed state of the Longhorn share manager - properties: - endpoint: - description: NFS endpoint that can access the mounted filesystem of the volume - type: string - ownerID: - description: The node ID on which the controller is responsible to reconcile this share manager resource - type: string - state: - description: The state of the share manager resource - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: snapshots.longhorn.io -spec: - group: longhorn.io - names: - kind: Snapshot - listKind: SnapshotList - plural: snapshots - shortNames: - - lhsnap - singular: snapshot - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The volume that this snapshot belongs to - jsonPath: .spec.volume - name: Volume - type: string - - description: Timestamp when the point-in-time snapshot was taken - jsonPath: .status.creationTime - name: CreationTime - type: string - - description: Indicates if the snapshot is ready to be used to restore/backup a volume - jsonPath: .status.readyToUse - name: ReadyToUse - type: boolean - - description: Represents the minimum size of volume required to rehydrate from this snapshot - jsonPath: .status.restoreSize - name: RestoreSize - type: string - - description: The actual size of the snapshot - jsonPath: .status.size - name: Size - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: Snapshot is the Schema for the snapshots 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: SnapshotSpec defines the desired state of Longhorn Snapshot - properties: - createSnapshot: - description: require creating a new snapshot - type: boolean - labels: - additionalProperties: - type: string - description: The labels of snapshot - nullable: true - type: object - volume: - description: the volume that this snapshot belongs to. This field is immutable after creation. Required - type: string - required: - - volume - type: object - status: - description: SnapshotStatus defines the observed state of Longhorn Snapshot - properties: - checksum: - type: string - children: - additionalProperties: - type: boolean - nullable: true - type: object - creationTime: - type: string - error: - type: string - labels: - additionalProperties: - type: string - nullable: true - type: object - markRemoved: - type: boolean - ownerID: - type: string - parent: - type: string - readyToUse: - type: boolean - restoreSize: - format: int64 - type: integer - size: - format: int64 - type: integer - userCreated: - type: boolean - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: supportbundles.longhorn.io -spec: - group: longhorn.io - names: - kind: SupportBundle - listKind: SupportBundleList - plural: supportbundles - shortNames: - - lhbundle - singular: supportbundle - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The state of the support bundle - jsonPath: .status.state - name: State - type: string - - description: The issue URL - jsonPath: .spec.issueURL - name: Issue - type: string - - description: A brief description of the issue - jsonPath: .spec.description - name: Description - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: SupportBundle is where Longhorn stores support bundle object - 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: SupportBundleSpec defines the desired state of the Longhorn SupportBundle - properties: - description: - description: A brief description of the issue - type: string - issueURL: - description: The issue URL - nullable: true - type: string - nodeID: - description: The preferred responsible controller node ID. - type: string - required: - - description - type: object - status: - description: SupportBundleStatus defines the observed state of the Longhorn SupportBundle - properties: - conditions: - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - type: array - filename: - type: string - filesize: - format: int64 - type: integer - image: - description: The support bundle manager image - type: string - managerIP: - description: The support bundle manager IP - type: string - ownerID: - description: The current responsible controller node ID - type: string - progress: - type: integer - state: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: systembackups.longhorn.io -spec: - group: longhorn.io - names: - kind: SystemBackup - listKind: SystemBackupList - plural: systembackups - shortNames: - - lhsb - singular: systembackup - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The system backup Longhorn version - jsonPath: .status.version - name: Version - type: string - - description: The system backup state - jsonPath: .status.state - name: State - type: string - - description: The system backup creation time - jsonPath: .status.createdAt - name: Created - type: string - - description: The last time that the system backup was synced into the cluster - jsonPath: .status.lastSyncedAt - name: LastSyncedAt - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: SystemBackup is where Longhorn stores system backup object - 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: SystemBackupSpec defines the desired state of the Longhorn SystemBackup - properties: - volumeBackupPolicy: - description: The create volume backup policy Can be "if-not-present", "always" or "disabled" - nullable: true - type: string - type: object - status: - description: SystemBackupStatus defines the observed state of the Longhorn SystemBackup - properties: - conditions: - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - createdAt: - description: The system backup creation time. - format: date-time - type: string - gitCommit: - description: The saved Longhorn manager git commit. - nullable: true - type: string - lastSyncedAt: - description: The last time that the system backup was synced into the cluster. - format: date-time - nullable: true - type: string - managerImage: - description: The saved manager image. - type: string - ownerID: - description: The node ID of the responsible controller to reconcile this SystemBackup. - type: string - state: - description: The system backup state. - type: string - version: - description: The saved Longhorn version. - nullable: true - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: systemrestores.longhorn.io -spec: - group: longhorn.io - names: - kind: SystemRestore - listKind: SystemRestoreList - plural: systemrestores - shortNames: - - lhsr - singular: systemrestore - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The system restore state - jsonPath: .status.state - name: State - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: SystemRestore is where Longhorn stores system restore object - 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: SystemRestoreSpec defines the desired state of the Longhorn SystemRestore - properties: - systemBackup: - description: The system backup name in the object store. - type: string - required: - - systemBackup - type: object - status: - description: SystemRestoreStatus defines the observed state of the Longhorn SystemRestore - properties: - conditions: - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - ownerID: - description: The node ID of the responsible controller to reconcile this SystemRestore. - type: string - sourceURL: - description: The source system backup URL. - type: string - state: - description: The system restore state. - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: volumes.longhorn.io -spec: - preserveUnknownFields: false - conversion: - strategy: Webhook - webhook: - clientConfig: - service: - name: longhorn-conversion-webhook - namespace: longhorn-system - path: /v1/webhook/conversion - port: 9501 - conversionReviewVersions: - - v1beta2 - - v1beta1 - group: longhorn.io - names: - kind: Volume - listKind: VolumeList - plural: volumes - shortNames: - - lhv - singular: volume - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The state of the volume - jsonPath: .status.state - name: State - type: string - - description: The robustness of the volume - jsonPath: .status.robustness - name: Robustness - type: string - - description: The scheduled condition of the volume - jsonPath: .status.conditions['scheduled']['status'] - name: Scheduled - type: string - - description: The size of the volume - jsonPath: .spec.size - name: Size - type: string - - description: The node that the volume is currently attaching to - jsonPath: .status.currentNodeID - name: Node - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: Volume is where Longhorn stores volume object. - 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: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: The state of the volume - jsonPath: .status.state - name: State - type: string - - description: The robustness of the volume - jsonPath: .status.robustness - name: Robustness - type: string - - description: The scheduled condition of the volume - jsonPath: .status.conditions[?(@.type=='Schedulable')].status - name: Scheduled - type: string - - description: The size of the volume - jsonPath: .spec.size - name: Size - type: string - - description: The node that the volume is currently attaching to - jsonPath: .status.currentNodeID - name: Node - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: Volume is where Longhorn stores volume object. - 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: VolumeSpec defines the desired state of the Longhorn volume - properties: - Standby: - type: boolean - accessMode: - enum: - - rwo - - rwx - type: string - backendStoreDriver: - enum: - - v1 - - v2 - type: string - backingImage: - type: string - backupCompressionMethod: - enum: - - none - - lz4 - - gzip - type: string - dataLocality: - enum: - - disabled - - best-effort - - strict-local - type: string - dataSource: - type: string - disableFrontend: - type: boolean - diskSelector: - items: - type: string - type: array - encrypted: - type: boolean - engineImage: - type: string - fromBackup: - type: string - frontend: - enum: - - blockdev - - iscsi - - nvmf - - "" - type: string - lastAttachedBy: - type: string - migratable: - type: boolean - migrationNodeID: - type: string - nodeID: - type: string - nodeSelector: - items: - type: string - type: array - numberOfReplicas: - type: integer - offlineReplicaRebuilding: - description: OfflineReplicaRebuilding is used to determine if the offline replica rebuilding feature is enabled or not - enum: - - ignored - - disabled - - enabled - type: string - replicaAutoBalance: - enum: - - ignored - - disabled - - least-effort - - best-effort - type: string - replicaSoftAntiAffinity: - description: Replica soft anti affinity of the volume. Set enabled to allow replicas to be scheduled on the same node - enum: - - ignored - - enabled - - disabled - type: string - replicaZoneSoftAntiAffinity: - description: Replica zone soft anti affinity of the volume. Set enabled to allow replicas to be scheduled in the same zone - enum: - - ignored - - enabled - - disabled - type: string - restoreVolumeRecurringJob: - enum: - - ignored - - enabled - - disabled - type: string - revisionCounterDisabled: - type: boolean - size: - format: int64 - type: string - snapshotDataIntegrity: - enum: - - ignored - - disabled - - enabled - - fast-check - type: string - staleReplicaTimeout: - type: integer - unmapMarkSnapChainRemoved: - enum: - - ignored - - disabled - - enabled - type: string - type: object - status: - description: VolumeStatus defines the observed state of the Longhorn volume - properties: - actualSize: - format: int64 - type: integer - cloneStatus: - properties: - snapshot: - type: string - sourceVolume: - type: string - state: - type: string - type: object - conditions: - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - currentImage: - type: string - currentMigrationNodeID: - description: the node that this volume is currently migrating to - type: string - currentNodeID: - type: string - expansionRequired: - type: boolean - frontendDisabled: - type: boolean - isStandby: - type: boolean - kubernetesStatus: - properties: - lastPVCRefAt: - type: string - lastPodRefAt: - type: string - namespace: - description: determine if PVC/Namespace is history or not - type: string - pvName: - type: string - pvStatus: - type: string - pvcName: - type: string - workloadsStatus: - description: determine if Pod/Workload is history or not - items: - properties: - podName: - type: string - podStatus: - type: string - workloadName: - type: string - workloadType: - type: string - type: object - nullable: true - type: array - type: object - lastBackup: - type: string - lastBackupAt: - type: string - lastDegradedAt: - type: string - offlineReplicaRebuildingRequired: - type: boolean - ownerID: - type: string - pendingNodeID: - description: Deprecated. - type: string - remountRequestedAt: - type: string - restoreInitiated: - type: boolean - restoreRequired: - type: boolean - robustness: - type: string - shareEndpoint: - type: string - shareState: - type: string - state: - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/crds.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - longhorn-manager: "" - name: volumeattachments.longhorn.io -spec: - group: longhorn.io - names: - kind: VolumeAttachment - listKind: VolumeAttachmentList - plural: volumeattachments - shortNames: - - lhva - singular: volumeattachment - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: VolumeAttachment stores attachment information of a Longhorn volume - 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: VolumeAttachmentSpec defines the desired state of Longhorn VolumeAttachment - properties: - attachmentTickets: - additionalProperties: - properties: - generation: - description: A sequence number representing a specific generation of the desired state. Populated by the system. Read-only. - format: int64 - type: integer - id: - description: The unique ID of this attachment. Used to differentiate different attachments of the same volume. - type: string - nodeID: - description: The node that this attachment is requesting - type: string - parameters: - additionalProperties: - type: string - description: Optional additional parameter for this attachment - type: object - type: - type: string - type: object - type: object - volume: - description: The name of Longhorn volume of this VolumeAttachment - type: string - required: - - volume - type: object - status: - description: VolumeAttachmentStatus defines the observed state of Longhorn VolumeAttachment - properties: - attachmentTicketStatuses: - additionalProperties: - properties: - conditions: - description: Record any error when trying to fulfill this attachment - items: - properties: - lastProbeTime: - description: Last time we probed the condition. - type: string - lastTransitionTime: - description: Last time the condition transitioned from one status to another. - type: string - message: - description: Human-readable message indicating details about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's last transition. - type: string - status: - description: Status is the status of the condition. Can be True, False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - nullable: true - type: array - generation: - description: A sequence number representing a specific generation of the desired state. Populated by the system. Read-only. - format: int64 - type: integer - id: - description: The unique ID of this attachment. Used to differentiate different attachments of the same volume. - type: string - satisfied: - description: Indicate whether this attachment ticket has been satisfied - type: boolean - required: - - conditions - - satisfied - type: object - type: object - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -# Source: longhorn/templates/clusterrole.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: longhorn-role - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 -rules: -- apiGroups: - - apiextensions.k8s.io - resources: - - customresourcedefinitions - verbs: - - "*" -- apiGroups: [""] - resources: ["pods", "events", "persistentvolumes", "persistentvolumeclaims","persistentvolumeclaims/status", "nodes", "proxy/nodes", "pods/log", "secrets", "services", "endpoints", "configmaps", "serviceaccounts"] - verbs: ["*"] -- apiGroups: [""] - resources: ["namespaces"] - verbs: ["get", "list"] -- apiGroups: ["apps"] - resources: ["daemonsets", "statefulsets", "deployments"] - verbs: ["*"] -- apiGroups: ["batch"] - resources: ["jobs", "cronjobs"] - verbs: ["*"] -- apiGroups: ["policy"] - resources: ["poddisruptionbudgets", "podsecuritypolicies"] - verbs: ["*"] -- apiGroups: ["scheduling.k8s.io"] - resources: ["priorityclasses"] - verbs: ["watch", "list"] -- apiGroups: ["storage.k8s.io"] - resources: ["storageclasses", "volumeattachments", "volumeattachments/status", "csinodes", "csidrivers"] - verbs: ["*"] -- apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotclasses", "volumesnapshots", "volumesnapshotcontents", "volumesnapshotcontents/status"] - verbs: ["*"] -- apiGroups: ["longhorn.io"] - resources: ["volumes", "volumes/status", "engines", "engines/status", "replicas", "replicas/status", "settings", - "engineimages", "engineimages/status", "nodes", "nodes/status", "instancemanagers", "instancemanagers/status", - "sharemanagers", "sharemanagers/status", "backingimages", "backingimages/status", - "backingimagemanagers", "backingimagemanagers/status", "backingimagedatasources", "backingimagedatasources/status", - "backuptargets", "backuptargets/status", "backupvolumes", "backupvolumes/status", "backups", "backups/status", - "recurringjobs", "recurringjobs/status", "orphans", "orphans/status", "snapshots", "snapshots/status", - "supportbundles", "supportbundles/status", "systembackups", "systembackups/status", "systemrestores", "systemrestores/status", - "volumeattachments", "volumeattachments/status"] - verbs: ["*"] -- apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["*"] -- apiGroups: ["metrics.k8s.io"] - resources: ["pods", "nodes"] - verbs: ["get", "list"] -- apiGroups: ["apiregistration.k8s.io"] - resources: ["apiservices"] - verbs: ["list", "watch"] -- apiGroups: ["admissionregistration.k8s.io"] - resources: ["mutatingwebhookconfigurations", "validatingwebhookconfigurations"] - verbs: ["get", "list", "create", "patch", "delete"] -- apiGroups: ["rbac.authorization.k8s.io"] - resources: ["roles", "rolebindings", "clusterrolebindings", "clusterroles"] - verbs: ["*"] ---- -# Source: longhorn/templates/clusterrolebinding.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: longhorn-bind - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: longhorn-role -subjects: -- kind: ServiceAccount - name: longhorn-service-account - namespace: longhorn-system ---- -# Source: longhorn/templates/clusterrolebinding.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: longhorn-support-bundle - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: cluster-admin -subjects: -- kind: ServiceAccount - name: longhorn-support-bundle - namespace: longhorn-system ---- -# Source: longhorn/templates/daemonset-sa.yaml -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - app: longhorn-manager - name: longhorn-backend - namespace: longhorn-system -spec: - type: ClusterIP - sessionAffinity: ClientIP - selector: - app: longhorn-manager - ports: - - name: manager - port: 9500 - targetPort: manager ---- -# Source: longhorn/templates/deployment-ui.yaml -kind: Service -apiVersion: v1 -metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - app: longhorn-ui - name: longhorn-frontend - namespace: longhorn-system -spec: - type: ClusterIP - selector: - app: longhorn-ui - ports: - - name: http - port: 80 - targetPort: http - nodePort: null ---- -# Source: longhorn/templates/services.yaml -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - app: longhorn-conversion-webhook - name: longhorn-conversion-webhook - namespace: longhorn-system -spec: - type: ClusterIP - sessionAffinity: ClientIP - selector: - app: longhorn-manager - ports: - - name: conversion-webhook - port: 9501 - targetPort: conversion-wh ---- -# Source: longhorn/templates/services.yaml -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - app: longhorn-admission-webhook - name: longhorn-admission-webhook - namespace: longhorn-system -spec: - type: ClusterIP - sessionAffinity: ClientIP - selector: - app: longhorn-manager - ports: - - name: admission-webhook - port: 9502 - targetPort: admission-wh ---- -# Source: longhorn/templates/services.yaml -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - app: longhorn-recovery-backend - name: longhorn-recovery-backend - namespace: longhorn-system -spec: - type: ClusterIP - sessionAffinity: ClientIP - selector: - app: longhorn-manager - ports: - - name: recovery-backend - port: 9503 - targetPort: recov-backend ---- -# Source: longhorn/templates/services.yaml -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - name: longhorn-engine-manager - namespace: longhorn-system -spec: - clusterIP: None - selector: - longhorn.io/component: instance-manager - longhorn.io/instance-manager-type: engine ---- -# Source: longhorn/templates/services.yaml -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - name: longhorn-replica-manager - namespace: longhorn-system -spec: - clusterIP: None - selector: - longhorn.io/component: instance-manager - longhorn.io/instance-manager-type: replica ---- -# Source: longhorn/templates/daemonset-sa.yaml -apiVersion: apps/v1 -kind: DaemonSet -metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - app: longhorn-manager - name: longhorn-manager - namespace: longhorn-system -spec: - selector: - matchLabels: - app: longhorn-manager - template: - metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - app: longhorn-manager - spec: - containers: - - name: longhorn-manager - image: longhornio/longhorn-manager:v1.5.3 - imagePullPolicy: IfNotPresent - securityContext: - privileged: true - command: - - longhorn-manager - - -d - - daemon - - --engine-image - - "longhornio/longhorn-engine:v1.5.3" - - --instance-manager-image - - "longhornio/longhorn-instance-manager:v1.5.3" - - --share-manager-image - - "longhornio/longhorn-share-manager:v1.5.3" - - --backing-image-manager-image - - "longhornio/backing-image-manager:v1.5.3" - - --support-bundle-manager-image - - "longhornio/support-bundle-kit:v0.0.27" - - --manager-image - - "longhornio/longhorn-manager:v1.5.3" - - --service-account - - longhorn-service-account - ports: - - containerPort: 9500 - name: manager - - containerPort: 9501 - name: conversion-wh - - containerPort: 9502 - name: admission-wh - - containerPort: 9503 - name: recov-backend - readinessProbe: - httpGet: - path: /v1/healthz - port: 9501 - scheme: HTTPS - volumeMounts: - - name: dev - mountPath: /host/dev/ - - name: proc - mountPath: /host/proc/ - - name: longhorn - mountPath: /var/lib/longhorn/ - mountPropagation: Bidirectional - - name: longhorn-grpc-tls - mountPath: /tls-files/ - env: - - name: POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: POD_IP - valueFrom: - fieldRef: - fieldPath: status.podIP - - name: NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - volumes: - - name: dev - hostPath: - path: /dev/ - - name: proc - hostPath: - path: /proc/ - - name: longhorn - hostPath: - path: /var/lib/longhorn/ - - name: longhorn-grpc-tls - secret: - secretName: longhorn-grpc-tls - optional: true - serviceAccountName: longhorn-service-account - updateStrategy: - rollingUpdate: - maxUnavailable: "100%" ---- -# Source: longhorn/templates/deployment-driver.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: longhorn-driver-deployer - namespace: longhorn-system - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 -spec: - replicas: 1 - selector: - matchLabels: - app: longhorn-driver-deployer - template: - metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - app: longhorn-driver-deployer - spec: - initContainers: - - name: wait-longhorn-manager - image: longhornio/longhorn-manager:v1.5.3 - command: ['sh', '-c', 'while [ $(curl -m 1 -s -o /dev/null -w "%{http_code}" http://longhorn-backend:9500/v1) != "200" ]; do echo waiting; sleep 2; done'] - containers: - - name: longhorn-driver-deployer - image: longhornio/longhorn-manager:v1.5.3 - imagePullPolicy: IfNotPresent - command: - - longhorn-manager - - -d - - deploy-driver - - --manager-image - - "longhornio/longhorn-manager:v1.5.3" - - --manager-url - - http://longhorn-backend:9500/v1 - env: - - name: POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - - name: SERVICE_ACCOUNT - valueFrom: - fieldRef: - fieldPath: spec.serviceAccountName - - name: CSI_ATTACHER_IMAGE - value: "longhornio/csi-attacher:v4.2.0" - - name: CSI_PROVISIONER_IMAGE - value: "longhornio/csi-provisioner:v3.4.1" - - name: CSI_NODE_DRIVER_REGISTRAR_IMAGE - value: "longhornio/csi-node-driver-registrar:v2.7.0" - - name: CSI_RESIZER_IMAGE - value: "longhornio/csi-resizer:v1.7.0" - - name: CSI_SNAPSHOTTER_IMAGE - value: "longhornio/csi-snapshotter:v6.2.1" - - name: CSI_LIVENESS_PROBE_IMAGE - value: "longhornio/livenessprobe:v2.9.0" - serviceAccountName: longhorn-service-account - securityContext: - runAsUser: 0 ---- -# Source: longhorn/templates/deployment-ui.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - app: longhorn-ui - name: longhorn-ui - namespace: longhorn-system -spec: - replicas: 2 - selector: - matchLabels: - app: longhorn-ui - template: - metadata: - labels: - app.kubernetes.io/name: longhorn - app.kubernetes.io/instance: longhorn - app.kubernetes.io/version: v1.5.3 - app: longhorn-ui - spec: - affinity: - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - weight: 1 - podAffinityTerm: - labelSelector: - matchExpressions: - - key: app - operator: In - values: - - longhorn-ui - topologyKey: kubernetes.io/hostname - containers: - - name: longhorn-ui - image: longhornio/longhorn-ui:v1.5.3 - imagePullPolicy: IfNotPresent - volumeMounts: - - name : nginx-cache - mountPath: /var/cache/nginx/ - - name : nginx-config - mountPath: /var/config/nginx/ - - name: var-run - mountPath: /var/run/ - ports: - - containerPort: 8000 - name: http - env: - - name: LONGHORN_MANAGER_IP - value: "http://longhorn-backend:9500" - - name: LONGHORN_UI_PORT - value: "8000" - volumes: - - emptyDir: {} - name: nginx-cache - - emptyDir: {} - name: nginx-config - - emptyDir: {} - name: var-run ---- -# Source: longhorn/templates/validate-psp-install.yaml -# From 89c71e473e49a30d200135776fb672ba7d8dabdb Mon Sep 17 00:00:00 2001 From: Federico Stagni Date: Thu, 26 Sep 2024 14:32:46 +0200 Subject: [PATCH 7/7] increase delay for mysql probe --- README.md | 10 ++++++++-- diracx/values.yaml | 17 +++++++++-------- k3s/README.md | 2 +- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index cff8854..ee9c94e 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ This helm chart is intended to be used in two ways: * Development: The ./run_demo.sh script allows the infrastructure to be ran locally with docker+kind * Production: TODO -![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.0.1a](https://img.shields.io/badge/AppVersion-0.0.1a-informational?style=flat-square) +![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.0.1a17](https://img.shields.io/badge/AppVersion-0.0.1a17-informational?style=flat-square) ![DiracX Chart tests](https://github.com/DIRACGrid/diracx-charts/actions/workflows/main.yml/badge.svg?branch=master) @@ -301,7 +301,7 @@ Note that this configuration is trivial and does not follow production recommand | elasticsearch.volumeClaimTemplate.resources.requests.storage | string | `"100M"` | | | elasticsearch.volumeClaimTemplate.storageClassName | string | `"standard"` | | | fullnameOverride | string | `""` | | -| global.activeDeadlineSeconds | int | `900` | timeout for job deadlines | +| global.activeDeadlineSeconds | int | `3600` | timeout for job deadlines | | global.batchJobTTL | int | `600` | How long should batch jobs be retained after completing? | | global.imagePullPolicy | string | `"Always"` | | | global.images.client | string | `"ghcr.io/diracgrid/diracx/client"` | | @@ -381,6 +381,12 @@ Note that this configuration is trivial and does not follow production recommand | mysql.auth.username | string | `"sqldiracx"` | | | mysql.enabled | bool | `true` | | | mysql.initdbScriptsConfigMap | string | `"mysql-init-diracx-dbs"` | | +| mysql.startupProbe.enabled | bool | `true` | | +| mysql.startupProbe.failureThreshold | int | `30` | | +| mysql.startupProbe.initialDelaySeconds | int | `15` | | +| mysql.startupProbe.periodSeconds | int | `10` | | +| mysql.startupProbe.successThreshold | int | `1` | | +| mysql.startupProbe.timeoutSeconds | int | `1` | | | nameOverride | string | `""` | type=kubernetes.io/dockerconfigjson imagePullSecrets: - name: regcred | | nodeSelector | object | `{}` | | | opensearch.config | object | `{}` | | diff --git a/diracx/values.yaml b/diracx/values.yaml index 9176de1..4f7adbb 100644 --- a/diracx/values.yaml +++ b/diracx/values.yaml @@ -351,15 +351,16 @@ mysql: # if mysql pod is failing and restarting due to mysql update # it can be that the prob failure treshold is too low - # increasing this number can help: + # increasing this number can help. # - # startupProbe: - # enabled: true - # initialDelaySeconds: 15 - # periodSeconds: 10 - # timeoutSeconds: 1 - # failureThreshold: 30 - # successThreshold: 1 + # Also have a look at https://github.com/bitnami/charts/issues/7433#issuecomment-938748980 + startupProbe: + enabled: true + initialDelaySeconds: 15 + periodSeconds: 10 + timeoutSeconds: 1 + failureThreshold: 30 + successThreshold: 1 ########################## diff --git a/k3s/README.md b/k3s/README.md index a384a5b..d309795 100644 --- a/k3s/README.md +++ b/k3s/README.md @@ -225,7 +225,7 @@ Few tutorials: sed -i 's//thenameyouareacutally.using.com/g' ./diracx-charts/k3s/examples/* ``` -Now, it is time to choose what to install, so go through `./diracx-charts/diracx/values.yaml` file and edit it accordingly. +Now, it is time to choose what to install, so go through `./diracx-charts/diracx/values.yaml` file and edit it accordingly. ``` # Deploy time!