diff --git a/README.md b/README.md index c1ec8d9..e070371 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ You can read more technical details of Longhorn [here](http://rancher.com/micros Longhorn is beta-quality software. We appreciate your willingness to deploy Longhorn and provide feedback. -The latest release of Longhorn is **v0.8.1**. +The latest release of Longhorn is **v1.0.0**. ## Source code Longhorn is 100% open source software. Project source code is spread across a number of repos: diff --git a/chart/Chart.yaml b/chart/Chart.yaml index 35c44eb..87daa81 100644 --- a/chart/Chart.yaml +++ b/chart/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 name: longhorn -version: 0.8.1 -appVersion: v0.8.1 +version: 1.0.0 +appVersion: v1.0.0 kubeVersion: ">=v1.14.0-r0" description: Longhorn is a distributed block storage system for Kubernetes powered by Rancher Labs. keywords: diff --git a/chart/questions.yml b/chart/questions.yml index f706d8a..c196bfa 100644 --- a/chart/questions.yml +++ b/chart/questions.yml @@ -17,7 +17,7 @@ questions: label: Longhorn Manager Image Name group: "Longhorn Images Settings" - variable: image.longhorn.managerTag - default: v0.8.1 + default: v1.0.0 description: "Specify Longhorn Manager Image Tag" type: string label: Longhorn Manager Image Tag @@ -29,7 +29,7 @@ questions: label: Longhorn Engine Image Name group: "Longhorn Images Settings" - variable: image.longhorn.engineTag - default: v0.8.1 + default: v1.0.0 description: "Specify Longhorn Engine Image Tag" type: string label: Longhorn Engine Image Tag @@ -41,7 +41,7 @@ questions: label: Longhorn UI Image Name group: "Longhorn Images Settings" - variable: image.longhorn.uiTag - default: v0.8.1 + default: v1.0.0 description: "Specify Longhorn UI Image Tag" type: string label: Longhorn UI Image Tag @@ -53,10 +53,10 @@ questions: label: Longhorn Instance Manager Image Name group: "Longhorn Images Settings" - variable: image.longhorn.instanceManagerTag - default: v1_20200301 + default: v1_20200514 description: "Specify Longhorn Instance Manager Image Tag" type: string - label: Longhorn Manager Image Tag + label: Longhorn Instance Manager Image Tag group: "Longhorn Images Settings" - variable: csi.attacherImage default: @@ -153,19 +153,19 @@ questions: label: Default Storage Class Replica Count - variable: defaultSettings.backupTarget label: Backup Target - description: "The target used for backup. Support NFS or S3." + description: "The endpoint used to access the backupstore. NFS and S3 are supported." group: "Longhorn Default Settings" type: string default: - variable: defaultSettings.backupTargetCredentialSecret label: Backup Target Credential Secret - description: "The Kubernetes secret associated with the backup target." + description: "The name of the Kubernetes secret associated with the backup target." group: "Longhorn Default Settings" type: string default: - variable: defaultSettings.createDefaultDiskLabeledNodes label: Create Default Disk on Labeled Nodes - description: 'Create default Disk automatically only on Nodes with the label "node.longhorn.io/create-default-disk=true" if no other Disks exist. If disabled, default Disk will be created on all new Nodes (only on first add). By default false.' + description: 'Create default Disk automatically only on Nodes with the label "node.longhorn.io/create-default-disk=true" if no other disks exist. If disabled, the default disk will be created on all new nodes when each node is first added.' group: "Longhorn Default Settings" type: boolean default: "false" @@ -176,11 +176,11 @@ questions: type: string default: "/var/lib/longhorn/" - variable: defaultSettings.replicaSoftAntiAffinity - label: Replica Soft Anti-Affinity - description: 'Allow scheduling on nodes with existing healthy replicas of the same volume. By default true.' + label: Replica Node Level Soft Anti-Affinity + description: 'Allow scheduling on nodes with existing healthy replicas of the same volume. By default false.' group: "Longhorn Default Settings" type: boolean - default: "true" + default: "false" - variable: defaultSettings.storageOverProvisioningPercentage label: Storage Over Provisioning Percentage description: "The over-provisioning percentage defines how much storage can be allocated relative to the hard drive's capacity. By default 200." @@ -190,7 +190,7 @@ questions: default: 200 - variable: defaultSettings.storageMinimalAvailablePercentage label: Storage Minimal Available Percentage - description: "If one disk's available capacity to it's maximum capacity in % is less than the minimal available percentage, the disk would become unschedulable until more space freed up. By default 25." + description: "If the minimum available disk capacity exceeds the actual percentage of available disk capacity, the disk becomes unschedulable until more space is freed up. By default 25." group: "Longhorn Default Settings" type: int min: 0 @@ -198,13 +198,13 @@ questions: default: 25 - variable: defaultSettings.upgradeChecker label: Enable Upgrade Checker - description: 'Upgrade Checker will check for new Longhorn version periodically. When there is a new version available, it will notify the user using UI. By default true.' + description: 'Upgrade Checker will check for new Longhorn version periodically. When there is a new version available, a notification will appear in the UI. By default true.' group: "Longhorn Default Settings" type: boolean default: "true" - variable: defaultSettings.defaultReplicaCount label: Default Replica Count - description: "The default number of replicas when creating the volume from Longhorn UI. For Kubernetes, update the `numberOfReplicas` in the StorageClass. By default 3." + description: "The default number of replicas when a volume is created from the Longhorn UI. For Kubernetes configuration, update the `numberOfReplicas` in the StorageClass. By default 3." group: "Longhorn Default Settings" type: int min: 1 @@ -212,29 +212,66 @@ questions: default: 3 - variable: defaultSettings.guaranteedEngineCPU label: Guaranteed Engine CPU - description: '(EXPERIMENTAL FEATURE) Allow Longhorn Engine to have guaranteed CPU allocation. The value is how many CPUs should be reserved for each Engine/Replica Manager Pod created by Longhorn. For example, 0.1 means one-tenth of a CPU. This will help maintain engine stability during high node workload. It only applies to the Engine/Replica Manager Pods created after the setting took effect. WARNING: Attaching of the volume may fail or stuck while using this feature due to the resource constraint. Disabled ("0") by default.' + description: 'Allow Longhorn Instance Managers to have guaranteed CPU allocation. The value is how many CPUs should be reserved for each Engine/Replica Instance Manager Pod created by Longhorn. For example, 0.1 means one-tenth of a CPU. This will help maintain engine stability during high node workload. It only applies to the Engine/Replica Manager Pods created after the setting took effect. +WARNING: After this setting is changed, all the instance managers on all the nodes will be automatically restarted. +WARNING: DO NOT CHANGE THIS SETTING WITH ATTACHED VOLUMES. +By default 0.25.' group: "Longhorn Default Settings" type: float - default: 0 + default: 0.25 - variable: defaultSettings.defaultLonghornStaticStorageClass label: Default Longhorn Static StorageClass Name - description: "The 'storageClassName' is for PV/PVC when creating PV/PVC for an existing Longhorn volume. Notice that it's unnecessary for users create the related StorageClass object in Kubernetes since the StorageClass would only be used as matching labels for PVC bounding purpose. By default 'longhorn-static'." + description: "The 'storageClassName' is given to PVs and PVCs that are created for an existing Longhorn volume. The StorageClass name can also be used as a label, so it is possible to use a Longhorn StorageClass to bind a workload to an existing PV without creating a Kubernetes StorageClass object. By default 'longhorn-static'." group: "Longhorn Default Settings" type: string default: "longhorn-static" - variable: defaultSettings.backupstorePollInterval label: Backupstore Poll Interval - description: "In seconds. The interval to poll the backup store for updating volumes' Last Backup field. By default 300." + description: "In seconds. The backupstore poll interval determines how often Longhorn checks the backupstore for new backups. Set to 0 to disable the polling. By default 300." group: "Longhorn Default Settings" type: int min: 0 default: 300 - variable: defaultSettings.taintToleration label: Kubernetes Taint Toleration - description: "By setting tolerations for Longhorn then adding taints for the nodes, the nodes with large storage can be dedicated to Longhorn only (to store replica data) and reject other general workloads. Multiple tolerations can be set here, and these tolerations are separated by semicolon. For example, \"key1=value1:NoSchedule; key2:NoExecute\". Notice that \"kubernetes.io\" is used as the key of all Kubernetes default tolerations, please do not contain this substring in your toleration setting." + description: 'To dedicate nodes to store Longhorn replicas and reject other general workloads, set tolerations for Longhorn and add taints for the storage nodes. All Longhorn volumes should be detached before modifying toleration settings. We recommend setting tolerations during Longhorn deployment because the Longhorn system cannot be operated during the update. Multiple tolerations can be set here, and these tolerations are separated by semicolon. For example, `key1=value1:NoSchedule; key2:NoExecute`. Because `kubernetes.io` is used as the key of all Kubernetes default tolerations, it should not be used in the toleration settings. +WARNING: DO NOT CHANGE THIS SETTING WITH ATTACHED VOLUMES.' group: "Longhorn Default Settings" type: string default: "" + - variable: defaultSettings.autoSalvage + label: Automatic salvage + description: "If enabled, volumes will be automatically salvaged when all the replicas become faulty e.g. due to network disconnection. Longhorn will try to figure out which replica(s) are usable, then use them for the volume. By default true." + group: "Longhorn Default Settings" + type: boolean + default: "true" + - variable: defaultSettings.disableSchedulingOnCordonedNode + label: Disable Scheduling On Cordoned Node + description: "Disable Longhorn manager to schedule replica on Kubernetes cordoned node. By default true." + group: "Longhorn Default Settings" + type: boolean + default: "true" + - variable: defaultSettings.replicaZoneSoftAntiAffinity + label: Replica Zone Level Soft Anti-Affinity + description: "Allow scheduling new Replicas of Volume to the Nodes in the same Zone as existing healthy Replicas. Nodes don't belong to any Zone will be treated as in the same Zone. By default true." + group: "Longhorn Default Settings" + type: boolean + default: "true" + - variable: defaultSettings.volumeAttachmentRecoveryPolicy + label: Volume Attachment Recovery Policy + description: "Defines the Longhorn action when a Volume is stuck with a Deployment Pod on a failed node. `wait` leads to the deletion of the volume attachment as soon as the pods deletion time has passed. `never` is the default Kubernetes behavior of never deleting volume attachments on terminating pods. `immediate` leads to the deletion of the volume attachment as soon as all workload pods are pending. By default wait." + group: "Longhorn Default Settings" + type: enum + options: + - "wait" + - "never" + - "immediate" + default: "wait" + - variable: defaultSettings.mkfsExt4Parameters + label: Custom mkfs.ext4 parameters + description: "Allows setting additional filesystem creation parameters for ext4. For older host kernels it might be necessary to disable the optional ext4 metadata_csum feature by specifying `-O ^64bit,^metadata_csum`." + group: "Longhorn Default Settings" + type: string - variable: ingress.enabled default: "false" description: "Expose app using Layer 7 Load Balancer - ingress" diff --git a/chart/templates/default-setting.yaml b/chart/templates/default-setting.yaml index aa0fc55..a7efc75 100644 --- a/chart/templates/default-setting.yaml +++ b/chart/templates/default-setting.yaml @@ -19,3 +19,8 @@ data: backupstore-poll-interval: {{ .Values.defaultSettings.backupstorePollInterval }} taint-toleration: {{ .Values.defaultSettings.taintToleration }} registry-secret: {{ .Values.defaultSettings.registrySecret }} + auto-salvage: {{ .Values.defaultSettings.autoSalvage }} + disable-scheduling-on-cordoned-node: {{ .Values.defaultSettings.disableSchedulingOnCordonedNode }} + replica-zone-soft-anti-affinity: {{ .Values.defaultSettings.replicaZoneSoftAntiAffinity }} + volume-attachment-recovery-policy: {{ .Values.defaultSettings.volumeAttachmentRecoveryPolicy }} + mkfs-ext4-parameters: {{ .Values.defaultSettings.mkfsExt4Parameters }} \ No newline at end of file diff --git a/chart/values.yaml b/chart/values.yaml index a9d7a79..ed98402 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -4,13 +4,13 @@ image: longhorn: engine: longhornio/longhorn-engine - engineTag: v0.8.1 + engineTag: v1.0.0 manager: longhornio/longhorn-manager - managerTag: v0.8.1 + managerTag: v1.0.0 ui: longhornio/longhorn-ui - uiTag: v0.8.1 + uiTag: v1.0.0 instanceManager: longhornio/longhorn-instance-manager - instanceManagerTag: v1_20200301 + instanceManagerTag: v1_20200514 pullPolicy: IfNotPresent service: @@ -50,6 +50,11 @@ defaultSettings: backupstorePollInterval: ~ taintToleration: ~ registrySecret: ~ + autoSalvage: ~ + disableSchedulingOnCordonedNode: ~ + replicaZoneSoftAntiAffinity: ~ + volumeAttachmentRecoveryPolicy: ~ + mkfsExt4Parameters: ~ privateRegistry: registryUrl: ~ diff --git a/deploy/backupstores/minio-backupstore.yaml b/deploy/backupstores/minio-backupstore.yaml index 2aa2c8f..3707903 100644 --- a/deploy/backupstores/minio-backupstore.yaml +++ b/deploy/backupstores/minio-backupstore.yaml @@ -7,7 +7,9 @@ type: Opaque data: AWS_ACCESS_KEY_ID: bG9uZ2hvcm4tdGVzdC1hY2Nlc3Mta2V5 # longhorn-test-access-key AWS_SECRET_ACCESS_KEY: bG9uZ2hvcm4tdGVzdC1zZWNyZXQta2V5 # longhorn-test-secret-key - AWS_ENDPOINTS: aHR0cDovL21pbmlvLXNlcnZpY2UuZGVmYXVsdDo5MDAw # http://minio-service.default:9000 + AWS_ENDPOINTS: aHR0cHM6Ly9taW5pby1zZXJ2aWNlLmRlZmF1bHQ6OTAwMA== # https://minio-service.default:9000 + AWS_CERT: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUREekNDQWZlZ0F3SUJBZ0lSQU91d1oybTZ6SXl3c1h2a2UyNS9LYzB3RFFZSktvWklodmNOQVFFTEJRQXcKRWpFUU1BNEdBMVVFQ2hNSFFXTnRaU0JEYnpBZUZ3MHlNREEwTWpVd01qRTJNalphRncweU1UQTBNalV3TWpFMgpNalphTUJJeEVEQU9CZ05WQkFvVEIwRmpiV1VnUTI4d2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3CmdnRUtBb0lCQVFEWkpyWVUraVJhc1huSExvb1d0Tm9OQWpxN0U3YWNlQTJQZnQ1ZFM3aExzVUtCbExMOVVQMmUKZ0QrVFl3RmtCWVJNU3BsV0tNT0tuWEErNDZSVkRwSkhwSTF4YjhHNDV0L3gzVXhVaWc2WUFVbDBnTFV6N01rMQpYSUtRaWZZUllaL0FjUzJqU0VOYjRISFJ1aFZ5NzV0ZDdCaXNhd2J2TTJwTXI0dWNSR1lwZ3J6Z2V2eFBXSHZ1CnkxT29yRnIvNjFwV28wcG9aSXhtRmM2YXMzekw0NWlrRzRHN1A2ejJPamc4NGdrdnR4RFUzYVdmWXRNb3VhL3gKQVhkRlRCd2NqMkNHMHJtdmd4cE5KeEx5Kzl5NDVLVGU1SFlSd0xxUjVCeWtnVGt2RGplcWdXTnJyQWdCL3lLTApwU1ZjRmZkKzBWNjhyQmtNMEt3VlQ3bXF2WWRsZDVrTkFnTUJBQUdqWURCZU1BNEdBMVVkRHdFQi93UUVBd0lDCnBEQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0RBVEFQQmdOVkhSTUJBZjhFQlRBREFRSC9NQ1lHQTFVZEVRUWYKTUIyQ0ZXMXBibWx2TFhObGNuWnBZMlV1WkdWbVlYVnNkSWNFZndBQUFUQU5CZ2txaGtpRzl3MEJBUXNGQUFPQwpBUUVBdDBQYjM5QWliS0EyU1BPTHJHSmVRVlNaVTdZbFUyU0h0M2lhcFVBS1Rtb2o1RTQrTU8yV2NnbktoRktrCnNxeW9CYjBPYTNPMHdXUnRvVnhNUGdPQS9FaXNtZExQWmJIVTUzS2w3SDVWMm8rb0tQY0YydTk2ajdlcUZxSkUKMlltQkpBTHlUVks5LzZhS1hOSnRYZE5xRmpPMWJRcDJRTURXbjQyZGgyNjJLZmgvekM4enRyK0h4RzhuTVpQQwpsZUpxbzU3S0tkZ0YvZHVBWTdUaUI2cThTelE4RmViMklQQ2FhdVVLNzdBZ0d5b3kzK1JuWkdZV2U1MG1KVnN6CmdkQTFURmg0TVdMeUxWSFdIbnl2cEFvTjJIUjQrdzhYRkpJS2VRRFM1YklJM1pFeU5OQUZNRDg0bTVReGY4cjUKMEovQWhXTVVyMFUwcCtiRi9KM3FDQVNSK3c9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + AWS_CERT_KEY: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRRFpKcllVK2lSYXNYbkgKTG9vV3ROb05BanE3RTdhY2VBMlBmdDVkUzdoTHNVS0JsTEw5VVAyZWdEK1RZd0ZrQllSTVNwbFdLTU9LblhBKwo0NlJWRHBKSHBJMXhiOEc0NXQveDNVeFVpZzZZQVVsMGdMVXo3TWsxWElLUWlmWVJZWi9BY1MyalNFTmI0SEhSCnVoVnk3NXRkN0Jpc2F3YnZNMnBNcjR1Y1JHWXBncnpnZXZ4UFdIdnV5MU9vckZyLzYxcFdvMHBvWkl4bUZjNmEKczN6TDQ1aWtHNEc3UDZ6Mk9qZzg0Z2t2dHhEVTNhV2ZZdE1vdWEveEFYZEZUQndjajJDRzBybXZneHBOSnhMeQorOXk0NUtUZTVIWVJ3THFSNUJ5a2dUa3ZEamVxZ1dOcnJBZ0IveUtMcFNWY0ZmZCswVjY4ckJrTTBLd1ZUN21xCnZZZGxkNWtOQWdNQkFBRUNnZ0VBQUlwREc2dy9tT1ltR21PNFBqUTI4cDlWekE5UmZmUWlmSC9oUjdRZmdqaXYKcEtqZEJScEZkelowY2dabUEzeXNCcENNN3hUczM1UmlxaFZnM0VGTUJkZVg3bmRMc1EwSjg0ME1XbzE1V2RGdgpBRll0blRKeWthcG9QTG5MSGVIelJzUkJTODJyTlRoS3NDM1pUYzdnd1F3TVI2bUFlK25SMHQwQTZPT1dxWFhECm5ENmdmdk9vNXJqUjE2WFhibE9vMkIwQ2RITStIb3lXTjJhbXhVL1pUNUlsVGFjVDBHT0FaajN4QW4yclRqSTYKRXRsRGx2cUhIYy8vY3c3ck1xSHZFVEdNbnBjakpRaEZic0pmR2p2OHcxSFQ3VFd6dHphdXZoektkbHBRakc3VgpJcFlsTXBObHl1RzJVVDJqQnBEcXIyT0hqTE5CWktXWFNVL0x3VWU5WVFLQmdRRHFWVzJRcUNVNmhxalQvMHlICml6OFVOK2J3ZHdKZ2tZdXRmQWxkbG94OG1WZ1BYZHdnVkZnNUFkZktLa2hLRkhBN3Nad1dnRFA2Mlovd0IxZWEKRVNIVkZYc1V5ay9pMjQ1THVUQm5UcGRIUXNTc0F3TGl0MVFRZk16dWxiR0ZYdHlUSVkrU3FVbGhCeXY0ckg5aApRakpFYWFTcEhxZzhFeGt0VjNqUVNqRVM1UUtCZ1FEdE9wVGxQMHlkZUVkT1BZQ3ZFWllFZzNzUStiWVdLMkdwCnh1dlF2UUZTV2lVRXZpcEd5OHJGaGVRb1dyOHh3cnVFZ25MUEg3TWFwSTBYcFFpRjQvVVZjNFBweDczWFg2cmwKQkxRZUZWbnZNR1lUMElDMWJ5Ty9oUmw1ZlhGRXdOWXQzVTE4RVJteFg0N1poVUZienNYNDNPYU5hUGVha1NpRQpvQmlpa2R4RENRS0JnRU5mK3BlYjhOQktCV0tteGI4M0J4VHVHY1ZMd25BM2lMeUJyRU92VklkQ283SVBYNG9nCkZobVY4UkJjWmRwKzArSWw1K1lFU0cyNGdxYkZ4YWN6ZzlHN1VsOGc2Q1VtMFZ2dVMvOTM5a0R6N280eWMzTHkKR1FhQWkzK1JwSy9mSFhaa01ONlBNOXprN2Z5YXhDa1htbEpYT1pPeWo5WnQrMUF4RlRoMkRIUU5Bb0dCQU9JSgpXSWdheVRpZHUydU1aSW5yT3NMd09KblRKVEY0Z21VUG1lL1p0Mkd0Yk9wWSs5VmJKc2tRSzNaY0NTTXp4aEtiCmJTTjNzK05sK040WHJNaE9qVjYwSTNQa2t6bWMrU3VnVUxMOWF5VGlPOUVUY1IvdlZ1T013ZG9sc1lCdU1XV2cKSU0xZlNkamRFVEtucXIvOGhGdjh0MXowTUVEQm9SYkZxTk4ySWFacEFvR0FKVUN5SFcyS1o4cWJlWkJleW9PWApxeDF2VFVMRWtDMkdjZCs2a3VQdGlxdEpxMWVGNmc1N1BNWktoUHpoeTVVcGlxeDZZS1hrQ0tqZDlVc3FNQ2pNCm5KU2pJY3VXOWxFTmdCRmlWYjVzVVViTDdDVlhUalJkM1hab3BvemMyZjc5a1lNazVzYVpoWDdHL2Y3aGM1WWoKNUxqbkVJTWw3WWRyeUNsOHRyZjA0em89Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K --- # same secret for longhorn-system namespace apiVersion: v1 @@ -19,7 +21,8 @@ type: Opaque data: AWS_ACCESS_KEY_ID: bG9uZ2hvcm4tdGVzdC1hY2Nlc3Mta2V5 # longhorn-test-access-key AWS_SECRET_ACCESS_KEY: bG9uZ2hvcm4tdGVzdC1zZWNyZXQta2V5 # longhorn-test-secret-key - AWS_ENDPOINTS: aHR0cDovL21pbmlvLXNlcnZpY2UuZGVmYXVsdDo5MDAw # http://minio-service.default:9000 + AWS_ENDPOINTS: aHR0cHM6Ly9taW5pby1zZXJ2aWNlLmRlZmF1bHQ6OTAwMA== # https://minio-service.default:9000 + AWS_CERT: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUREekNDQWZlZ0F3SUJBZ0lSQU91d1oybTZ6SXl3c1h2a2UyNS9LYzB3RFFZSktvWklodmNOQVFFTEJRQXcKRWpFUU1BNEdBMVVFQ2hNSFFXTnRaU0JEYnpBZUZ3MHlNREEwTWpVd01qRTJNalphRncweU1UQTBNalV3TWpFMgpNalphTUJJeEVEQU9CZ05WQkFvVEIwRmpiV1VnUTI4d2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3CmdnRUtBb0lCQVFEWkpyWVUraVJhc1huSExvb1d0Tm9OQWpxN0U3YWNlQTJQZnQ1ZFM3aExzVUtCbExMOVVQMmUKZ0QrVFl3RmtCWVJNU3BsV0tNT0tuWEErNDZSVkRwSkhwSTF4YjhHNDV0L3gzVXhVaWc2WUFVbDBnTFV6N01rMQpYSUtRaWZZUllaL0FjUzJqU0VOYjRISFJ1aFZ5NzV0ZDdCaXNhd2J2TTJwTXI0dWNSR1lwZ3J6Z2V2eFBXSHZ1CnkxT29yRnIvNjFwV28wcG9aSXhtRmM2YXMzekw0NWlrRzRHN1A2ejJPamc4NGdrdnR4RFUzYVdmWXRNb3VhL3gKQVhkRlRCd2NqMkNHMHJtdmd4cE5KeEx5Kzl5NDVLVGU1SFlSd0xxUjVCeWtnVGt2RGplcWdXTnJyQWdCL3lLTApwU1ZjRmZkKzBWNjhyQmtNMEt3VlQ3bXF2WWRsZDVrTkFnTUJBQUdqWURCZU1BNEdBMVVkRHdFQi93UUVBd0lDCnBEQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0RBVEFQQmdOVkhSTUJBZjhFQlRBREFRSC9NQ1lHQTFVZEVRUWYKTUIyQ0ZXMXBibWx2TFhObGNuWnBZMlV1WkdWbVlYVnNkSWNFZndBQUFUQU5CZ2txaGtpRzl3MEJBUXNGQUFPQwpBUUVBdDBQYjM5QWliS0EyU1BPTHJHSmVRVlNaVTdZbFUyU0h0M2lhcFVBS1Rtb2o1RTQrTU8yV2NnbktoRktrCnNxeW9CYjBPYTNPMHdXUnRvVnhNUGdPQS9FaXNtZExQWmJIVTUzS2w3SDVWMm8rb0tQY0YydTk2ajdlcUZxSkUKMlltQkpBTHlUVks5LzZhS1hOSnRYZE5xRmpPMWJRcDJRTURXbjQyZGgyNjJLZmgvekM4enRyK0h4RzhuTVpQQwpsZUpxbzU3S0tkZ0YvZHVBWTdUaUI2cThTelE4RmViMklQQ2FhdVVLNzdBZ0d5b3kzK1JuWkdZV2U1MG1KVnN6CmdkQTFURmg0TVdMeUxWSFdIbnl2cEFvTjJIUjQrdzhYRkpJS2VRRFM1YklJM1pFeU5OQUZNRDg0bTVReGY4cjUKMEovQWhXTVVyMFUwcCtiRi9KM3FDQVNSK3c9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== --- apiVersion: v1 kind: Pod @@ -32,10 +35,19 @@ spec: volumes: - name: minio-volume emptyDir: {} + - name: minio-certificates + secret: + secretName: minio-secret + items: + - key: AWS_CERT + path: public.crt + - key: AWS_CERT_KEY + path: private.key + containers: - name: minio image: minio/minio - command: ["sh", "-c", "mkdir -p /storage/backupbucket && exec /usr/bin/minio server /storage"] + command: ["sh", "-c", "mkdir -p /storage/backupbucket && mkdir -p /root/.minio/certs && ln -s /root/certs/private.key /root/.minio/certs/private.key && ln -s /root/certs/public.crt /root/.minio/certs/public.crt && exec /usr/bin/minio server /storage"] env: - name: MINIO_ACCESS_KEY valueFrom: @@ -52,6 +64,9 @@ spec: volumeMounts: - name: minio-volume mountPath: "/storage" + - name: minio-certificates + mountPath: "/root/certs" + readOnly: true --- apiVersion: v1 kind: Service diff --git a/deploy/longhorn.yaml b/deploy/longhorn.yaml index 5562f01..3f505a1 100644 --- a/deploy/longhorn.yaml +++ b/deploy/longhorn.yaml @@ -218,6 +218,11 @@ data: backupstore-poll-interval: taint-toleration: registry-secret: + auto-salvage: + disable-scheduling-on-cordoned-node: + replica-zone-soft-anti-affinity: + volume-attachment-recovery-policy: + mkfs-ext4-parameters: --- apiVersion: apps/v1 kind: DaemonSet @@ -237,7 +242,7 @@ spec: spec: containers: - name: longhorn-manager - image: longhornio/longhorn-manager:v0.8.1 + image: longhornio/longhorn-manager:v1.0.0 imagePullPolicy: Always securityContext: privileged: true @@ -246,11 +251,11 @@ spec: - -d - daemon - --engine-image - - longhornio/longhorn-engine:v0.8.1 + - longhornio/longhorn-engine:v1.0.0 - --instance-manager-image - - longhornio/longhorn-instance-manager:v1_20200301 + - longhornio/longhorn-instance-manager:v1_20200514 - --manager-image - - longhornio/longhorn-manager:v0.8.1 + - longhornio/longhorn-manager:v1.0.0 - --service-account - longhorn-service-account ports: @@ -346,7 +351,7 @@ spec: spec: containers: - name: longhorn-ui - image: longhornio/longhorn-ui:v0.8.1 + image: longhornio/longhorn-ui:v1.0.0 imagePullPolicy: Always securityContext: runAsUser: 0 @@ -367,13 +372,14 @@ metadata: name: longhorn-frontend namespace: longhorn-system spec: + type: ClusterIP selector: app: longhorn-ui ports: - - port: 80 - targetPort: 8000 + - name: http + port: 80 + targetPort: http nodePort: null - type: ClusterIP --- apiVersion: apps/v1 kind: Deployment @@ -392,18 +398,18 @@ spec: spec: initContainers: - name: wait-longhorn-manager - image: longhornio/longhorn-manager:v0.8.1 + image: longhornio/longhorn-manager:v1.0.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:v0.8.1 + image: longhornio/longhorn-manager:v1.0.0 imagePullPolicy: Always command: - longhorn-manager - -d - deploy-driver - --manager-image - - longhornio/longhorn-manager:v0.8.1 + - longhornio/longhorn-manager:v1.0.0 - --manager-url - http://longhorn-backend:9500/v1 env: @@ -438,6 +444,8 @@ spec: # Manually specify number of CSI provisioner replicas #- name: CSI_PROVISIONER_REPLICA_COUNT # value: "3" + #- name: CSI_RESIZER_REPLICA_COUNT + # value: "3" #imagePullSecrets: #- name: serviceAccountName: longhorn-service-account diff --git a/uninstall/uninstall.yaml b/uninstall/uninstall.yaml index 79ca6c0..75898fd 100644 --- a/uninstall/uninstall.yaml +++ b/uninstall/uninstall.yaml @@ -58,7 +58,7 @@ spec: spec: containers: - name: longhorn-uninstall - image: longhornio/longhorn-manager:v0.8.1 + image: longhornio/longhorn-manager:v1.0.0 imagePullPolicy: Always command: - longhorn-manager