--- # Builtin: "helm template" does not respect --create-namespace apiVersion: v1 kind: Namespace metadata: name: longhorn-system --- # Source: longhorn/templates/psp.yaml apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: longhorn-psp labels: app.kubernetes.io/name: longhorn app.kubernetes.io/instance: longhorn app.kubernetes.io/version: v1.3.0 spec: privileged: true allowPrivilegeEscalation: true requiredDropCapabilities: - NET_RAW allowedCapabilities: - SYS_ADMIN hostNetwork: false hostIPC: false hostPID: true runAsUser: rule: RunAsAny seLinux: rule: RunAsAny fsGroup: rule: RunAsAny supplementalGroups: rule: RunAsAny volumes: - configMap - downwardAPI - emptyDir - secret - projected - hostPath --- # 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.3.0 --- # 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.3.0 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.3.0 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.3.0 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.3.0 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 directory: description: 'Deprecated: This field is useless.' type: string downloadProgress: description: 'Deprecated: This field is renamed to `Progress`.' type: integer message: type: string name: type: string progress: type: integer senderManagerAddress: type: string sendingReference: type: integer size: format: int64 type: integer state: type: string url: description: 'Deprecated: This field is useless now. The manager of backing image files doesn''t care if a file is downloaded and how.' 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.3.0 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: 9443 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 imageURL: description: 'Deprecated: This kind of info will be included in the related BackingImageDataSource.' type: string 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 diskDownloadProgressMap: additionalProperties: type: integer description: 'Deprecated: Replaced by field `Progress` in `DiskFileStatusMap`.' nullable: true type: object diskDownloadStateMap: additionalProperties: description: BackingImageDownloadState is replaced by BackingImageState. type: string description: 'Deprecated: Replaced by field `State` in `DiskFileStatusMap`.' nullable: true type: object 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.3.0 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 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.3.0 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: 9443 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.3.0 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 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.3.0 longhorn-manager: "" name: engineimages.longhorn.io spec: conversion: strategy: Webhook webhook: clientConfig: service: name: longhorn-conversion-webhook namespace: longhorn-system path: /v1/webhook/conversion port: 9443 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 volumes are 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 volumes are 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.3.0 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 backupVolume: type: string desireState: type: string disableFrontend: type: boolean engineImage: type: string frontend: enum: - blockdev - iscsi - "" 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 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 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 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.3.0 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: engineImage: description: 'TODO: deprecate this field' type: string image: type: string nodeID: type: string type: enum: - 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 instances: additionalProperties: properties: spec: properties: 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 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.3.0 longhorn-manager: "" name: nodes.longhorn.io spec: conversion: strategy: Webhook webhook: clientConfig: service: name: longhorn-conversion-webhook namespace: longhorn-system path: /v1/webhook/conversion port: 9443 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 type: object type: object engineManagerCPURequest: type: integer evictionRequested: type: boolean name: type: string replicaManagerCPURequest: type: integer 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 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 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.3.0 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 "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: 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 type. Can be "snapshot" or "backup". enum: - snapshot - backup 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.3.0 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 backingImage: type: string baseImage: description: Deprecated. Rename to BackingImage type: string dataDirectoryName: type: string dataPath: description: Deprecated 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 volumeName: type: string volumeSize: format: int64 type: string type: object status: description: ReplicaStatus defines the observed state of the Longhorn replica properties: 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.3.0 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.3.0 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: type: string type: object status: description: ShareManagerStatus defines the observed state of the Longhorn share manager properties: endpoint: type: string ownerID: 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.3.0 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: 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 labels: app.kubernetes.io/name: longhorn app.kubernetes.io/instance: longhorn app.kubernetes.io/version: v1.3.0 longhorn-manager: "" name: volumes.longhorn.io spec: conversion: strategy: Webhook webhook: clientConfig: service: name: longhorn-conversion-webhook namespace: longhorn-system path: /v1/webhook/conversion port: 9443 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 backingImage: type: string baseImage: description: Deprecated. Rename to BackingImage type: string dataLocality: enum: - disabled - best-effort 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 - "" type: string lastAttachedBy: type: string migratable: type: boolean migrationNodeID: type: string nodeID: type: string nodeSelector: items: type: string type: array numberOfReplicas: type: integer recurringJobs: description: Deprecated. Replaced by a separate resource named "RecurringJob" items: description: 'VolumeRecurringJobSpec is a deprecated struct. TODO: Should be removed when recurringJobs gets removed from the volume spec.' properties: concurrency: type: integer cron: type: string groups: items: type: string type: array labels: additionalProperties: type: string type: object name: type: string retain: type: integer task: enum: - snapshot - backup type: string type: object type: array replicaAutoBalance: enum: - ignored - disabled - least-effort - best-effort type: string revisionCounterDisabled: type: boolean size: format: int64 type: string staleReplicaTimeout: type: integer 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 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 ownerID: type: string pendingNodeID: 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/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.3.0 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"] verbs: ["*"] - apiGroups: [""] resources: ["namespaces"] verbs: ["get", "list"] - apiGroups: ["apps"] resources: ["daemonsets", "statefulsets", "deployments"] verbs: ["*"] - apiGroups: ["batch"] resources: ["jobs", "cronjobs"] verbs: ["*"] - apiGroups: ["policy"] resources: ["poddisruptionbudgets"] 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"] 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"] --- # 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.3.0 roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: longhorn-role subjects: - kind: ServiceAccount name: longhorn-service-account namespace: longhorn-system --- # Source: longhorn/templates/psp.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: longhorn-psp-role labels: app.kubernetes.io/name: longhorn app.kubernetes.io/instance: longhorn app.kubernetes.io/version: v1.3.0 namespace: longhorn-system rules: - apiGroups: - policy resources: - podsecuritypolicies verbs: - use resourceNames: - longhorn-psp --- # Source: longhorn/templates/psp.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: longhorn-psp-binding labels: app.kubernetes.io/name: longhorn app.kubernetes.io/instance: longhorn app.kubernetes.io/version: v1.3.0 namespace: longhorn-system roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: longhorn-psp-role subjects: - kind: ServiceAccount name: longhorn-service-account namespace: longhorn-system - kind: ServiceAccount name: default 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.3.0 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.3.0 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.3.0 app: longhorn-conversion-webhook name: longhorn-conversion-webhook namespace: longhorn-system spec: type: ClusterIP sessionAffinity: ClientIP selector: app: longhorn-conversion-webhook ports: - name: conversion-webhook port: 9443 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.3.0 app: longhorn-admission-webhook name: longhorn-admission-webhook namespace: longhorn-system spec: type: ClusterIP sessionAffinity: ClientIP selector: app: longhorn-admission-webhook ports: - name: admission-webhook port: 9443 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.3.0 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.3.0 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.3.0 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.3.0 app: longhorn-manager spec: initContainers: - name: wait-longhorn-admission-webhook image: longhornio/longhorn-manager:v1.3.0 command: ['sh', '-c', 'while [ $(curl -m 1 -s -o /dev/null -w "%{http_code}" -k https://longhorn-admission-webhook:9443/v1/healthz) != "200" ]; do echo waiting; sleep 2; done'] containers: - name: longhorn-manager image: longhornio/longhorn-manager:v1.3.0 imagePullPolicy: IfNotPresent securityContext: privileged: true command: - longhorn-manager - -d - daemon - --engine-image - "longhornio/longhorn-engine:v1.3.0" - --instance-manager-image - "longhornio/longhorn-instance-manager:v1_20220611" - --share-manager-image - "longhornio/longhorn-share-manager:v1_20220531" - --backing-image-manager-image - "longhornio/backing-image-manager:v3_20220609" - --manager-image - "longhornio/longhorn-manager:v1.3.0" - --service-account - longhorn-service-account ports: - containerPort: 9500 name: manager readinessProbe: tcpSocket: port: 9500 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.3.0 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.3.0 app: longhorn-driver-deployer spec: initContainers: - name: wait-longhorn-manager image: longhornio/longhorn-manager:v1.3.0 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.3.0 imagePullPolicy: IfNotPresent command: - longhorn-manager - -d - deploy-driver - --manager-image - "longhornio/longhorn-manager:v1.3.0" - --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:v3.4.0" - name: CSI_PROVISIONER_IMAGE value: "longhornio/csi-provisioner:v2.1.2" - name: CSI_NODE_DRIVER_REGISTRAR_IMAGE value: "longhornio/csi-node-driver-registrar:v2.5.0" - name: CSI_RESIZER_IMAGE value: "longhornio/csi-resizer:v1.2.0" - name: CSI_SNAPSHOTTER_IMAGE value: "longhornio/csi-snapshotter:v3.0.3" 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.3.0 app: longhorn-ui name: longhorn-ui namespace: longhorn-system spec: replicas: 1 selector: matchLabels: app: longhorn-ui template: metadata: labels: app.kubernetes.io/name: longhorn app.kubernetes.io/instance: longhorn app.kubernetes.io/version: v1.3.0 app: longhorn-ui spec: containers: - name: longhorn-ui image: longhornio/longhorn-ui:v1.3.0 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/deployment-webhook.yaml apiVersion: apps/v1 kind: Deployment metadata: labels: app.kubernetes.io/name: longhorn app.kubernetes.io/instance: longhorn app.kubernetes.io/version: v1.3.0 app: longhorn-conversion-webhook name: longhorn-conversion-webhook namespace: longhorn-system spec: replicas: 2 selector: matchLabels: app: longhorn-conversion-webhook template: metadata: labels: app.kubernetes.io/name: longhorn app.kubernetes.io/instance: longhorn app.kubernetes.io/version: v1.3.0 app: longhorn-conversion-webhook spec: affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 podAffinityTerm: labelSelector: matchExpressions: - key: app operator: In values: - longhorn-conversion-webhook topologyKey: kubernetes.io/hostname containers: - name: longhorn-conversion-webhook image: longhornio/longhorn-manager:v1.3.0 imagePullPolicy: IfNotPresent securityContext: runAsUser: 2000 command: - longhorn-manager - conversion-webhook - --service-account - longhorn-service-account ports: - containerPort: 9443 name: conversion-wh readinessProbe: tcpSocket: port: 9443 env: - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace serviceAccountName: longhorn-service-account --- # Source: longhorn/templates/deployment-webhook.yaml apiVersion: apps/v1 kind: Deployment metadata: labels: app.kubernetes.io/name: longhorn app.kubernetes.io/instance: longhorn app.kubernetes.io/version: v1.3.0 app: longhorn-admission-webhook name: longhorn-admission-webhook namespace: longhorn-system spec: replicas: 2 selector: matchLabels: app: longhorn-admission-webhook template: metadata: labels: app.kubernetes.io/name: longhorn app.kubernetes.io/instance: longhorn app.kubernetes.io/version: v1.3.0 app: longhorn-admission-webhook spec: affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 podAffinityTerm: labelSelector: matchExpressions: - key: app operator: In values: - longhorn-admission-webhook topologyKey: kubernetes.io/hostname initContainers: - name: wait-longhorn-conversion-webhook image: longhornio/longhorn-manager:v1.3.0 command: ['sh', '-c', 'while [ $(curl -m 1 -s -o /dev/null -w "%{http_code}" -k https://longhorn-conversion-webhook:9443/v1/healthz) != "200" ]; do echo waiting; sleep 2; done'] imagePullPolicy: IfNotPresent securityContext: runAsUser: 2000 containers: - name: longhorn-admission-webhook image: longhornio/longhorn-manager:v1.3.0 imagePullPolicy: IfNotPresent securityContext: runAsUser: 2000 command: - longhorn-manager - admission-webhook - --service-account - longhorn-service-account ports: - containerPort: 9443 name: admission-wh readinessProbe: tcpSocket: port: 9443 env: - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName serviceAccountName: longhorn-service-account