├── .github ├── CODEOWNERS ├── ISSUE_TEMPLATE │ ├── ask-a-question.md │ ├── bug_report.yml │ ├── community_qualification.yml │ ├── config.yml │ └── feature_request.md ├── pull_request_template.md └── workflows │ ├── go-version.yaml │ ├── release.yaml │ └── ubi-image-update.yaml ├── .gitignore ├── CHANGELOG ├── CHANGELOG-1.10.0.md ├── CHANGELOG-1.11.0.md ├── CHANGELOG-1.12.0.md ├── CHANGELOG-1.13.0.md ├── CHANGELOG-1.2.0.md ├── CHANGELOG-1.3.0.md ├── CHANGELOG-1.4.0.md ├── CHANGELOG-1.5.0.md ├── CHANGELOG-1.6.0.md ├── CHANGELOG-1.7.0.md ├── CHANGELOG-1.8.0.md └── CHANGELOG-1.9.0.md ├── LICENSE ├── LICENSES.md ├── Makefile ├── README.md ├── base-image ├── build-base-image.sh └── buildah-script.sh ├── config ├── csm-common.mk └── csm-versions.yaml ├── docs ├── ADOPTERS.md ├── CODE_OF_CONDUCT.md ├── COMMITTER_GUIDE.md ├── CONTRIBUTING.md ├── ISSUE_TRIAGE.md ├── MAINTAINER_GUIDE.md ├── SECURITY.md └── VERSIONING.md └── overrides.mk /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # CODEOWNERS 2 | # 3 | # documentation for this file can be found at: 4 | # https://help.github.com/en/articles/about-code-owners 5 | 6 | # These are the default owners for the code and will 7 | # be requested for review when someone opens a pull request. 8 | # order is alphabetical for easier maintenance. 9 | # 10 | # Francis Nijay (francis-nijay) 11 | # Harish P (harishp8889) 12 | # Prsanna Muthukumaraswamy (prablr79) 13 | # Sean Gallacher (gallacher) 14 | # Trevor Dawe (tdawe) 15 | # Shayna Finocchiaro (shaynafinocchiaro) 16 | # Jacob Grosner (JacobGros) 17 | # Adarsh Kumar Yadav (adarsh-dell) 18 | # Alexander Hoppe (hoppea2) 19 | # Rajshree Khare (khareRajshree) 20 | # Niranjan N (niranjan-n1) 21 | # Nitesh Rewatkar (nitesh3108) 22 | # Rajendra Indukuri (rajendraindukuri) 23 | # Bharath Sreekanth (bharathsreekanth) 24 | # Sharmila Ramamoorthy (sharmilarama) 25 | # Aaron Tye (atye) 26 | # Yamunadevi N Shanmugam (shanmydell) 27 | # Chiman Jain (chimanjain) 28 | # Rajkumar Palani (rajkumar-palani) 29 | # Abhilash Muralidhara (abhi16394) 30 | # Shefali Malhotra (shefali-malhotra) 31 | # Surya Gupta (suryagupta4) 32 | # Satya Narayana Konduri (satyakonduri) 33 | # Kumar Karthik Gosa (kumarkgosa) 34 | # Ashley Joy (ashleyvjoy) 35 | # Anand Raja Kesavamoorthy (anandrajak1) 36 | # Don Khan (donatwork) 37 | # Bahubali Jain(bpjain2004) 38 | 39 | # for all files: 40 | *@francis-nijay @harishp8889 @prablr79 @gallacher @tdawe @shaynafinocchiaro @JacobGros @adarsh-dell @hoppea2 @khareRajshree @niranjan-n1 @nitesh3108 @rajendraindukuri @bharathsreekanth @sharmilarama @atye @shanmydell @chimanjain @rajkumar-palani @abhi16394 @shefali-malhotra @suryagupta4 @satyakonduri @kumarkgosa @ashleyvjoy @anandrajak1 @donatwork @bpjain2004 41 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/ask-a-question.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Ask a question 3 | about: Ask a question. 4 | title: "[QUESTION]:" 5 | labels: type/question 6 | assignees: '' 7 | 8 | --- 9 | ### How can the Team help you today? 10 | 11 | **Details: ?** 12 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.yml: -------------------------------------------------------------------------------- 1 | name: Bug report 2 | description: Create a report to help us improve 3 | title: "[BUG]: " 4 | labels: ["type/bug", "needs-triage"] 5 | body: 6 | - type: markdown 7 | attributes: 8 | value: | 9 | Thank you for taking the time to create a Container Storage Modules (CSM) bug report. To better help us investigate this bug, please provide the information below. 10 | - type: textarea 11 | id: bug-description 12 | attributes: 13 | label: Bug Description 14 | description: A clear and concise description of what the bug is. 15 | validations: 16 | required: true 17 | - type: textarea 18 | id: files 19 | attributes: 20 | label: Logs 21 | description: Copy/paste any relevant log output here or Upload log files by dragging and dropping the files into the text area. Please be sure to remove all sensitive data such as IP addresses, host names, credentials, etc. 22 | validations: 23 | required: true 24 | - type: textarea 25 | id: screenshots 26 | attributes: 27 | label: Screenshots 28 | description: Upload any relevant screenshots here by dragging and dropping the files into the text area. 29 | validations: 30 | required: false 31 | - type: textarea 32 | id: info 33 | attributes: 34 | label: Additional Environment Information 35 | description: Provide additional environment information such as a listing of pods, PVs, PVCs, VolumeAttachments, Events, etc. 36 | validations: 37 | required: false 38 | - type: textarea 39 | id: steps 40 | attributes: 41 | label: Steps to Reproduce 42 | description: What steps can taken to reproduce this bug? 43 | validations: 44 | required: true 45 | - type: textarea 46 | id: expected 47 | attributes: 48 | label: Expected Behavior 49 | description: A clear and concise description of what you expected to happen. 50 | validations: 51 | required: true 52 | - type: textarea 53 | id: driver 54 | attributes: 55 | label: CSM Driver(s) 56 | description: Please list the CSI drivers and versions that are applicable to this bug. 57 | validations: 58 | required: true 59 | - type: input 60 | id: install 61 | attributes: 62 | label: Installation Type 63 | description: What installation type was used? Operator or Helm? Please provide the version as well. 64 | validations: 65 | required: false 66 | - type: textarea 67 | id: module 68 | attributes: 69 | label: Container Storage Modules Enabled 70 | description: Please list the Container Storage Modules that are enabled along with the image versions. 71 | validations: 72 | required: false 73 | - type: input 74 | id: co 75 | attributes: 76 | label: Container Orchestrator 77 | description: Which container orchestrator is being used? Please provide the version as well. 78 | validations: 79 | required: true 80 | - type: input 81 | id: os 82 | attributes: 83 | label: Operating System 84 | description: Which operating system is being used? Please provide the version as well. 85 | validations: 86 | required: true 87 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/community_qualification.yml: -------------------------------------------------------------------------------- 1 | name: Community Qualification Intake Form 2 | description: Intake form for a community qualified configuration 3 | title: "[Qualification]: " 4 | labels: ["type/qualification"] 5 | body: 6 | - type: markdown 7 | attributes: 8 | value: | 9 | Thank you for taking the time to qualify a configuration for Container Storage Modules (CSM). Please provide the details of your qualification so we can add it to the list of community qualified configurations. 10 | - type: input 11 | id: os 12 | attributes: 13 | label: Operating System 14 | description: Which operating system is being used? Please provide the version as well. 15 | validations: 16 | required: true 17 | - type: input 18 | id: co 19 | attributes: 20 | label: Container Orchestrator 21 | description: Which container orchestrator is being used? Please provide the version as well. 22 | validations: 23 | required: true 24 | - type: input 25 | id: storage 26 | attributes: 27 | label: Storage Platform 28 | description: Which storage platform is being used? Please provide the version as well. 29 | validations: 30 | required: true 31 | - type: dropdown 32 | id: protocol 33 | attributes: 34 | label: Protocol 35 | description: What protocol is being used? Please provide the version as well. 36 | options: 37 | - iSCSI 38 | - Fiber Channel 39 | - NVMeTCP 40 | - NVMeFC 41 | - NFS 42 | - Other 43 | default: 0 44 | validations: 45 | required: true 46 | - type: textarea 47 | id: logs 48 | attributes: 49 | label: Relevant log output 50 | description: Please copy and paste relevant log output from cert-csi. This will be automatically formatted into code, so no need for backticks. 51 | render: shell 52 | validations: 53 | required: true 54 | - type: textarea 55 | id: details 56 | attributes: 57 | label: Additional Details 58 | description: Please provide additional details if required. 59 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: CSM mailing list 4 | alias: container.storage.modules@dell.com 5 | about: Please ask and answer usage questions and report security issues here. 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: "[FEATURE]:" 5 | labels: type/feature-request, needs-triage 6 | assignees: '' 7 | 8 | --- 9 | **Describe the solution you'd like** 10 | A clear and concise description of what you want to happen. 11 | 12 | **Describe alternatives you've considered** 13 | A clear and concise description of any alternative solutions or features you've considered. 14 | 15 | **Additional context** 16 | Add any other context or screenshots about the feature request here. 17 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | 16 | # Description 17 | A few sentences describing the overall goals of the pull request's commits. 18 | 19 | # GitHub Issues 20 | List the GitHub issues impacted by this PR: 21 | 22 | | GitHub Issue # | 23 | | -------------- | 24 | | | 25 | 26 | # Checklist: 27 | 28 | - [ ] I have performed a self-review of my own code to ensure there are no formatting, vetting, linting, or security issues 29 | - [ ] I have verified that new and existing unit tests pass locally with my changes 30 | - [ ] I have not allowed coverage numbers to degenerate 31 | - [ ] I have maintained at least 90% code coverage 32 | - [ ] I have commented my code, particularly in hard-to-understand areas 33 | - [ ] I have made corresponding changes to the documentation 34 | - [ ] I have added tests that prove my fix is effective or that my feature works 35 | - [ ] I have maintained backward compatibility 36 | 37 | # How Has This Been Tested? 38 | Please describe the tests that you ran to verify your changes. Please also list any relevant details for your test configuration 39 | 40 | - [ ] Test A 41 | - [ ] Test B 42 | -------------------------------------------------------------------------------- /.github/workflows/go-version.yaml: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024 Dell Inc., or its subsidiaries. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | # Reusable workflow to perform go version update on Golang based projects 10 | name: Go Version Update 11 | 12 | on: 13 | workflow_dispatch: 14 | repository_dispatch: 15 | types: [go-update-workflow] 16 | 17 | jobs: 18 | # go version update 19 | go-version-update: 20 | uses: dell/common-github-actions/.github/workflows/go-version-workflow.yaml@main 21 | name: Go Version Update 22 | secrets: inherit 23 | -------------------------------------------------------------------------------- /.github/workflows/release.yaml: -------------------------------------------------------------------------------- 1 | name: Release CSM 2 | # Invocable as a reusable workflow 3 | # Can be manually triggered 4 | on: # yamllint disable-line rule:truthy 5 | workflow_call: 6 | workflow_dispatch: 7 | inputs: 8 | version: 9 | description: 'Version to release (major, minor, patch) Example: 1.0.0' 10 | required: true 11 | 12 | env: 13 | version: ${{ github.event.inputs.version }} 14 | branch_name: release-v${{ github.event.inputs.version }} 15 | 16 | jobs: 17 | validate-and-prepare: 18 | name: Validate Input and Prepare Release 19 | runs-on: ubuntu-latest 20 | steps: 21 | - name: Print version and branch name 22 | run: | 23 | echo "Version: ${{ env.version }}" 24 | echo "Branch name: ${{ env.branch_name }}" 25 | 26 | - name: Validate version input 27 | run: | 28 | if [[ "$version" == "none" ]]; then 29 | echo "Invalid version specified: $version. Must follow major, minor, patch versioning." 30 | exit 1 31 | fi 32 | env: 33 | version: ${{ env.version }} 34 | 35 | - name: Checkout the code 36 | uses: actions/checkout@v4 37 | with: 38 | ref: ${{ env.branch_name }} 39 | fetch-depth: 0 40 | 41 | - name: Verify if release branch exists 42 | run: | 43 | echo "Checking if release branch '${{ env.branch_name }}' exists..." 44 | git fetch --all 45 | if git branch -r | grep "origin/${{ env.branch_name }}"; then 46 | echo "The branch ${{ env.branch_name }} exists." 47 | else 48 | echo "The branch ${{ env.branch_name }} does not exist." 49 | exit 1 50 | fi 51 | env: 52 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 53 | 54 | - name: Verify branch changes 55 | run: | 56 | if git diff --quiet origin/main origin/${{ env.branch_name }}; then 57 | echo "No changes detected between ${{ env.branch_name }} and main. Aborting." 58 | exit 1 59 | fi 60 | env: 61 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 62 | 63 | create-pull-request: 64 | name: Create Pull Request 65 | runs-on: ubuntu-latest 66 | needs: validate-and-prepare 67 | steps: 68 | - name: Set up Git 69 | run: | 70 | git config --global user.name 'github-actions' 71 | git config --global user.email 'github-actions@github.com' 72 | 73 | - name: Checkout the code 74 | uses: actions/checkout@v4 75 | with: 76 | ref: ${{ env.branch_name }} 77 | fetch-depth: 0 78 | 79 | - name: Create Pull Request 80 | run: | 81 | sed 's/A few sentences describing the overall goals of the pull request'"'"'s commits./Release v${{ env.version }}/' .github/pull_request_template.md > temp_release_pr_body.md 82 | gh pr create --title "Release v${{ env.version }}" \ 83 | --body-file "temp_release_pr_body.md" \ 84 | --base main \ 85 | --head ${{ env.branch_name }} 86 | echo "Waiting for 10 seconds to ensure PR is registered..." 87 | sleep 10 88 | env: 89 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 90 | 91 | - name: Wait for PR to be merged 92 | run: | 93 | pr_number=$(gh pr list --base main --head ${{ env.branch_name }} --search "Release v${{ env.version }}" --json number --jq '.[0].number') 94 | if [ -z "$pr_number" ]; then 95 | echo "No PR found with the name Release v${{ env.version }}." 96 | exit 1 97 | fi 98 | 99 | echo "Waiting for the PR to be merged. Please merge the PR manually." 100 | timeout=60 # Timeout in minutes 101 | while [ $timeout -gt 0 ]; do 102 | pr_status=$(gh pr view "$pr_number" --json state --jq '.state') 103 | if [ "$pr_status" = "MERGED" ]; then 104 | echo "PR has been merged." 105 | break 106 | fi 107 | echo "PR not merged yet. Sleeping for 1 minute..." 108 | sleep 60 109 | timeout=$((timeout - 1)) 110 | done 111 | if [ $timeout -eq 0 ]; then 112 | echo "Timeout reached. PR was not merged." 113 | exit 1 114 | fi 115 | env: 116 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 117 | 118 | # TODO: attach built binaries to the release (if any like repctl, dellctl etc.) 119 | create-release: 120 | name: Create Release 121 | runs-on: ubuntu-latest 122 | needs: create-pull-request 123 | steps: 124 | - name: Set up Git 125 | run: | 126 | git config --global user.name 'github-actions' 127 | git config --global user.email 'github-actions@github.com' 128 | 129 | - name: Checkout the code 130 | uses: actions/checkout@v4 131 | with: 132 | fetch-depth: 0 133 | 134 | - name: Determine previous major/ minor version 135 | id: get_previous_version 136 | run: | 137 | # Extract the previous version from tags 138 | MAJOR_MINOR_VERSION=$(echo "${{ env.version }}" | grep -oE '^[0-9]+\.[0-9]+') 139 | PREVIOUS_VERSION=$(git tag --sort=-v:refname | grep -E "^v${MAJOR_MINOR_VERSION}\.0$" | sed 's/v//' | head -n 1) 140 | echo "Previous version: $PREVIOUS_VERSION" 141 | echo "previous_version=$PREVIOUS_VERSION" >> $GITHUB_ENV 142 | 143 | - name: Create new tag 144 | run: | 145 | git fetch --tags 146 | git tag v${{ env.version }} 147 | git push origin v${{ env.version }} 148 | 149 | - name: Set CHANGELOG URL 150 | id: set_changelog_url 151 | run: | 152 | if [[ "${{ env.version }}" =~ \.0$ ]]; then 153 | # Major or minor release: Link to the new changelog file for the version 154 | echo "Changelog URL: https://github.com/dell/csm/blob/main/CHANGELOG/CHANGELOG-${{ env.version }}.md" 155 | echo "changelog_url=https://github.com/dell/csm/blob/main/CHANGELOG/CHANGELOG-${{ env.version }}.md" >> $GITHUB_ENV 156 | else 157 | # Patch release: Link to the previous version's changelog 158 | echo "Changelog URL: https://github.com/dell/csm/blob/main/CHANGELOG/CHANGELOG-${{ env.previous_version }}.md" 159 | echo "changelog_url=https://github.com/dell/csm/blob/main/CHANGELOG/CHANGELOG-${{ env.previous_version }}.md" >> $GITHUB_ENV 160 | fi 161 | 162 | - name: Create Release 163 | id: create_release 164 | uses: softprops/action-gh-release@v2 165 | with: 166 | tag_name: v${{ env.version }} 167 | name: v${{ env.version }} 168 | draft: true 169 | prerelease: false 170 | generate_release_notes: false 171 | make_latest: true 172 | body: | 173 | ## Documentation 174 | - [General Documentation](https://dell.github.io/csm-docs/docs/) 175 | ## Change Log 176 | See the [CHANGELOG](${{ env.changelog_url }}) for more details. 177 | env: 178 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 179 | -------------------------------------------------------------------------------- /.github/workflows/ubi-image-update.yaml: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025 Dell Inc., or its subsidiaries. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | # Reusable workflow to perform ubi9 image version update to latest 10 | name: UBI Image Update 11 | 12 | on: 13 | 14 | # Trigger with cron job 15 | schedule: 16 | - cron: "0 12 * * 1" # This cron expression means "every monday at mid-day" 17 | 18 | # Trigger manually also 19 | workflow_dispatch: 20 | 21 | 22 | jobs: 23 | # ubi version update to latest 24 | ubi-version-update: 25 | uses: dell/common-github-actions/.github/workflows/ubi-version-update.yaml@main 26 | name: UBI Version Update 27 | secrets: inherit 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.db 2 | .idea/ 3 | dell-common-installer 4 | scripts/swagger.json 5 | vendor 6 | user.json 7 | /cmd/csm-cli/csm-cli 8 | /cmd/csm-cli/csm-cli.exe 9 | /cmd/csm-cli/csm 10 | .vscode 11 | /templates/repctl.exe 12 | /templates/repctl 13 | cockroach-data 14 | .cockroach 15 | -------------------------------------------------------------------------------- /CHANGELOG/CHANGELOG-1.10.0.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | - [v1.10.2](#v1102) 4 | - [Changelog since v1.10.1](#changelog-since-v1101) 5 | - [Known Issues](#known-issues) 6 | - [Changes by Kind](#changes-by-kind) 7 | - [Features](#features) 8 | - [v1.10.1](#v1101) 9 | - [Changelog since v1.10.0](#changelog-since-v1100) 10 | - [Known Issues](#known-issues-1) 11 | - [Changes by Kind](#changes-by-kind-1) 12 | - [Bugs](#bugs) 13 | - [v1.10.0](#v1100-) 14 | - [Changelog since v1.9.3](#changelog-since-v193-) 15 | - [Known Issues](#known-issues-) 16 | - [Changes by Kind](#changes-by-kind-) 17 | - [Deprecation](#deprecation) 18 | - [Features](#features-) 19 | - [Bugs](#bugs-) 20 | 21 | # v1.10.2 22 | 23 | ## Changelog since v1.10.1 24 | 25 | ## Known Issues 26 | - With CSI PowerStore, when a PV/PVC is deleted in Kubernetes, it triggers the deletion of the underlying volume and snapshot on the array as a default behaviour. This results in a situation where the VolumeSnapshot and VolumeSnapshotContent will still show "readyToUse: true", but leaves them unusable as it is no longer backed by underlying storage snapshot. This will not allow the creation of a PVC from snapshot and this could also lead to a data loss situations. The workaround is use of **retain** policy on the various PV, VolumeSnapshot and VolumeSnapshotContent that you wish to use for cloning. 27 | 28 | ## Changes by Kind 29 | 30 | ### Features 31 | 32 | - Support for Openshift 4.15 ([#1284](https://github.com/dell/csm/issues/1284)) 33 | - Remove checks in code for non-supported installs of CSM ([#1285](https://github.com/dell/csm/issues/1285)) 34 | 35 | # v1.10.1 36 | 37 | ## Changelog since v1.10.0 38 | 39 | ## Known Issues 40 | - Resource quotas may not work properly with the CSI PowerFlex driver. PowerFlex is only able to assign storage in 8Gi chunks, so if a create volume call is made with a size not divisible by 8Gi, CSI-PowerFlex will round up to the next 8Gi boundary when it provisions storage -- however, the resource quota will not record this size but rather the original size in the create request. This means that, for example, if a 10Gi resource quota is set, and a user provisions 10 1Gi PVCs, 80Gi of storage will actually be allocated, which is well over the amount specified in the resource quota. For now, users should only provision volumes in 8Gi-divisible chunks if they want to use resource quotas. 41 | - CSM Operator does not support dynamic namespaces for Authorization. Despite successful installation in a namespace other than "authorization", errors may arise during volume creation. Use the default namespace “authorization” for installing Authorization using CSM Operator. 42 | - With CSI PowerStore, when a PV/PVC is deleted in Kubernetes, it triggers the deletion of the underlying volume and snapshot on the array as a default behaviour. This results in a situation where the VolumeSnapshot and VolumeSnapshotContent will still show "readyToUse: true", but leaves them unusable as it is no longer backed by underlying storage snapshot. This will not allow the creation of a PVC from snapshot and this could also lead to a data loss situations. The workaround is use of **retain** policy on the various PV, VolumeSnapshot and VolumeSnapshotContent that you wish to use for cloning. 43 | 44 | ## Changes by Kind 45 | 46 | ### Bugs 47 | - Helm deployment of PowerFlex driver is failing ([#1210](https://github.com/dell/csm/issues/1210)) 48 | 49 | # v1.10.0 50 | 51 | ## Changelog since v1.9.3 52 | 53 | ## Known Issues 54 | - Resource quotas may not work properly with the CSI PowerFlex driver. PowerFlex is only able to assign storage in 8Gi chunks, so if a create volume call is made with a size not divisible by 8Gi, CSI-PowerFlex will round up to the next 8Gi boundary when it provisions storage -- however, the resource quota will not record this size but rather the original size in the create request. This means that, for example, if a 10Gi resource quota is set, and a user provisions 10 1Gi PVCs, 80Gi of storage will actually be allocated, which is well over the amount specified in the resource quota. For now, users should only provision volumes in 8Gi-divisible chunks if they want to use resource quotas. 55 | - CSM Operator does not support dynamic namespaces for Authorization. Despite successful installation in a namespace other than "authorization", errors may arise during volume creation. Use the default namespace “authorization” for installing Authorization using CSM Operator. 56 | - Helm install of CSM for PowerFlex v1.10.0 is failing due to a duplicate `mountPath: /host_opt_emc_path` being added to volumeMounts charts/csi-vxflexos/templates/node.yaml. Error message is `Error: INSTALLATION FAILED: 1 error occurred: DaemonSet.apps "vxflexos-node" is invalid: spec.template.spec.initContainers[0].volumeMounts[4].mountPath: Invalid value: "/host_opt_emc_path": must be unique`. The issue can be resolved by removing the duplicate entry in [https://github.com/dell/helm-charts/blob/main/charts/csi-vxflexos/templates/node.yaml](https://github.com/dell/helm-charts/blob/main/charts/csi-vxflexos/templates/node.yaml). 57 | - With CSI PowerStore, when a PV/PVC is deleted in Kubernetes, it triggers the deletion of the underlying volume and snapshot on the array as a default behaviour. This results in a situation where the VolumeSnapshot and VolumeSnapshotContent will still show "readyToUse: true", but leaves them unusable as it is no longer backed by underlying storage snapshot. This will not allow the creation of a PVC from snapshot and this could also lead to a data loss situations. The workaround is use of **retain** policy on the various PV, VolumeSnapshot and VolumeSnapshotContent that you wish to use for cloning. 58 | 59 | ## Changes by Kind 60 | 61 | ### Deprecation 62 | 63 | ### Features 64 | 65 | - CSM 1.10 release specific changes. ([#1091](https://github.com/dell/csm/issues/1091)) 66 | - Fixing the linting, formatting and vetting issues. ([#926](https://github.com/dell/csm/issues/926)) 67 | - Support PowerStore v3.6. ([#1129](https://github.com/dell/csm/issues/1129)) 68 | - Sample YAML for storage class creation missing in CSM Operator documentation. ([#1105](https://github.com/dell/csm/issues/1105)) 69 | 70 | ### Bugs 71 | 72 | - Driver install should not be part of Operator installation. ([#1186](https://github.com/dell/csm/issues/1186)) 73 | - Resource quota bypass. ([#1163](https://github.com/dell/csm/issues/1163)) 74 | - Operator known issue for offline bundle sidecar images should have examples for all platforms. ([#1180](https://github.com/dell/csm/issues/1180)) 75 | - PowerMax : Metro: Failed to find Remote Symm WWN. ([#1175](https://github.com/dell/csm/issues/1175)) 76 | - Kubelet Configuration Directory setting should not have a comment about default value being None. ([#1174](https://github.com/dell/csm/issues/1174)) 77 | - Documentation : Multipath related instructions are missing in Powerstore prerequisites. ([#1142](https://github.com/dell/csm/issues/1142)) 78 | - Cert-csi tests are not reporting the passed testcases in K8S E2E tests. ([#1140](https://github.com/dell/csm/issues/1140)) 79 | - PowerScale : Driver failing to re-authenticate if session cookies are expired. ([#1134](https://github.com/dell/csm/issues/1134)) 80 | - Inactive Tutorials button. ([#1121](https://github.com/dell/csm/issues/1121)) 81 | - CSI Powermax: Driver fails to restore snapshot to Metro Volumes. ([#1115](https://github.com/dell/csm/issues/1115)) 82 | - The csm-isilon-controller keeps getting panic and is restarting. ([#1104](https://github.com/dell/csm/issues/1104)) 83 | - the `nasName` parameter in the powerflex secret is now mandatory. ([#1101](https://github.com/dell/csm/issues/1101)) 84 | - Powerstore sanity tests are not working. ([#1097](https://github.com/dell/csm/issues/1097)) 85 | - CSM Operator offline install powerflex csi driver sidecar trying to pull from registry.k8s.io. ([#1094](https://github.com/dell/csm/issues/1094)) 86 | - PowerFlex driver fails to start on RKE. ([#1086](https://github.com/dell/csm/issues/1086)) 87 | - Gopowerstore - Multiple issues in mockfile. ([#1084](https://github.com/dell/csm/issues/1084)) 88 | - CSM driver repositories reference CSI Operator. ([#1081](https://github.com/dell/csm/issues/1081)) 89 | -------------------------------------------------------------------------------- /CHANGELOG/CHANGELOG-1.11.0.md: -------------------------------------------------------------------------------- 1 | 2 | - [v1.11.1](#1111) 3 | - [Changelog since v1.11.0](#changelog-since-v1110) 4 | - [Known Issues](#known-issues) 5 | - [Changes by Kind](#changes-by-kind) 6 | - [Deprecation](#deprecation) 7 | - [Features](#features) 8 | - [Bugs](#bugs) 9 | - [v1.11.0](#v1110) 10 | - [Changelog since v1.10.2](#changelog-since-v1102) 11 | - [Known Issues](#known-issues-1) 12 | - [Changes by Kind](#changes-by-kind-1) 13 | - [Deprecation](#deprecation-1) 14 | - [Features](#features-1) 15 | - [Bugs](#bugs-1) 16 | 17 | 18 | # v1.11.1 19 | 20 | ## Changelog since v1.11.0 21 | 22 | ## Known Issues 23 | 24 | ## Changes by Kind 25 | 26 | ### Deprecation 27 | 28 | ### Features 29 | - Unity consistency update to reduce the number of authentication API calls. ([#1415](https://github.com/dell/csm/issues/1415)) 30 | 31 | ### Bugs 32 | - Mounts using NVMe on PowerStore fails in v2.11 of the driver ([#1469](https://github.com/dell/csm/issues/1469)) 33 | - SDC 4.5.2.1 fails to load when deployed on OCP 4.16.x using csm-operator ([#1482](https://github.com/dell/csm/issues/1482)) 34 |
**Note**: To get the latest 4.5.2.1 SDC image, `ImagePullPolicy` for the `dellemc/sdc:4.5.2.1` image will have to be set to `Always`. 35 | 36 | # v1.11.0 37 | 38 | ## Changelog since v1.10.2 39 | 40 | ## Known Issues 41 | 42 | - Controller publish is taking too long to complete. Health monitoring is causing the Unity array to panic by opening multiple sessions. There are error messages in the log `context deadline exceeded`, when health monitoring is enabled. As a workaround, disable volume health monitoring on the node and keep it only at the controller level. Refer [here](https://dell.github.io/csm-docs/docs/csidriver/features/unity/#volume-health-monitoring) for more information about enabling/disabling volume health monitoring. 43 | - Mount of block devices using the NVMe protocols fail. ([#1469](https://github.com/dell/csm/issues/1469)). Use an alternate block protocol (iSCSI, FC) or delay upgrading to the v2.11.0 version of the PowerStore driver and wait for an update of the driver to be published. 44 | 45 | ## Changes by Kind 46 | 47 | ### Deprecation 48 | 49 | ### Features 50 | 51 | - Support for Kubernetes 1.30. ([#1400](https://github.com/dell/csm/issues/1400)) 52 | - Add Support for OpenShift Container Platform (OCP) 4.16. ([#1359](https://github.com/dell/csm/issues/1359)) 53 | - NVMe TCP support for PowerMax. ([#1308](https://github.com/dell/csm/issues/1308)) 54 | - Unity 5.4 Support. ([#1399](https://github.com/dell/csm/issues/1399)) 55 | - PowerScale OneFS 9.7 support. ([#1398](https://github.com/dell/csm/issues/1398)) 56 | - Observability upgrade is supported in CSM Operator. ([#1397](https://github.com/dell/csm/issues/1397)) 57 | - DCM and DN client upgrade is supported in CSM operator. ([#1396](https://github.com/dell/csm/issues/1396)) 58 | - Support for PowerFlex 4.6. ([#1358](https://github.com/dell/csm/issues/1358)) 59 | - Add Authorization upgrade is supported in CSM Operator. ([#1277](https://github.com/dell/csm/issues/1277)) 60 | - CSM Resiliency support for PowerMax. ([#1082](https://github.com/dell/csm/issues/1082)) 61 | 62 | ### Bugs 63 | 64 | - Documentation has broken links to sample files that are no longer available. ([#1392](https://github.com/dell/csm/issues/1392)) 65 | - CSI Powermax chooses ISCSI protocol over NVMeTCP. ([#1388](https://github.com/dell/csm/issues/1388)) 66 | - Enable static build of repctl. ([#1385](https://github.com/dell/csm/issues/1385)) 67 | - Documentation and Release Issues with Cert-CSI Tool. ([#1383](https://github.com/dell/csm/issues/1383)) 68 | - Cert-CSI Test Suites "Ephemeral Volumes" is failing. ([#1381](https://github.com/dell/csm/issues/1381)) 69 | - Quota capacity limit exceeded. ([#1375](https://github.com/dell/csm/issues/1375)) 70 | - Make files in repositories build invalid images. ([#1372](https://github.com/dell/csm/issues/1372)) 71 | - API command to check filesystem is taking 20s + causing ControllerUnPublish to take 20+secs. ([#1370](https://github.com/dell/csm/issues/1370)) 72 | - Setting large quota in Role causes overflow. ([#1368](https://github.com/dell/csm/issues/1368)) 73 | - Support Minimum 3GB Volume Size for NFS in CSI-PowerFlex. ([#1366](https://github.com/dell/csm/issues/1366)) 74 | - mkfsFormatOption not working for powerflex. ([#1364](https://github.com/dell/csm/issues/1364)) 75 | - Indentation of secret.yaml mentioned on the csm-doc portal for powerflex driver is incorrect.. ([#1355](https://github.com/dell/csm/issues/1355)) 76 | - Document update : PowerFlex expecting secret CR as -config in operator. ([#1350](https://github.com/dell/csm/issues/1350)) 77 | - karavictl storage create doesn't prompt for storage password. ([#1347](https://github.com/dell/csm/issues/1347)) 78 | - Parsing an NVME response fails for list-subsys. ([#1346](https://github.com/dell/csm/issues/1346)) 79 | - Helm install of PowerScale does not support snapshots. ([#1340](https://github.com/dell/csm/issues/1340)) 80 | - Data loss (DL) when deleting PVC but leaves unusable volumesnapshot and volumesnapshotcontent. ([#1338](https://github.com/dell/csm/issues/1338)) 81 | - CSM Replication repctl not supporting static build on OpenSUSE. ([#1330](https://github.com/dell/csm/issues/1330)) 82 | - Helm chart is not issuing a warning when installing complex Kubernetes version like Mirantis and alpha/beta versions of Kubernetes. ([#1325](https://github.com/dell/csm/issues/1325)) 83 | - PowerScale CSM: Updating the fsGroupPolicy in the csm is not updating the csidriver. ([#1322](https://github.com/dell/csm/issues/1322)) 84 | - Sample file for PowerFlex SDC CR is not updated correctly in the main. ([#1319](https://github.com/dell/csm/issues/1319)) 85 | - Link for Dell PowerFlex Deployment Guide is missing in the operator document. ([#1318](https://github.com/dell/csm/issues/1318)) 86 | - CSM PowerStore - Remove the RESTAPI code that is not needed. ([#1317](https://github.com/dell/csm/issues/1317)) 87 | - PowerScale CSI - Creating PVC from csi snapshot is failing. ([#1316](https://github.com/dell/csm/issues/1316)) 88 | - CSI node pod crash after replacing OCP ingress certificate or restarting kubectl service. ([#1310](https://github.com/dell/csm/issues/1310)) 89 | - Offline installation documentation appears to be out of date. ([#1307](https://github.com/dell/csm/issues/1307)) 90 | - Create volume even if the size is smaller than possible. ([#1305](https://github.com/dell/csm/issues/1305)) 91 | - Powerflex snapshots are created as ReadWrite snapshots. ([#1302](https://github.com/dell/csm/issues/1302)) 92 | - Missing operator migration page and invalid YAML file version in CSM Docs. ([#1301](https://github.com/dell/csm/issues/1301)) 93 | - Images of application mobility velero plugin and controller is not setting the correct image to the latest. ([#1299](https://github.com/dell/csm/issues/1299)) 94 | - Fix linter errors in csm-operator. ([#1291](https://github.com/dell/csm/issues/1291)) 95 | - CSM docs is having dead links. ([#1289](https://github.com/dell/csm/issues/1289)) 96 | - Documentation - RWOP mode has been GAd and it does not need alpha gates anymore. ([#1287](https://github.com/dell/csm/issues/1287)) 97 | - unable to install the UNITY driver in NAT Env. ([#1279](https://github.com/dell/csm/issues/1279)) 98 | - Installation Wizard creates a 0Byte file when selecting Operator for the installation type. ([#1275](https://github.com/dell/csm/issues/1275)) 99 | - Missing entries for Resiliency in installation wizard template. ([#1270](https://github.com/dell/csm/issues/1270)) 100 | - Changes in new release of google.golang.org/protobuf is causing compilation issues. ([#1239](https://github.com/dell/csm/issues/1239)) 101 | - Missing mountPropagation param for Powermax node template in CSM-Operator. ([#1238](https://github.com/dell/csm/issues/1238)) 102 | - Error handling not good in node.go:nodeProbe() and other similar functions. ([#1237](https://github.com/dell/csm/issues/1237)) 103 | - Cannot configure export IP for CSI-Unity. ([#1222](https://github.com/dell/csm/issues/1222)) 104 | - Issue while Configuring Authorization module with Powermax CSI Driver using Operator. ([#1220](https://github.com/dell/csm/issues/1220)) 105 | - Add the helm-charts-version parameter to the install command for all drivers in csm-docs. ([#1218](https://github.com/dell/csm/issues/1218)) 106 | - Incorrect Error message in Resiliency Podmon in controllerCleanupPod() func. ([#1216](https://github.com/dell/csm/issues/1216)) 107 | - Discrepancy in their secret. ([#1215](https://github.com/dell/csm/issues/1215)) 108 | - Doc hyper links in driver Readme is broken. ([#1209](https://github.com/dell/csm/issues/1209)) 109 | - Snapshot ingestion procedure for CSI Unity Driver misising. ([#1206](https://github.com/dell/csm/issues/1206)) 110 | - Operator doesn't support non-authorization namespace. ([#1205](https://github.com/dell/csm/issues/1205)) 111 | - OCP min/max version support. ([#1203](https://github.com/dell/csm/issues/1203)) 112 | - CrashLoopBackOff and OOMKilled issue in pod : Dell CSM Operator Manager POD. ([#1200](https://github.com/dell/csm/issues/1200)) 113 | - Topology-related node labels are not added automatically. ([#1198](https://github.com/dell/csm/issues/1198)) 114 | - Controller Pod keeps restarting due to "Lost connection to CSI driver" error. ([#1188](https://github.com/dell/csm/issues/1188)) 115 | -------------------------------------------------------------------------------- /CHANGELOG/CHANGELOG-1.12.0.md: -------------------------------------------------------------------------------- 1 | 2 | - [v1.12.1](#v1121) 3 | - [Changelog since v1.12.0](#changelog-since-v1120) 4 | - [Changes by Kind](#changes-by-kind) 5 | - [Bugs](#bugs) 6 | - [v1.12.0](#v1120) 7 | - [Changelog since v1.11.1](#changelog-since-v1111) 8 | - [Known Issues](#known-issues) 9 | - [Changes by Kind](#changes-by-kind-1) 10 | - [Deprecation](#deprecation) 11 | - [Features](#features) 12 | - [Bugs](#bugs-1) 13 | 14 | # v1.12.1 15 | 16 | ## Changelog since v1.12.0 17 | 18 | ## Changes by Kind 19 | 20 | ### Bugs 21 | 22 | - Support multiple sidecar headers in the Authorization Proxy Server. ([#1804](https://github.com/dell/csm/issues/1804)) 23 | 24 | # v1.12.0 25 | 26 | ## Changelog since v1.11.1 27 | 28 | ## Known Issues 29 | When using CSI-PowerMax with Replication in a multi-cluster setup, the driver on the target cluster fails and logs an error: `“CSI reverseproxy service host or port not found, CSI reverseproxy not installed properly.”`This means the reverseproxy service isn’t set up correctly on the target cluster. You’ll need to manually create the reverseproxy service on the target cluster by following the provided instructions [here](https://dell.github.io/csm-docs/docs/deployment/csmoperator/modules/replication/#configuration-steps) 30 | ## Changes by Kind 31 | 32 | ### Deprecation 33 | - Deprecate Encryption. ([#1517](https://github.com/dell/csm/issues/1517)) 34 | - Issue deprecation notice for CSM Volume Group Snapshotter module. ([#1544](https://github.com/dell/csm/issues/1544)) 35 | - Deprecate DockerHub - ([#1435](https://github.com/dell/csm/issues/1435)) 36 | 37 | ### Features 38 | 39 | - Add Support for KubeVirt. ([#1508](https://github.com/dell/csm/issues/1508)) 40 | - Add Support for OpenShift Container Platform (OCP) 4.17. ([#1473](https://github.com/dell/csm/issues/1473)) 41 | - Support for Kubernetes 1.31. ([#1472](https://github.com/dell/csm/issues/1472)) 42 | - Simplify the CSM Operator deployment. ([#1449](https://github.com/dell/csm/issues/1449)) 43 | - CSM 1.12 release specific changes. ([#1435](https://github.com/dell/csm/issues/1435)) 44 | - Automatic update of helm charts with latest image version. ([#1414](https://github.com/dell/csm/issues/1414)) 45 | - Adding support for PowerMax Magnolia. ([#1410](https://github.com/dell/csm/issues/1410)) 46 | - Remove ACC Support. ([#1484](https://github.com/dell/csm/issues/1484)) 47 | - Enable Light/Dark Mode Menu in Navbar. ([#1476](https://github.com/dell/csm/issues/1476)) 48 | - PowerStore Sync / Metro for Block - CSM Replication. ([#1443](https://github.com/dell/csm/issues/1443)) 49 | - Stateless, GitOps, HA enabled deployment of the CSM Authorization proxy server. ([#1281](https://github.com/dell/csm/issues/1281)) 50 | - Enable/disable automatic SDC deployment along with driver installation.. ([#663](https://github.com/dell/csm/issues/663)) 51 | 52 | ### Bugs 53 | 54 | - Powermax Intergration test failing. ([#1519](https://github.com/dell/csm/issues/1519)) 55 | - Dell CSM Installation Issues. ([#1416](https://github.com/dell/csm/issues/1416)) 56 | - privTgt mount is lost after vxflexos-node pod restart. ([#1546](https://github.com/dell/csm/issues/1546)) 57 | - Helm charts environment variables are missing for powermax-array-config. ([#1543](https://github.com/dell/csm/issues/1543)) 58 | - csm-docs support matrix is inconsistent with Unity 5.3.x supported platform. ([#1542](https://github.com/dell/csm/issues/1542)) 59 | - CSM Installation Wizard. ([#1540](https://github.com/dell/csm/issues/1540)) 60 | - Wrong storage protocol used when multiple PowerStore arrays are defined in secret. ([#1539](https://github.com/dell/csm/issues/1539)) 61 | - Host definitions not being created after adding new appliance to secret. ([#1538](https://github.com/dell/csm/issues/1538)) 62 | - CSI PowerStore unable to resize NVMe block PVC, even though volume on the array get's resized. ([#1534](https://github.com/dell/csm/issues/1534)) 63 | - CSM Operator Will Continually Add Components to Observability. ([#1533](https://github.com/dell/csm/issues/1533)) 64 | - CSM-Operator resets dell-replication-controller-config configmap. ([#1531](https://github.com/dell/csm/issues/1531)) 65 | - Duplicate host NQNs on nodes with no logs. ([#1530](https://github.com/dell/csm/issues/1530)) 66 | - PowerFlex e2e-fsgroup tests are failing. ([#1521](https://github.com/dell/csm/issues/1521)) 67 | - iSCSI Linux best practices for PowerStore missing from CSI documentation. ([#1518](https://github.com/dell/csm/issues/1518)) 68 | - Missing Node tolerations for resiliency module. ([#1510](https://github.com/dell/csm/issues/1510)) 69 | - CSM Operator E2E tests are not passing. ([#1507](https://github.com/dell/csm/issues/1507)) 70 | - Fix Gosec error in service.go. ([#1499](https://github.com/dell/csm/issues/1499)) 71 | - Incorrect CSI Driver Capability for NFS Volume Cloning in CSM Documentation for PowerFlex. ([#1498](https://github.com/dell/csm/issues/1498)) 72 | - Cert-csi Qualification failing for OCP 4.17 rca environment.. ([#1485](https://github.com/dell/csm/issues/1485)) 73 | - CSM Operator - Changes to csiDriverSpec does not reflect in CSM state or csidrivers.storage.k8s.io object. ([#1475](https://github.com/dell/csm/issues/1475)) 74 | - NVMeTCP Linux requirements and Best Practices need to be documented and/or incorporated into CSI drivers. ([#1465](https://github.com/dell/csm/issues/1465)) 75 | - add NVMeTCP connection parameter ctrl-loss-tmo=-1 to implement powerstore best practices. ([#1459](https://github.com/dell/csm/issues/1459)) 76 | - CSI-PowerStore Node Prefix is ignored. ([#1458](https://github.com/dell/csm/issues/1458)) 77 | - Improve Documentation - Multipath configuration for FC and FC-NVMe attached arrays. ([#1453](https://github.com/dell/csm/issues/1453)) 78 | - CSM Installation Wizard page is not rendered properly. ([#1452](https://github.com/dell/csm/issues/1452)) 79 | - CSM-operator build fails from disk space issue. ([#1448](https://github.com/dell/csm/issues/1448)) 80 | - Gobrick does not clean wwids from /etc/multipath/wwids after removing multipath devices. ([#1447](https://github.com/dell/csm/issues/1447)) 81 | - Replication Failover/Reprotect operations has "Error" under State field in the ReplicationGroup. ([#1445](https://github.com/dell/csm/issues/1445)) 82 | - Remove mutex locks from interceptors on method calls. ([#1438](https://github.com/dell/csm/issues/1438)) 83 | - Access token refresh expiration reverts to 30 seconds. ([#1436](https://github.com/dell/csm/issues/1436)) 84 | - Upgrade k8s.io modules in csm-observability module. ([#1431](https://github.com/dell/csm/issues/1431)) 85 | - Samples for Cert-CSI documentation is not showing the correct values for storage classes. ([#1428](https://github.com/dell/csm/issues/1428)) 86 | - CSM Operator e2e tests: Error in test 3. ([#1427](https://github.com/dell/csm/issues/1427)) 87 | - Incorrect Volume Creation Due to Idempotency in CreateVolume. ([#1425](https://github.com/dell/csm/issues/1425)) 88 | - Feedback link is not working in CSM-docs. ([#1421](https://github.com/dell/csm/issues/1421)) 89 | - Interactive Tutorial unavailable/under maintenance. ([#1419](https://github.com/dell/csm/issues/1419)) 90 | - csi-powermax crashed when attempting to unmount volume from node. ([#1418](https://github.com/dell/csm/issues/1418)) 91 | - CSM docs home page is not updated with latest matrix. ([#1411](https://github.com/dell/csm/issues/1411)) 92 | - csm-authorization helm charts fail against "helm lint". ([#1409](https://github.com/dell/csm/issues/1409)) 93 | - CSM Doc's Code block copy button styling is not rendered properly. ([#884](https://github.com/dell/csm/issues/884)) 94 | -------------------------------------------------------------------------------- /CHANGELOG/CHANGELOG-1.13.0.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | - [v1.13.1](#v1131) 4 | - [Changelog since v1.13.0](#changelog-since-v1130) 5 | - [Known Issues](#known-issues) 6 | - [Changes by Kind](#changes-by-kind) 7 | - [Deprecation](#deprecation) 8 | - [Features](#features) 9 | - [Bugs](#bugs) 10 | 11 | 12 | - [v1.13.0](#v1130) 13 | - [Changelog since v1.12.0](#changelog-since-v1120) 14 | - [Known Issues](#known-issues-1) 15 | - [Changes by Kind](#changes-by-kind-1) 16 | - [Deprecation](#deprecation-1) 17 | - [Features](#features-1) 18 | - [Bugs](#bugs-1) 19 | 20 | 21 | # v1.13.1 22 | 23 | ## Changelog since v1.13.0 24 | 25 | ## Known Issues 26 | 27 | ## Changes by Kind 28 | 29 | ### Deprecation 30 | 31 | - Support for CSM via Slack will be deprecated on 5/31/2025, aligning with the CSM 1.14 release. All existing Slack channels will be archived from that date onward. Please create a [GitHub Issue](https://github.com/dell/csm/issues) for community support or reach out via the [Dell Support Portal](https://dell.com/support) if you have a valid support contract. For more details, please see our [Dell Support Page](https://dell.github.io/csm-docs/docs/support/). 32 | 33 | ### Features 34 | 35 | ### Bugs 36 | - Pods Stuck in Terminating State After PowerFlex CSI Node Pod Restart When Deployments Share Same Node ([#1782](https://github.com/dell/csm/issues/1782)) 37 | - Support multiple sidecar headers in the Authorization Proxy Server. ([#1804](https://github.com/dell/csm/issues/1804)) 38 | 39 | # v1.13.0 40 | 41 | ## Changelog since v1.12.0 42 | 43 | ## Known Issues 44 | When using Helm charts to install the PowerMax driver with multiple arrays, the powermax-array-config ConfigMap is incorrectly created, resulting in multiple X_CSI_POWERMAX_ENDPOINT entries. This causes the driver pods to crash with the error "mapping key "X_CSI_POWERMAX_ENDPOINT" already defined". To resolve this issue, you will need to manually edit the ConfigMap powermax-array-config to remove all instances of X_CSI_POWERMAX_ENDPOINT and restart the driver pods (https://github.com/dell/csm/issues/1760). 45 | When restarting a PowerFlex deployment via a command such as 'oc rollout restart', Powerflex CSI node pods will restart. Any deployment whose pods are scheduled on the same node as the restarted pod will be stuck in the Terminating state indefinitely. To resolve this issue, upgrade to v1.13.1 (https://github.com/dell/csm/issues/1782). 46 | 47 | ## Changes by Kind 48 | 49 | ### Deprecation 50 | 51 | - Support for CSM via Slack will be deprecated on 5/31/2025, aligning with the CSM 1.14 release. All existing Slack channels will be archived from that date onward. Please create a [GitHub Issue](https://github.com/dell/csm/issues) for community support or reach out via the [Dell Support Portal](https://dell.com/support) if you have a valid support contract. For more details, please see our [Dell Support Page](https://dell.github.io/csm-docs/docs/support/). 52 | 53 | ### Features 54 | 55 | - Deprecation note for slack external support. ([#1679](https://github.com/dell/csm/issues/1679)) 56 | - CSI Powerflex must have the ability to connect a subset of the worker nodes to a storage array for multi-array suppport. ([#1613](https://github.com/dell/csm/issues/1613)) 57 | - Multi-Availability Zone (AZ) support with multiple storage systems - dedicated storage systems in each AZ. ([#1612](https://github.com/dell/csm/issues/1612)) 58 | - Added support for PowerScale 9.10. ([#1611](https://github.com/dell/csm/issues/1611)) 59 | - Added Support for PowerStore 4.1. ([#1610](https://github.com/dell/csm/issues/1610)) 60 | - Support Kubevirt for CSM modules. ([#1563](https://github.com/dell/csm/issues/1563)) 61 | - Added support for Kubernetes 1.32. ([#1561](https://github.com/dell/csm/issues/1561)) 62 | - Supporting Openshift 4.18 for CSM.. ([#1560](https://github.com/dell/csm/issues/1560)) 63 | - Release CSM 1.13 changes. ([#1559](https://github.com/dell/csm/issues/1559)) 64 | 65 | ### Bugs 66 | 67 | - Minimal CR for Powerflex is failing in Csm-operator. ([#1671](https://github.com/dell/csm/issues/1671)) 68 | - CSM PowerMax wrong error message. ([#1634](https://github.com/dell/csm/issues/1634)) 69 | - CSM deployment minimal file - pulling from quay after updating the image registry. ([#1633](https://github.com/dell/csm/issues/1633)) 70 | - csm-metrics-powerstore doesn't start when the PowerStore endpoint is using a DNS name. ([#1632](https://github.com/dell/csm/issues/1632)) 71 | - cert-csi CapacityTracking test fails when more than 1 CSI driver is deployed. ([#1504](https://github.com/dell/csm/issues/1504)) 72 | - CSM-Authorization unit test race condition with goscaleio v1.18.0. ([#1677](https://github.com/dell/csm/issues/1677)) 73 | - PowerMax Driver unable to Delete Replication Group During Replication Operations. ([#1669](https://github.com/dell/csm/issues/1669)) 74 | - CSM-Operator is reconciling non CSM pods. ([#1668](https://github.com/dell/csm/issues/1668)) 75 | - Labels versions and maintainer update for CSM images. ([#1667](https://github.com/dell/csm/issues/1667)) 76 | - Cert-csi is hitting a failure in MultiAttachSuite (MAS). ([#1665](https://github.com/dell/csm/issues/1665)) 77 | - Cert-csi modifies ephemeral.volumeAttributes fields causing test failure. ([#1664](https://github.com/dell/csm/issues/1664)) 78 | - Pod filesystem not resized while volume gets succesfully expanded. ([#1663](https://github.com/dell/csm/issues/1663)) 79 | - A revoked tenant is too tightly coupled to validity of tenant token. ([#1662](https://github.com/dell/csm/issues/1662)) 80 | - Latest OPA version (1.0.0) fails to parse Authorization policies. ([#1661](https://github.com/dell/csm/issues/1661)) 81 | - Helm installation still check snapshot CRD even though snapshot enabled is set to false. ([#1654](https://github.com/dell/csm/issues/1654)) 82 | - Cert-csi is failing for k8s environment. ([#1652](https://github.com/dell/csm/issues/1652)) 83 | - PowerMax - X_CSI_IG_MODIFY_HOSTNAME fails to rename a host with same name in different case. ([#1650](https://github.com/dell/csm/issues/1650)) 84 | - CSM-Operator: E2E Tests are running with 1 replica count. ([#1648](https://github.com/dell/csm/issues/1648)) 85 | - Cannot create PowerMax clones. ([#1644](https://github.com/dell/csm/issues/1644)) 86 | - E2E and cert-csi tets are failing. ([#1642](https://github.com/dell/csm/issues/1642)) 87 | - NodeGetVolumeStats will cause panic when called w/ an Ephemeral volume. ([#1641](https://github.com/dell/csm/issues/1641)) 88 | - CSM PowerFlex entering boot loop when array has long response times. ([#1639](https://github.com/dell/csm/issues/1639)) 89 | - CSM Docs Multiple fixes for CSI-Powermax installation. ([#1638](https://github.com/dell/csm/issues/1638)) 90 | - Broken links in helm charts readme. ([#1635](https://github.com/dell/csm/issues/1635)) 91 | - Documentation requires enhancements for PowerStore multipath.conf. ([#1627](https://github.com/dell/csm/issues/1627)) 92 | - PowerScale - handle panic error in ParseNormalizedSnapshotID. ([#1620](https://github.com/dell/csm/issues/1620)) 93 | - Prefix with `99-` the CSM-PowerMax MachineConfig sample for multipathing. ([#1618](https://github.com/dell/csm/issues/1618)) 94 | - UI is broken for Operator documentation page in the instructions. ([#1615](https://github.com/dell/csm/issues/1615)) 95 | - Volume Size Rounding Issue in PowerFlex: Rounds Down Instead of Up for Multiples of 8GB. ([#1608](https://github.com/dell/csm/issues/1608)) 96 | - Not able to create CSM using the minimal file, if the Operator deployed from the Operator Hub. ([#1605](https://github.com/dell/csm/issues/1605)) 97 | - CSM Operator not deleting the deployment and daemon sets after deleting the CSM. ([#1604](https://github.com/dell/csm/issues/1604)) 98 | - CSM Operator Crashing. ([#1603](https://github.com/dell/csm/issues/1603)) 99 | - "make install" command is failing for csm-operator. ([#1601](https://github.com/dell/csm/issues/1601)) 100 | - Operator e2e scenario for powerscale driver with second set of alternate values is failing in OpenShift cluster. ([#1600](https://github.com/dell/csm/issues/1600)) 101 | - Documentation for iSCSI and FC multipathing for PowerStore. ([#1595](https://github.com/dell/csm/issues/1595)) 102 | - Remove extra fields from the driver specs when using minimal sample. ([#1594](https://github.com/dell/csm/issues/1594)) 103 | - Update the cert-manager version in Powermax Prerequisite. ([#1593](https://github.com/dell/csm/issues/1593)) 104 | - Operator e2e scenario for powerflex driver with second set of alternate values is failing in OpenShift cluster. ([#1591](https://github.com/dell/csm/issues/1591)) 105 | - Automation for reverseproxy tls secret and powermax-array-config does not present in E2E. ([#1589](https://github.com/dell/csm/issues/1589)) 106 | - Steps for Upgrading Drivers with Dell CSM Operator incorrect or confusing. ([#1588](https://github.com/dell/csm/issues/1588)) 107 | - Observability for PowerFlex Creates Too Many Sessions. ([#1587](https://github.com/dell/csm/issues/1587)) 108 | - Snapshot from metro volume restore as non-metro even if metro storage class is chosen. ([#1586](https://github.com/dell/csm/issues/1586)) 109 | - Stale entries in CSI PowerMax Samples of CSM operator. ([#1585](https://github.com/dell/csm/issues/1585)) 110 | - Driver should not be expecting a secret which is not used at all for PowerMax when authorization is enabled. ([#1584](https://github.com/dell/csm/issues/1584)) 111 | - CSI-PowerStore Fails to Apply 'mountOptions' Passed in StorageClass. ([#1582](https://github.com/dell/csm/issues/1582)) 112 | - Offline bundle doesn't include Authorization Server images. ([#1581](https://github.com/dell/csm/issues/1581)) 113 | - Operator offline bundle doesn't prepare registries correctly. ([#1574](https://github.com/dell/csm/issues/1574)) 114 | - Apex Navigator for Kubernetes reference be removed from the documentation. ([#1572](https://github.com/dell/csm/issues/1572)) 115 | - SubjectAltName needs to be updated in the tls.crt. ([#1571](https://github.com/dell/csm/issues/1571)) 116 | - Stale entries in CSM operator samples and helm-charts for PowerMax. ([#1570](https://github.com/dell/csm/issues/1570)) 117 | - Unused variable "X_CSI_POWERMAX_ENDPOINT" resulting in driver not to start in PowerMax. ([#1569](https://github.com/dell/csm/issues/1569)) 118 | - Examples provided in the secrets of install driver for the Primary Unisphere and Back up Unisphere is lacking clarity in ConfigMap. ([#1568](https://github.com/dell/csm/issues/1568)) 119 | - Mode is mentioned incorrectly in the configMap of PowerMax even when it is deployed as a sidecar. ([#1567](https://github.com/dell/csm/issues/1567)) 120 | - Inconsistent naming convention of secret is misleading in Installation of PowerMax. ([#1566](https://github.com/dell/csm/issues/1566)) 121 | - Documentation for PowerFlex nasName states it is not a required field. ([#1562](https://github.com/dell/csm/issues/1562)) 122 | - Prerequisite of multiple secrets which is not necessary with the same cert and key. ([#1557](https://github.com/dell/csm/issues/1557)) 123 | - Issue with CSM replication and unable to choose the target cluster certificate. ([#1535](https://github.com/dell/csm/issues/1535)) 124 | - snapshot restore failed with Message = failed to get acl entries: Too many links. ([#1514](https://github.com/dell/csm/issues/1514)) 125 | - cert-csi documentation clarity. ([#1503](https://github.com/dell/csm/issues/1503)) 126 | - Documentation should remove references to CentOS. ([#1467](https://github.com/dell/csm/issues/1467)) 127 | - The NVMeCommand constant needs to use full path. ([#1549](https://github.com/dell/csm/issues/1549)) 128 | -------------------------------------------------------------------------------- /CHANGELOG/CHANGELOG-1.2.0.md: -------------------------------------------------------------------------------- 1 | - [v1.2.1](#v121) 2 | - [Changelog since v1.2.0](#changelog-since-v120) 3 | - [Changes by Kind](#changes-by-kind) 4 | - [Bug Fixes](#bug-fixes) 5 | - [v1.2.0](#v120) 6 | - [Changelog since v1.1.0](#changelog-since-v110) 7 | - [Changes by Kind](#changes-by-kind-1) 8 | - [Deprecation](#deprecation) 9 | - [Features](#features) 10 | - [Bug Fixes](#bug-fixes-1) 11 | 12 | # v1.2.1 13 | 14 | ## Changelog since v1.2.0 15 | 16 | ### Changes by Kind 17 | 18 | #### Bug Fixes 19 | 20 | - VGS fails to delete all snaps after a group is deleted. ([#292](https://github.com/dell/csm/issues/292)) 21 | - PowerStore Grafana dashboard does not populate correctly. ([#279](https://github.com/dell/csm/issues/279)) 22 | - Grafana installation script - Prometheus address is incorrect. ([#278](https://github.com/dell/csm/issues/278)) 23 | - Observability data values are incorrect. ([#288](https://github.com/dell/csm/issues/288)) 24 | 25 | # v1.2.0 26 | 27 | ## Changelog since v1.1.0 28 | 29 | ### Changes by Kind 30 | 31 | #### Deprecation 32 | 33 | - A deprecation note has been added to the [documentation](https://dell.github.io/csm-docs/docs/deployment/csminstaller/) for the CSM Installer, which will be removed in CSM v1.4.0. 34 | 35 | #### Features 36 | 37 | - Support creation of volumes from snapshot with both having different isiPath. ([#227](https://github.com/dell/csm/issues/227)) 38 | - CSM Resiliency test enhancements for node affinity. ([#225](https://github.com/dell/csm/issues/225)) 39 | - NFSv4 POSIX and ACL support in Dell CSI driver for PowerStore. ([#191](https://github.com/dell/csm/issues/191)) 40 | - Update to the latest UBIM image for CSM. ([#183](https://github.com/dell/csm/issues/183)) 41 | - Update to the latest Kubernetes CSI Sidecar Container versions for Dell CSI drivers . ([#182](https://github.com/dell/csm/issues/182)) 42 | - Add support for new access modes in CSI Spec 1.5 for PowerMax. ([#175](https://github.com/dell/csm/issues/175)) 43 | - Add support for Volume Health Monitoring for PowerMax. ([#174](https://github.com/dell/csm/issues/174)) 44 | - Add FSGroupPolicy Support in Dell CSI Drivers for PowerScale and PowerStore. ([#167](https://github.com/dell/csm/issues/167)) 45 | - CSM Resiliency enhancement to consider pod affinity. ([#165](https://github.com/dell/csm/issues/165)) 46 | - Dell CSI Operator Enhancements. ([#161](https://github.com/dell/csm/issues/161)) 47 | - New CSM Operator supports PowerScale and Authorization. ([#159](https://github.com/dell/csm/issues/159)) 48 | - NVMeoF - TCP for PowerStore. ([#158](https://github.com/dell/csm/issues/158)) 49 | - CSM Observability supports upgrade by install script. ([#151](https://github.com/dell/csm/issues/151)) 50 | - Update Go version to 1.17 for CSM (across all CSI drivers and modules). ([#149](https://github.com/dell/csm/issues/149)) 51 | - Add support for both session-based authentication and basic authentication in CSI-PowerScale. ([#139](https://github.com/dell/csm/issues/139)) 52 | - Add support for Kubernetes 1.23. ([#136](https://github.com/dell/csm/issues/136)) 53 | - CSM 1.2 Release Specific Changes. ([#128](https://github.com/dell/csm/issues/128)) 54 | - CSM Replication Support For PowerScale. ([#116](https://github.com/dell/csm/issues/116)) 55 | - Remove CSM for Authorization Sidecar injection in favor of Helm chart deployment. ([#112](https://github.com/dell/csm/issues/112)) 56 | - Standalone Helm install for the CSI Unity driver. ([#92](https://github.com/dell/csm/issues/92)) 57 | - CSM Resiliency supports evacuation of pods during NoExecute taint on node. ([#87](https://github.com/dell/csm/issues/87)) 58 | 59 | #### Bug Fixes 60 | 61 | - Dependabot alerts on CSI drivers. ([#178](https://github.com/dell/csm/issues/178)) 62 | - Remove trivy scan from build to avoid podman build failures. ([#224](https://github.com/dell/csm/issues/224)) 63 | - Removing dirty bit flag from CSI PowerMax 2.2.0 image. ([#222](https://github.com/dell/csm/issues/222)) 64 | - Incorrect path for privatemount directory for unity NFS. ([#219](https://github.com/dell/csm/issues/219)) 65 | - Documentation in values.yaml related to toleration for running on master node is incorrect - CSI driver for Unity-XT. ([#216](https://github.com/dell/csm/issues/216)) 66 | - Volume Health Monitoring section is missing under driver install using Operator. ([#212](https://github.com/dell/csm/issues/212)) 67 | - error while creating RO volume from snapshot with different isiPaths. ([#211](https://github.com/dell/csm/issues/211)) 68 | - CSI Specification in documentation causes confusion for some users. ([#210](https://github.com/dell/csm/issues/210)) 69 | - Leader election timeout flags are not present in operator but present in helm for CSI-Powerscale. ([#209](https://github.com/dell/csm/issues/209)) 70 | - Tenant deletion should cancel tenant revokation. ([#208](https://github.com/dell/csm/issues/208)) 71 | - CSI request and response ID's are not logged in the driver. ([#206](https://github.com/dell/csm/issues/206)) 72 | - CSM authorization / PowerMax / Misleading 401 error on quota violation. ([#205](https://github.com/dell/csm/issues/205)) 73 | - Couldn't fence volumes. ([#199](https://github.com/dell/csm/issues/199)) 74 | - Scaled down pod and got files from a different volume - Intermittent. ([#198](https://github.com/dell/csm/issues/198)) 75 | - Improve deployment documentation for CSM Authorization. ([#197](https://github.com/dell/csm/issues/197)) 76 | - Fix the perf issue related to fqdn resolution during export update with clients on isilon. ([#190](https://github.com/dell/csm/issues/190)) 77 | - CSI-PowerFlex logs do not contain CSI request IDs on the Request and Response lines. ([#189](https://github.com/dell/csm/issues/189)) 78 | - CSM Observability helm charts: Make app.kubernetes.io/name and name consistent. ([#186](https://github.com/dell/csm/issues/186)) 79 | - CSI-provisioner container panic issue. ([#180](https://github.com/dell/csm/issues/180)) 80 | - Go Mod tidy issues while building the image. ([#172](https://github.com/dell/csm/issues/172)) 81 | - Gosec for PowerMax is reporting failure. ([#170](https://github.com/dell/csm/issues/170)) 82 | - Verification of secrets repeated twice while installation of driver via helm. ([#168](https://github.com/dell/csm/issues/168)) 83 | - CSM Observability documentation is complicated and causing confusion. ([#163](https://github.com/dell/csm/issues/163)) 84 | - Documentation has references to using the CSM Installer as recommended method. ([#154](https://github.com/dell/csm/issues/154)) 85 | - Unity CSI node driver reports "invalid memory address or nil pointer dereference". ([#152](https://github.com/dell/csm/issues/152)) 86 | - Force delete of pod kicks in late (pod in terminating state for a while). ([#148](https://github.com/dell/csm/issues/148)) 87 | - CSM Authorization sidecar install fails if k8s worker nodes are not in ~/.ssh/known_hosts. ([#147](https://github.com/dell/csm/issues/147)) 88 | - Container is terminated but Pod is stuck in terminating. ([#146](https://github.com/dell/csm/issues/146)) 89 | - Dell CSI Operator listed two times after upgrade (1.2.0 + 1.5.0). ([#144](https://github.com/dell/csm/issues/144)) 90 | - Failing to create replicated volumes with Integration tests. ([#143](https://github.com/dell/csm/issues/143)) 91 | - CSI-PowerScale installation fails when reverse DNS lookup is unavailable. ([#142](https://github.com/dell/csm/issues/142)) 92 | - Integration tests for replication is failing with Unsupported replication type. ([#138](https://github.com/dell/csm/issues/138)) 93 | - Issues while using PowerFlex secret for Observability. ([#137](https://github.com/dell/csm/issues/137)) 94 | - Replication Metro mode is not supported. ([#135](https://github.com/dell/csm/issues/135)) 95 | - Documentation improvement recommendations for PowerScale. ([#127](https://github.com/dell/csm/issues/127)) 96 | - Driver logs show dirty tag in version. ([#126](https://github.com/dell/csm/issues/126)) 97 | - Unit test for csm-metrics-powerstore fails periodically. ([#113](https://github.com/dell/csm/issues/113)) 98 | 99 | #### Known Issues 100 | 101 | - CSM Resiliency: Occasional failure unmounting Unity volume for raw block devices via iSCSI ([#237](https://github.com/dell/csm/issues/237)) 102 | -------------------------------------------------------------------------------- /CHANGELOG/CHANGELOG-1.3.0.md: -------------------------------------------------------------------------------- 1 | - [v1.3.1](#v131) 2 | - [Changelog since v1.3.0](#changelog-since-v130) 3 | - [Known Issues](#known-issues) 4 | - [PowerScale Replication: Incorrect quota set on the target PV/directory when Quota enabled](#powerscale-replication-incorrect-quota-set-on-the-target-pvdirectory-when-quota-is-enabled) 5 | - [Changes by Kind](#changes-by-kind) 6 | - [Deprecation](#deprecation) 7 | - [Features](#features) 8 | - [Bugs](#bugs) 9 | 10 | - [v1.3.0](#v130) 11 | - [Changelog since v1.2.1](#changelog-since-v121) 12 | - [Known Issues](#known-issues-1) 13 | - [PowerScale Replication: Incorrect quota set on the target PV/directory when Quota enabled](#powerscale-replication-incorrect-quota-set-on-the-target-pvdirectory-when-quota-is-enabled-1) 14 | - [Changes by Kind](#changes-by-kind-1) 15 | - [Deprecation](#deprecation-1) 16 | - [Features](#features-1) 17 | - [Bugs](#bugs-1) 18 | 19 | # v1.3.1 20 | 21 | ## Changelog since v1.3.0 22 | 23 | ## Known Issues 24 | 25 | ### PowerScale Replication: Incorrect quota set on the target PV/directory when Quota is enabled 26 | 27 | QuotaScan is not happening correctly causing the SYNCIQ job to fail which is required to create the target PV successfully. In addition, the quota limit size is not being correctly set on the target directories during replication. If a failover is performed in this state, application workloads will encounter an error writing data to the new source volumes (former targets). 28 | 29 | ### Changes by Kind 30 | 31 | #### Deprecation 32 | 33 | - A deprecation note has been added to the [documentation](https://dell.github.io/csm-docs/docs/deployment/csminstaller/) for the CSM Installer, which will be removed in CSM v1.4.0. 34 | 35 | #### Features 36 | 37 | - Concurrency enhancements for replicated volumes. ([#550](https://github.com/dell/csm/issues/550)) 38 | - Support Volume Expansion of protected PVC with v2.3 driver. ([#553](https://github.com/dell/csm/issues/553)) 39 | - Release activities for CSM 1.3.1. ([#590](https://github.com/dell/csm/issues/590)) 40 | 41 | #### Bugs 42 | 43 | - Volume Attach failed on Node, WWN mismatch. ([#548](https://github.com/dell/csm/issues/548)) 44 | 45 | # v1.3.0 46 | 47 | ## Changelog since v1.2.1 48 | 49 | ## Known Issues 50 | 51 | ### PowerScale Replication: Incorrect quota set on the target PV/directory when Quota is enabled 52 | 53 | QuotaScan is not happening correctly causing the SYNCIQ job to fail which is required to create the target PV successfully. In addition, the quota limit size is not being correctly set on the target directories during replication. If a failover is performed in this state, application workloads will encounter an error writing data to the new source volumes (former targets). 54 | 55 | ### Changes by Kind 56 | 57 | #### Deprecation 58 | 59 | - A deprecation note has been added to the [documentation](https://dell.github.io/csm-docs/docs/deployment/csminstaller/) for the CSM Installer, which will be removed in CSM v1.4.0. 60 | 61 | #### Features 62 | 63 | - CSM Replication support in CSM Operator. ([#270](https://github.com/dell/csm/issues/270)) 64 | - CSM Authorization can deployed with Helm. ([#261](https://github.com/dell/csm/issues/261)) 65 | - Update Go version to 1.18 for CSM. ([#257](https://github.com/dell/csm/issues/257)) 66 | - PowerFlex fsGroup policy support for persistent and CSI Ephemeral volumes. ([#256](https://github.com/dell/csm/issues/256)) 67 | - CSM Operator supports PowerScale 2.3. ([#255](https://github.com/dell/csm/issues/255)) 68 | - Support for upgrading the CSM Operator and additional enhancements. ([#254](https://github.com/dell/csm/issues/254)) 69 | - CSM 1.3 Release Specific Changes. ([#243](https://github.com/dell/csm/issues/243)) 70 | - Provide ability to configure multiple Namespaces in a single SRDF Metro RDF group. ([#303](https://github.com/dell/csm/issues/303)) 71 | - Enhanced topology control for PowerMax. ([#293](https://github.com/dell/csm/issues/293)) 72 | - PowerStore configurable volume attributes. ([#291](https://github.com/dell/csm/issues/291)) 73 | - Kubernetes Metadata Enhancement. ([#289](https://github.com/dell/csm/issues/289)) 74 | - Add FSGroupPolicy Support in Dell CSI Drivers for PowerMax. ([#285](https://github.com/dell/csm/issues/285)) 75 | - Volume to namespace mapping on array for PowerMax. ([#272](https://github.com/dell/csm/issues/272)) 76 | - Support for volume group snapshots for PowerStore. ([#268](https://github.com/dell/csm/issues/268)) 77 | - Volume Replication Type Upgrade/Downgrade for PowerMax. ([#266](https://github.com/dell/csm/issues/266)) 78 | - Common Components for Upgrade/Downgrade volume replication type on CSI provisioned LUN. ([#265](https://github.com/dell/csm/issues/265)) 79 | - CSI Driver for PowerScale to allow a Path limit greater than current 128 characters. ([#263](https://github.com/dell/csm/issues/263)) 80 | - Add CSM Resiliency support for PowerScale. ([#262](https://github.com/dell/csm/issues/262)) 81 | - NVMeoF - FC for PowerStore. ([#260](https://github.com/dell/csm/issues/260)) 82 | - Standalone Helm install for the CSI driver for PowerMax. ([#246](https://github.com/dell/csm/issues/246)) 83 | - Removing Beta Snapshot sample files. ([#239](https://github.com/dell/csm/issues/239)) 84 | - Add support for latest PowerStore array. ([#176](https://github.com/dell/csm/issues/176)) 85 | - Monitor CSI Driver node pods failure in CSM for Resiliency so that pods are not scheduled on that node. ([#145](https://github.com/dell/csm/issues/145)) 86 | 87 | #### Bugs 88 | 89 | - Default nodeSelector/tolerations are not working on k8 1.24 master nodes. ([#319](https://github.com/dell/csm/issues/319)) 90 | - Authorization doesn't provide a CLI to list RoleBindings. ([#314](https://github.com/dell/csm/issues/314)) 91 | - Verify script is considering OpenShift 4.10 as 4.1. ([#305](https://github.com/dell/csm/issues/305)) 92 | - PowerMax: Host group creation is failing for iSCSI configuration. ([#335](https://github.com/dell/csm/issues/335)) 93 | - CSI Migrator: VolumeDelete never executes for remote volumes. ([#332](https://github.com/dell/csm/issues/332)) 94 | - DiscoverTargets is failing for PowerMax. ([#330](https://github.com/dell/csm/issues/330)) 95 | - Expansion of Replicated volume is not supported in CSI-PowerMax. ([#327](https://github.com/dell/csm/issues/327)) 96 | - Driver installation throws error with node topology control enabled for Powermax. ([#326](https://github.com/dell/csm/issues/326)) 97 | - Resiliency Integration test fails multiple drivers installed on the same cluster.. ([#325](https://github.com/dell/csm/issues/325)) 98 | - Offline bundle for helm based install is not working. ([#324](https://github.com/dell/csm/issues/324)) 99 | - Resolve dependabot alerts. ([#323](https://github.com/dell/csm/issues/323)) 100 | - Update the branch from master to main in readme for license. ([#320](https://github.com/dell/csm/issues/320)) 101 | - Running re-protect on source side puts RG into UNKNOWN state. ([#308](https://github.com/dell/csm/issues/308)) 102 | - Retention policy case sensitive and PowerScale RG deletion. ([#307](https://github.com/dell/csm/issues/307)) 103 | - Panic occurs in csi-replicator sidecar. ([#306](https://github.com/dell/csm/issues/306)) 104 | - CSI driver for Unity StagingTargetPath exceeds size limit for ISCSI PVC. ([#304](https://github.com/dell/csm/issues/304)) 105 | - PowerMax: Node pod failed to start when topology control is disabled. ([#300](https://github.com/dell/csm/issues/300)) 106 | - PowerStore is not updated with CSI spec it is supporting. ([#295](https://github.com/dell/csm/issues/295)) 107 | - Display the correct link state for Empty RG's. ([#286](https://github.com/dell/csm/issues/286)) 108 | - CSI Driver for Unity documentation prerequisites should include the same FC and multipath prerequisite steps as found in the PowerStore and PowerMax documentation. ([#284](https://github.com/dell/csm/issues/284)) 109 | - Annotation to set the default SC is not beta anymore. ([#281](https://github.com/dell/csm/issues/281)) 110 | - New nodes are not recognised by csi-unity driver and Pod NFS mount fails v2.2.0. ([#275](https://github.com/dell/csm/issues/275)) 111 | - CODEOWNERS file is missing for https://github.com/dell/csi-powermax. ([#273](https://github.com/dell/csm/issues/273)) 112 | - PowerStore CSI appears to look for iSCSI when FC only is being used. ([#252](https://github.com/dell/csm/issues/252)) 113 | - CSI reverse proxy logs always display '\n'. ([#251](https://github.com/dell/csm/issues/251)) 114 | - Driver installation fails on K8 versions > 1.23.0 using helm. ([#247](https://github.com/dell/csm/issues/247)) 115 | - Ext4 filesystem is consuming extra reserved space from the total available size. ([#245](https://github.com/dell/csm/issues/245)) 116 | - Resiliency: Occasional failure unmounting Unity volume for raw block devices via iSCSI. ([#237](https://github.com/dell/csm/issues/237)) 117 | - CSM Authorization proxy server install fails due to missing container-selinux ([#313](https://github.com/dell/csm/issues/313)) 118 | - Permissions on CSM Authorization karavictl and k3s binaries are incorrect ([#277](https://github.com/dell/csm/issues/277)) 119 | - CSM Authorization OPA policies fail if there are hosts or DNS entries for "localhost" that don't resolve to 127.0.0.1 ([#321](https://github.com/dell/csm/issues/321)) 120 | -------------------------------------------------------------------------------- /CHANGELOG/CHANGELOG-1.4.0.md: -------------------------------------------------------------------------------- 1 | - [v1.4.0](#v140) 2 | - [Changelog since v1.3.1](#changelog-since-v131) 3 | - [Known Issues](#known-issues) 4 | - [PowerScale Replication: Incorrect quota set on the target PV/directory when Quota enabled](#powerscale-replication-incorrect-quota-set-on-the-target-pvdirectory-when-quota-is-enabled) 5 | - [Changes by Kind](#changes-by-kind) 6 | - [Features](#features) 7 | - [Bugs](#bugs) 8 | 9 | # v1.4.0 10 | 11 | ## Changelog since v1.3.1 12 | 13 | ## Known Issues 14 | 15 | ### PowerScale Replication: Incorrect quota set on the target PV/directory when Quota is enabled 16 | 17 | QuotaScan is not happening correctly causing the SYNCIQ job to fail which is required to create the target PV successfully. In addition, the quota limit size is not being correctly set on the target directories during replication. If a failover is performed in this state, application workloads will encounter an error writing data to the new source volumes (former targets). 18 | 19 | ## Changes by Kind 20 | 21 | ### Features 22 | 23 | - Documentation enhancements. ([#357](https://github.com/dell/csm/issues/357)) 24 | - CSM 1.4 Release specific changes. ([#350](https://github.com/dell/csm/issues/350)) 25 | - Update Dell CSI Driver storage class sample files to include note regarding defaultFSType value. ([#242](https://github.com/dell/csm/issues/242)) 26 | - Update deprecated StorageClass parameter `fsType` with `csi.storage.k8s.io/fstype`. ([#188](https://github.com/dell/csm/issues/188)) 27 | - Update Container Storage Module images to use the latest UBI/UBI Minimal images. ([#465](https://github.com/dell/csm/issues/465)) 28 | - Upgrade the OpenTelemetry Collector for CSM Observability. ([#454](https://github.com/dell/csm/issues/454)) 29 | - Set PV/PVC's namespace when using Observability Module. ([#453](https://github.com/dell/csm/issues/453)) 30 | - Support PowerScale in CSM Observability. ([#452](https://github.com/dell/csm/issues/452)) 31 | - Tech preview for Application Mobility. ([#449](https://github.com/dell/csm/issues/449)) 32 | - Tech preview for container volume Encryption. ([#437](https://github.com/dell/csm/issues/437)) 33 | - PowerPath support for CSI PowerMax. ([#436](https://github.com/dell/csm/issues/436)) 34 | - Add installationID in csidriver annotation for PowerFlex CSI. ([#434](https://github.com/dell/csm/issues/434)) 35 | - Juniper support for Powermax. ([#389](https://github.com/dell/csm/issues/389)) 36 | - Security improvements for gofsutil. ([#375](https://github.com/dell/csm/issues/375)) 37 | - CSM Authorization insecure related entities are renamed to skipCertificateValidation. ([#368](https://github.com/dell/csm/issues/368)) 38 | - CSI driver for PowerStore handles small requests for filesystems <3GB. ([#365](https://github.com/dell/csm/issues/365)) 39 | - Support PowerStore iSCSI volumes with VMware TKG. ([#363](https://github.com/dell/csm/issues/363)) 40 | - CSI-Powerscale to add client to only root clients when RO volume created from snapshot and RootClientEnabled. ([#362](https://github.com/dell/csm/issues/362)) 41 | - Add support for FsGroupPolicy in Unity XT driver. ([#361](https://github.com/dell/csm/issues/361)) 42 | - Standalone helm chart for csi-powerstore. ([#355](https://github.com/dell/csm/issues/355)) 43 | 44 | ### Bugs 45 | 46 | - Authorization: Failing to install k3s in the RPM deployment. ([#461](https://github.com/dell/csm/issues/461)) 47 | - Discrepancy in auto srdf when creating volumes in multiple namespace. ([#440](https://github.com/dell/csm/issues/440)) 48 | - The offline installer didn't pull the driver image due to incorrect tag (2.3.0 <> v2.3.0).. ([#435](https://github.com/dell/csm/issues/435)) 49 | - Observability Topology: nil pointer error. ([#430](https://github.com/dell/csm/issues/430)) 50 | - PowerMax : Failed to find srdf group number for remote volume. ([#420](https://github.com/dell/csm/issues/420)) 51 | - PowerScale volumes unable to be created with Helm deployment of CSM Authorization. ([#419](https://github.com/dell/csm/issues/419)) 52 | - Filesystem is not deleted from PowerStore albeit the reclaimPolicy is set to delete when externalAccess is enabled. ([#418](https://github.com/dell/csm/issues/418)) 53 | - Authorization CLI documentation does not mention --array-insecure flag when creating or updating storage systems. ([#416](https://github.com/dell/csm/issues/416)) 54 | - Authorization: Add documentation for backing up and restoring redis data. ([#410](https://github.com/dell/csm/issues/410)) 55 | - CSM Authorization doesn't recognize storage with capital letters. ([#398](https://github.com/dell/csm/issues/398)) 56 | - Update Authorization documentation with supported versions of k3s-selinux and container-selinux packages. ([#393](https://github.com/dell/csm/issues/393)) 57 | - Using Authorization without dependency on jq. ([#390](https://github.com/dell/csm/issues/390)) 58 | - CSI-PowerMax: Expanded size is not reflecting inside the container for File system volumes. ([#386](https://github.com/dell/csm/issues/386)) 59 | - Authorization Documentation Improvement. ([#384](https://github.com/dell/csm/issues/384)) 60 | - Unit test failing for csm-authorization. ([#382](https://github.com/dell/csm/issues/382)) 61 | - PowerMax: Volume expansion is not working for FS volume. ([#378](https://github.com/dell/csm/issues/378)) 62 | - Karavictl has incorrect permissions after download. ([#360](https://github.com/dell/csm/issues/360)) 63 | - Helm deployment of Authorization denies a valid request path from csi-powerflex. ([#353](https://github.com/dell/csm/issues/353)) 64 | -------------------------------------------------------------------------------- /CHANGELOG/CHANGELOG-1.5.0.md: -------------------------------------------------------------------------------- 1 | - [v1.5.1](#v151) 2 | - [Changelog since v1.5.0](#changelog-since-v150) 3 | - [Known Issues](#known-issues) 4 | - [PowerScale Replication: Incorrect quota set on the target PV/directory when Quota enabled](#powerscale-replication-incorrect-quota-set-on-the-target-pvdirectory-when-quota-is-enabled) 5 | - [Changes by Kind](#changes-by-kind) 6 | - [Bug Fixes](#bug-fixes) 7 | - [v1.5.0](#v150) 8 | - [Changelog since v1.4.0](#changelog-since-v140) 9 | - [Known Issues](#known-issues-1) 10 | - [PowerScale Replication: Incorrect quota set on the target PV/directory when Quota enabled](#powerscale-replication-incorrect-quota-set-on-the-target-pvdirectory-when-quota-is-enabled-1) 11 | - [Changes by Kind](#changes-by-kind-1) 12 | - [Features](#features) 13 | - [Bug Fixes](#bug-fixes-1) 14 | 15 | # v1.5.1 16 | 17 | ## Changelog since v1.5.0 18 | 19 | ## Known Issues 20 | 21 | ### PowerScale Replication: Incorrect quota set on the target PV/directory when Quota is enabled 22 | 23 | QuotaScan is not happening correctly causing the SYNCIQ job to fail which is required to create the target PV successfully. In addition, the quota limit size is not being correctly set on the target directories during replication. If a failover is performed in this state, application workloads will encounter an error writing data to the new source volumes (former targets). 24 | 25 | ## Changes by Kind 26 | 27 | ### Features 28 | 29 | - API to print a table of the container images. ([#673](https://github.com/dell/csm/issues/673)) 30 | - CSM 1.5.1 release specific changes. ([#582](https://github.com/dell/csm/issues/582)) 31 | - Show volumes associated with the tenant from the k8s server. ([#408](https://github.com/dell/csm/issues/408)) 32 | 33 | ### Bugs 34 | 35 | - PowerStore CSI driver v2.2 shows "failed to delete mount path" with "device or resource busy". ([#666](https://github.com/dell/csm/issues/666)) 36 | - Documentation - PowerStore Update Driver from v2.4 to v2.5 using Helm docs has wrong file name. ([#643](https://github.com/dell/csm/issues/643)) 37 | - CSM Authorization installation fails due to a PATH not looking in /usr/local/bin. ([#580](https://github.com/dell/csm/issues/580)) 38 | 39 | # v1.5.0 40 | 41 | ## Changelog since v1.4.0 42 | 43 | ## Known Issues 44 | 45 | ### PowerScale Replication: Incorrect quota set on the target PV/directory when Quota is enabled 46 | 47 | QuotaScan is not happening correctly causing the SYNCIQ job to fail which is required to create the target PV successfully. In addition, the quota limit size is not being correctly set on the target directories during replication. If a failover is performed in this state, application workloads will encounter an error writing data to the new source volumes (former targets). 48 | 49 | ## Changes by Kind 50 | 51 | ### Features 52 | 53 | - CSM 1.5 release specific changes. ([#491](https://github.com/dell/csm/issues/491)) 54 | - gopowermax support for Terraform PowerMax provider. ([#441](https://github.com/dell/csm/issues/441)) 55 | - Automated deployment of SDCs for PowerFlex on RHEL. ([#554](https://github.com/dell/csm/issues/554)) 56 | - Scheduled Backups for Application Mobility. ([#551](https://github.com/dell/csm/issues/551)) 57 | - Update to the latest UBI/UBI Minimal images for CSM. ([#545](https://github.com/dell/csm/issues/545)) 58 | - SLES SP4 Support for CSI PowerFlex driver in CSM. ([#539](https://github.com/dell/csm/issues/539)) 59 | - CSI-PowerScale: Add an option to the CSI driver force the client list to be updated even if there are unresolvable host. ([#534](https://github.com/dell/csm/issues/534)) 60 | - CSM PowerFlex : QoS parameters for throttling performance and bandwidth of a CSI driver. ([#533](https://github.com/dell/csm/issues/533)) 61 | - FC connectivity with virtualized environment. ([#528](https://github.com/dell/csm/issues/528)) 62 | - gopowerstore support for Terraform PowerStore provider. ([#520](https://github.com/dell/csm/issues/520)) 63 | - CSM Operator Supports Install of Authorization Proxy Server. ([#511](https://github.com/dell/csm/issues/511)) 64 | - PowerFlex Read Only Block support. ([#509](https://github.com/dell/csm/issues/509)) 65 | - CSI-PowerScale: Add support for Standalone Helm charts. ([#506](https://github.com/dell/csm/issues/506)) 66 | - CSI Powermax Reverseproxy Mandate. ([#495](https://github.com/dell/csm/issues/495)) 67 | - Standardize csi drivers helm installation. ([#494](https://github.com/dell/csm/issues/494)) 68 | - Ignore volumeless pods with Resiliency label. ([#493](https://github.com/dell/csm/issues/493)) 69 | - CSM Operator: Support install of Observability. ([#488](https://github.com/dell/csm/issues/488)) 70 | - Support storage capacity tracking in CSI PowerStore driver. ([#483](https://github.com/dell/csm/issues/483)) 71 | - Add support for OE 3.2 in CSI PowerStore. ([#482](https://github.com/dell/csm/issues/482)) 72 | - CSM support for Openshift 4.11. ([#480](https://github.com/dell/csm/issues/480)) 73 | - CSM support for Kubernetes 1.25. ([#478](https://github.com/dell/csm/issues/478)) 74 | - CSM Operator support to include CSI PowerFlex driver. ([#477](https://github.com/dell/csm/issues/477)) 75 | - CSM support for PowerFlex 4.0. ([#476](https://github.com/dell/csm/issues/476)) 76 | - Include k3s-selinux package as part of CSM Authorization RPM install. ([#409](https://github.com/dell/csm/issues/409)) 77 | - Qualify SELinux enablement. ([#394](https://github.com/dell/csm/issues/394)) 78 | 79 | ### Bugs 80 | 81 | - Remove csireverseproxy check in template. ([#570](https://github.com/dell/csm/issues/570)) 82 | - Unmount is failing during node unpublish/unstage calls and volumes are not removed. ([#562](https://github.com/dell/csm/issues/562)) 83 | - Deleting metro volume is failing. ([#561](https://github.com/dell/csm/issues/561)) 84 | - Verify script is missing latest Openshift version. ([#560](https://github.com/dell/csm/issues/560)) 85 | - Typo in description of controllerCount in values.yaml file. ([#559](https://github.com/dell/csm/issues/559)) 86 | - Verify script is missing latest Openshift version. ([#557](https://github.com/dell/csm/issues/557)) 87 | - Operator : vsphere support for missing on k8 1.21. ([#556](https://github.com/dell/csm/issues/556)) 88 | - Replication : Could not add volume in protected SG. ([#552](https://github.com/dell/csm/issues/552)) 89 | - Skip verify option used during CSI-Powermax driver installation is asking input from the user for verification of Unisphere REST endpoint support. ([#547](https://github.com/dell/csm/issues/547)) 90 | - vSphere : delete volume is not successful. ([#544](https://github.com/dell/csm/issues/544)) 91 | - Node publish is failing with incorrect WWN. ([#542](https://github.com/dell/csm/issues/542)) 92 | - Resolve dependabot reported alerts. ([#540](https://github.com/dell/csm/issues/540)) 93 | - ServiceTag is not set in PV volume attributes. ([#538](https://github.com/dell/csm/issues/538)) 94 | - PowerMax builds are failing with gomodules error. ([#537](https://github.com/dell/csm/issues/537)) 95 | - PowerScale Replication - RESUME doesn't work. ([#535](https://github.com/dell/csm/issues/535)) 96 | - CSM Authorization karavictl role update can't find existing role in helm deployment. ([#530](https://github.com/dell/csm/issues/530)) 97 | - CSI-Powerflex doesn't have correct rbac in the Operator. ([#529](https://github.com/dell/csm/issues/529)) 98 | - Dynamic values for Director ID and Port ID in gopowermax is not available.. ([#525](https://github.com/dell/csm/issues/525)) 99 | - PowerScale Replication - Unplanned failover doesn't work. ([#522](https://github.com/dell/csm/issues/522)) 100 | - Observability - Improve Grafana dashboard. ([#519](https://github.com/dell/csm/issues/519)) 101 | - PowerScale Replication - Source directory disappears after failover. ([#518](https://github.com/dell/csm/issues/518)) 102 | - Known issues are missing in Release Notes documentation for Replication 1.3.0. ([#517](https://github.com/dell/csm/issues/517)) 103 | - PowerScale Replication - mount.nfs: Stale file handle after an unplanned failover. ([#515](https://github.com/dell/csm/issues/515)) 104 | - PowerScale Replication - Replicated PV has the wrong AzServiceIP. ([#514](https://github.com/dell/csm/issues/514)) 105 | - RPM fails to install policies. ([#512](https://github.com/dell/csm/issues/512)) 106 | - PowerScale Replication: Differing IsiPaths between Secret and StorageClass cause failure. ([#508](https://github.com/dell/csm/issues/508)) 107 | - CSI-PowerFlex RO mount doesn't display correct mount option. ([#503](https://github.com/dell/csm/issues/503)) 108 | - ExternalAccess is getting deleted from the PowerStore array when unpublishing the volume. ([#501](https://github.com/dell/csm/issues/501)) 109 | - PowerStore CSI driver NVME TCP connectivity, attach volume successful, mount failed with error: csi_sock: connect: connection refused. ([#496](https://github.com/dell/csm/issues/496)) 110 | - PowerMax Array support is not updated in CSM docs. ([#489](https://github.com/dell/csm/issues/489)) 111 | - Secrets getting regenerated for CSM drivers installed via dell-csi-operator. ([#485](https://github.com/dell/csm/issues/485)) 112 | - CSI-Powerstore: Update the upgrade procedure. ([#484](https://github.com/dell/csm/issues/484)) 113 | - step_error: command not found in karavi-observability-install.sh. ([#479](https://github.com/dell/csm/issues/479)) 114 | - "repctl cluster inject --use-sa" doesn't work for Kubernetes 1.24 and above. ([#463](https://github.com/dell/csm/issues/463)) 115 | - Documentation Update for Character Count Limits of 64. ([#451](https://github.com/dell/csm/issues/451)) 116 | - Broken link in CSM docs. ([#431](https://github.com/dell/csm/issues/431)) 117 | - impossible to install karavi-authorization rpm cause of invalid cross-device link. ([#164](https://github.com/dell/csm/issues/164)) 118 | -------------------------------------------------------------------------------- /CHANGELOG/CHANGELOG-1.6.0.md: -------------------------------------------------------------------------------- 1 | - [v1.6.1](#v161) 2 | - [Changelog since v1.6.0](#changelog-since-v160) 3 | - [Changes by Kind](#changes-by-kind) 4 | - [Bugs](#bugs) 5 | - [v1.6.0](#v160) 6 | - [Changelog since v1.5.1](#changelog-since-v151) 7 | - [Known Issues](#known-issues) 8 | - [PowerScale Replication: Incorrect quota set on the target PV/directory when Quota is enabled](#powerscale-replication-incorrect-quota-set-on-the-target-pvdirectory-when-quota-is-enabled) 9 | - [Changes by Kind](#changes-by-kind-1) 10 | - [Features](#features) 11 | - [Bugs](#bugs-1) 12 | 13 | # v1.6.1 14 | 15 | ## Changelog since v1.6.0 16 | 17 | ## Changes by Kind 18 | 19 | ### Bugs 20 | 21 | - PowerScale Replication: Incorrect quota set on the target PV/directory when Quota is enabled. ([#753](https://github.com/dell/csm/issues/753)) 22 | 23 | # v1.6.0 24 | 25 | ## Changelog since v1.5.1 26 | 27 | ## Known Issues 28 | 29 | ### PowerScale Replication: Incorrect quota set on the target PV/directory when Quota is enabled 30 | 31 | QuotaScan is not happening correctly causing the SYNCIQ job to fail which is required to create the target PV successfully. In addition, the quota limit size is not being correctly set on the target directories during replication. If a failover is performed in this state, application workloads will encounter an error writing data to the new source volumes (former targets). 32 | 33 | ## Changes by Kind 34 | 35 | ### Features 36 | 37 | - To enable backward compatibility for MKE-3.5.x and K8s 1.21. ([#699](https://github.com/dell/csm/issues/699)) 38 | - SLES SP4 Support for CSI Unity XT driver. ([#695](https://github.com/dell/csm/issues/695)) 39 | - MKE 3.6.0 support. ([#672](https://github.com/dell/csm/issues/672)) 40 | - Ubuntu 22.04 qualification for CSI Powerscale. ([#671](https://github.com/dell/csm/issues/671)) 41 | - RKE 1.4.1 support. ([#670](https://github.com/dell/csm/issues/670)) 42 | - CSM Operator: Add install support for CSI PowerStore driver. ([#613](https://github.com/dell/csm/issues/613)) 43 | - CSM support for Kubernetes 1.26. ([#597](https://github.com/dell/csm/issues/597)) 44 | - Add CSM Resiliency support for PowerStore. ([#587](https://github.com/dell/csm/issues/587)) 45 | - CSM 1.6 release specific changes. ([#583](https://github.com/dell/csm/issues/583)) 46 | - PowerFlex preapproved GUIDs. ([#402](https://github.com/dell/csm/issues/402)) 47 | - User friendly name to the PowerFlex. ([#181](https://github.com/dell/csm/issues/181)) 48 | - Cleanup powerpath dead paths. ([#669](https://github.com/dell/csm/issues/669)) 49 | - Update Go version to 1.20 for CSM 1.6. ([#658](https://github.com/dell/csm/issues/658)) 50 | - "access denied by server" while mounting due to NFS refresh on PowerScale. ([#655](https://github.com/dell/csm/issues/655)) 51 | - Support restoring of snapshots of metro volumes. ([#652](https://github.com/dell/csm/issues/652)) 52 | - Volume cloning of Protected PVCs. ([#646](https://github.com/dell/csm/issues/646)) 53 | - Restrict the version of TLS to v1.2 for all requests to CSM authorization proxy server. ([#642](https://github.com/dell/csm/issues/642)) 54 | - Cert-csi - Test suite for validating Dell CSI Drivers. ([#628](https://github.com/dell/csm/issues/628)) 55 | - CSI PowerFlex - Replication Support. ([#618](https://github.com/dell/csm/issues/618)) 56 | - Update to the latest UBI/UBI Minimal images for CSM. ([#612](https://github.com/dell/csm/issues/612)) 57 | - CSI Powermax- Snapshot restore to Metro Volumes. ([#609](https://github.com/dell/csm/issues/609)) 58 | - CSM Installation Wizard support for CSI PowerStore and PowerMax drivers and modules through Helm. ([#591](https://github.com/dell/csm/issues/591)) 59 | - Support APIs for HostGroup in Powermax. ([#588](https://github.com/dell/csm/issues/588)) 60 | - Support PowerMax in CSM Observability. ([#586](https://github.com/dell/csm/issues/586)) 61 | - Consistent Variable Name for RDM/vSphere. ([#584](https://github.com/dell/csm/issues/584)) 62 | - PowerScale replication improvements. ([#573](https://github.com/dell/csm/issues/573)) 63 | - PowerScale Replication: Implement Failback functionality. ([#558](https://github.com/dell/csm/issues/558)) 64 | - PowerScale Replication - Reprotect should NOT be calling allow_write_revert. ([#532](https://github.com/dell/csm/issues/532)) 65 | - Replication APIs to be moved from alpha phase. ([#432](https://github.com/dell/csm/issues/432)) 66 | 67 | ### Bugs 68 | 69 | - gobrick code owner file is containing errors. ([#568](https://github.com/dell/csm/issues/568)) 70 | - Multiple bad links in documentation FAQ page and incorrect statements. ([#715](https://github.com/dell/csm/issues/715)) 71 | - PowerFlex driver deployment via CSM Operator should work without having the user to create ConfigMap. ([#713](https://github.com/dell/csm/issues/713)) 72 | - Migration failed when there are empty MV SG's on source array. ([#705](https://github.com/dell/csm/issues/705)) 73 | - Gopowermax unit test Pipeline fails to run tests. ([#701](https://github.com/dell/csm/issues/701)) 74 | - Broken link in Container Storage Modules / Deployment / CSM Operator / CSM Modules / Replication. ([#693](https://github.com/dell/csm/issues/693)) 75 | - dellctl crashes on a "backup get" when a trailing "/" is added to the namespace. ([#691](https://github.com/dell/csm/issues/691)) 76 | - CSM app-mobility can delete restores but they pop back up after 10 seconds.. ([#690](https://github.com/dell/csm/issues/690)) 77 | - CSI PowerStore: can't find IP in X_CSI_POWERSTORE_EXTERNAL_ACCESS for NFS provisioning. ([#689](https://github.com/dell/csm/issues/689)) 78 | - CSI Powermax fails to create RDF group with free RDF number. ([#688](https://github.com/dell/csm/issues/688)) 79 | - vCenter usersname to be updated in secrets.yaml. ([#686](https://github.com/dell/csm/issues/686)) 80 | - Operator installation instructions for Replication has broken link. ([#685](https://github.com/dell/csm/issues/685)) 81 | - PowerScale Replication: Failback action failing on different environment. ([#677](https://github.com/dell/csm/issues/677)) 82 | - Powerstore Multiple iSCSI network support for CSI driver. ([#668](https://github.com/dell/csm/issues/668)) 83 | - Deletion of target volume is failing with multiple snapshots. ([#667](https://github.com/dell/csm/issues/667)) 84 | - Replication : Creating extra snapshot for idempotent clone operation. ([#657](https://github.com/dell/csm/issues/657)) 85 | - CSM Authorization quota of zero should allow infinite use for PowerFlex and PowerMax. ([#654](https://github.com/dell/csm/issues/654)) 86 | - Update the optional parameters within angular brackets in upgrade operator page. ([#648](https://github.com/dell/csm/issues/648)) 87 | - PowerMax Sample file is wrongly displaying SRDF group auto creation as false. ([#641](https://github.com/dell/csm/issues/641)) 88 | - Observability - Improve Grafana dashboards for PowerFlex/PowerStore. ([#640](https://github.com/dell/csm/issues/640)) 89 | - CSM Authorization CRD in the CSM Operator doesn't read custom configurations. ([#633](https://github.com/dell/csm/issues/633)) 90 | - Powerscale csi driver while connecting smarconnect zone name first letter is getting truncated.. ([#617](https://github.com/dell/csm/issues/617)) 91 | - "repctl cluster inject --use-sa" does not work when Replication is installed through `repctl`. ([#600](https://github.com/dell/csm/issues/600)) 92 | - PowerStore CSI driver 2.5 create volumes successfully but unable to map volumes to hosts on PowerStore. ([#599](https://github.com/dell/csm/issues/599)) 93 | - Delete Snapshot : GetSnapshotInfo() failing with error. ([#593](https://github.com/dell/csm/issues/593)) 94 | - vSphere : Can not create VM host object. ([#592](https://github.com/dell/csm/issues/592)) 95 | - PowerScale Replication: Artifacts are not properly cleaned after deletion. ([#523](https://github.com/dell/csm/issues/523)) 96 | - PVC fails to resize with the message spec.capacity[storage]: Invalid value: "0": must be greater than zero. ([#507](https://github.com/dell/csm/issues/507)) 97 | -------------------------------------------------------------------------------- /CHANGELOG/CHANGELOG-1.7.0.md: -------------------------------------------------------------------------------- 1 | - [v1.7.1](#v171) 2 | - [Changelog since v1.7.0](#changelog-since-v170) 3 | - [Changes by Kind](#changes-by-kind) 4 | - [Features](#features) 5 | 6 | - [v1.7.0](#v170) 7 | - [Changelog since v1.6.1](#changelog-since-v161) 8 | - [Known Issues](#known-issues) 9 | - [CSI Unity XT driver does not verify iSCSI initiators on the array correctly when iSCSI initiator names are not in lowercase](#csi-unity-xt-driver-does-not-verify-iscsi-initiators-on-the-array-correctly-when-iscsi-initiator-names-are-not-in-lowercase) 10 | - [CSI Powerstore driver node pods enter CrashLoopBackOff state and provisioning fails](#csi-powerstore-driver-node-pods-enter-crashloopbackoff-state-and-provisioning-fails) 11 | - [Changes by Kind](#changes-by-kind) 12 | - [Deprecation](#deprecation) 13 | - [Features](#features) 14 | - [Bugs](#bugs) 15 | 16 | # v1.7.1 17 | 18 | ## Changelog since v1.7.0 19 | 20 | ## Changes by Kind 21 | 22 | ### Features 23 | - Build new image of dellemc/csi-vxflexos tagged as v2.7.1 with latest version of Go. ([#911](https://github.com/dell/csm/issues/911)) 24 | 25 | # v1.7.0 26 | 27 | ## Changelog since v1.6.1 28 | 29 | ## Known Issues 30 | 31 | ### CSI Unity XT driver does not verify iSCSI initiators on the array correctly when iSCSI initiator names are not in lowercase 32 | 33 | After any node reboot, the CSI Unity XT driver pod on that rebooted node goes into a failed state as driver fails to find the iSCSI initiator on the array. The work around is to rename host iSCSI initiators to lowercase and reboot the respective worker node. The CSI Unity XT driver pod will spin off successfully. Example: Rename "iqn.2000-11.com.DEMOWORKERNODE01:1a234b56cd78" to "iqn.2000-11.com.demoworkernode01:1a234b56cd78" in lowercase. 34 | 35 | ### CSI Powerstore driver node pods enter CrashLoopBackOff state and provisioning fails 36 | 37 | When driver node pods enter CrashLoopBackOff and PVC remains in pending state with one of the following events: 38 | 1. failed to provision volume with StorageClass ``: error generating accessibility requirements: no available topology found 39 | 2. waiting for a volume to be created, either by external provisioner "csi-powerstore.dellemc.com" or manually created by system administrator. 40 | 41 | The workaround is to check whether all array details present in the secret file are valid and remove any invalid entries if present. Redeploy the driver. 42 | 43 | ## Changes by Kind 44 | 45 | #### Deprecation 46 | 47 | - CSM for PowerMax linked Proxy mode for [CSI reverse proxy is no longer actively maintained or supported](https://dell.github.io/csm-docs/docs/csidriver/release/powermax/). It will be deprecated in CSM 1.9. It is highly recommended that you use stand alone mode going forward. 48 | 49 | ### Features 50 | 51 | - CSI Unity XT: Support Unisphere 5.3.0 array. ([#842](https://github.com/dell/csm/issues/842)) 52 | - Storage Capacity Tracking for Powerscale. ([#824](https://github.com/dell/csm/issues/824)) 53 | - Replication Support for PowerFlex driver in CSM Operator. ([#821](https://github.com/dell/csm/issues/821)) 54 | - Add upgrade support of csi-powerstore driver in CSM-Operator. ([#805](https://github.com/dell/csm/issues/805)) 55 | - Unity CSI quals and cert for K3s on Debian OS. ([#798](https://github.com/dell/csm/issues/798)) 56 | - Validation of authSecret field for Powerstore driver in csm-operator. ([#784](https://github.com/dell/csm/issues/784)) 57 | - Support for 'Terrform Provider for PowerFlex 1.1' in goscaleio.. ([#778](https://github.com/dell/csm/issues/778)) 58 | - CSM Operator: Add install support for CSI Unity XT driver. ([#756](https://github.com/dell/csm/issues/756)) 59 | - CSM 1.7 release specific changes. ([#743](https://github.com/dell/csm/issues/743)) 60 | - Allow user to set Quota limit parameters from the PVC request in CSI PowerScale. ([#742](https://github.com/dell/csm/issues/742)) 61 | - Add Function to Delete SDC and Change Performance Profile. ([#850](https://github.com/dell/csm/issues/850)) 62 | - Update to the latest UBI/UBI Micro images for CSM. ([#843](https://github.com/dell/csm/issues/843)) 63 | - PowerMax Support AWS EKS. ([#825](https://github.com/dell/csm/issues/825)) 64 | - Powermax : Automate creation of reverse proxy certs. ([#819](https://github.com/dell/csm/issues/819)) 65 | - Documentation Enhancement for Replication. ([#818](https://github.com/dell/csm/issues/818)) 66 | - Destroy RCG support in repctl. ([#817](https://github.com/dell/csm/issues/817)) 67 | - Add Support For PowerFlex Gateway Installer Functions. ([#814](https://github.com/dell/csm/issues/814)) 68 | - CSI Powermax - Volumes Not Deleted on Target Array. ([#801](https://github.com/dell/csm/issues/801)) 69 | - CSI-PowerMax - Support to mount Block Read-Only PVC. ([#792](https://github.com/dell/csm/issues/792)) 70 | - CSM Authorization encryption for secrets in K3S. ([#774](https://github.com/dell/csm/issues/774)) 71 | - gopowermax enhancements for PowerMax Terraform provider requirements. ([#770](https://github.com/dell/csm/issues/770)) 72 | - CSM Operator: Adds CSI Powermax support. ([#769](https://github.com/dell/csm/issues/769)) 73 | - CSM support for Kubernetes 1.27. ([#761](https://github.com/dell/csm/issues/761)) 74 | - CSI PowerMax: Support PowerMax v10.0.1. ([#760](https://github.com/dell/csm/issues/760)) 75 | - Deprecation notice to remove linked proxy for PowerMax. ([#757](https://github.com/dell/csm/issues/757)) 76 | - PowerFlex Replication: Volumes Not Deleted on Target Array. ([#754](https://github.com/dell/csm/issues/754)) 77 | - Deprecation of CSI Operator. ([#751](https://github.com/dell/csm/issues/751)) 78 | - Add support for host groups for vSphere environment. ([#746](https://github.com/dell/csm/issues/746)) 79 | - Migrate image registry from k8s.gcr.io to registry.k8s.io. ([#744](https://github.com/dell/csm/issues/744)) 80 | - CSI PowerStore - Add support for PowerStore Medusa (v3.5) array. ([#735](https://github.com/dell/csm/issues/735)) 81 | - CSI PowerMax QoS parameters for throttling performance and bandwidth. ([#726](https://github.com/dell/csm/issues/726)) 82 | - CSM Authorization karavictl requires an admin token. ([#725](https://github.com/dell/csm/issues/725)) 83 | - CSM Installation Wizard support for CSI PowerScale and PowerFlex and Unity drivers and modules through Helm. ([#698](https://github.com/dell/csm/issues/698)) 84 | - CSM Replication: Volumes Not Deleted on Target Array. ([#665](https://github.com/dell/csm/issues/665)) 85 | 86 | ### Bugs 87 | 88 | - Unsupported configurations in support matrix. ([#863](https://github.com/dell/csm/issues/863)) 89 | - CSI-Powerflex offline installation is failing during the driver image pull. ([#868](https://github.com/dell/csm/issues/868)) 90 | - Known Issues in GitHub releases should be in Troubleshooting section of docs. ([#855](https://github.com/dell/csm/issues/855)) 91 | - Fix csm-operator e2e replication and observability tests. ([#853](https://github.com/dell/csm/issues/853)) 92 | - CSM-operator: vSphere host id is missing in node manifest. ([#846](https://github.com/dell/csm/issues/846)) 93 | - CSI-PowerMax Unit test are failing.. ([#844](https://github.com/dell/csm/issues/844)) 94 | - Volume migration from Replication to non-replication is failing. ([#841](https://github.com/dell/csm/issues/841)) 95 | - Health-monitor: NodeGetVolumeStats are throwing error. ([#840](https://github.com/dell/csm/issues/840)) 96 | - CSM-Operator : Reverse proxy is having incorrect version in sample files. ([#838](https://github.com/dell/csm/issues/838)) 97 | - Links are broken in some parts of the Documentation.. ([#836](https://github.com/dell/csm/issues/836)) 98 | - PowerFlex parses comments when constructing MDM key. ([#835](https://github.com/dell/csm/issues/835)) 99 | - Dellctl should populate all the sidecars and images for the latest release. ([#834](https://github.com/dell/csm/issues/834)) 100 | - Standalone binary of cert-csi reports a dependency error. ([#827](https://github.com/dell/csm/issues/827)) 101 | - Authorization should have sample CRD for every supported version in csm-operator. ([#826](https://github.com/dell/csm/issues/826)) 102 | - Storage Capacity Tracking not working in CSI-PowerStore when installed using CSM Operator. ([#823](https://github.com/dell/csm/issues/823)) 103 | - CSM Operator object goes into failed state when deployments are getting scaled down/up. ([#816](https://github.com/dell/csm/issues/816)) 104 | - PowerStore CSM Replication Module installation error. ([#815](https://github.com/dell/csm/issues/815)) 105 | - CHAP is set to true in the CSI-PowerStore sample file in CSI Operator. ([#812](https://github.com/dell/csm/issues/812)) 106 | - CSM Doc improvements for CSI PowerFlex deployment. ([#810](https://github.com/dell/csm/issues/810)) 107 | - Remove busybox from Authorization RPM. ([#809](https://github.com/dell/csm/issues/809)) 108 | - CSI PowerMax attribute name is mismatched. ([#808](https://github.com/dell/csm/issues/808)) 109 | - csm-doc: Update trouble shooting about VM option to resolve mount issue. ([#802](https://github.com/dell/csm/issues/802)) 110 | - Improve CSM Operator Authorization documentation. ([#800](https://github.com/dell/csm/issues/800)) 111 | - Vsphere creds for vsphere secrets is expected when vsphere enable is set to false. ([#799](https://github.com/dell/csm/issues/799)) 112 | - Volume creation is failing with host limits code. ([#797](https://github.com/dell/csm/issues/797)) 113 | - csi-install.sh script for csi-powerstore fails with replication CRD even though replication is disabled. ([#795](https://github.com/dell/csm/issues/795)) 114 | - Operator install doc inconsistent in test-isilon vs isilon namespace. ([#793](https://github.com/dell/csm/issues/793)) 115 | - CSI Driver name. ([#789](https://github.com/dell/csm/issues/789)) 116 | - Replication install using Operator does not work. ([#788](https://github.com/dell/csm/issues/788)) 117 | - CSM Authorization doesn't write the status code on error for csi-powerscale. ([#787](https://github.com/dell/csm/issues/787)) 118 | - Unable to delete application pod when CSI PowerStore is installed using CSM Operator. ([#785](https://github.com/dell/csm/issues/785)) 119 | - PowerScale Replication - Target NFS exports are not deleted even though target directories are deleted. ([#782](https://github.com/dell/csm/issues/782)) 120 | - Update user requirements for CSI Driver for PowerStore. ([#777](https://github.com/dell/csm/issues/777)) 121 | - CSM Operator module unit tests should meet quality criteria. ([#776](https://github.com/dell/csm/issues/776)) 122 | - Authorization RPM installation should use nogpgcheck for k3s-selinux package. ([#772](https://github.com/dell/csm/issues/772)) 123 | - CSM Authorization - karavictl generate token should output valid yaml. ([#767](https://github.com/dell/csm/issues/767)) 124 | - CSI PODMON is tainting the worker node. ([#765](https://github.com/dell/csm/issues/765)) 125 | - Failed to create the dell-replication-init image. ([#758](https://github.com/dell/csm/issues/758)) 126 | - Troubleshooting document is missing iscsi related information for PowerMax. ([#750](https://github.com/dell/csm/issues/750)) 127 | - Error handling required when CopySnapshot fails for CSI PowerScale. ([#749](https://github.com/dell/csm/issues/749)) 128 | - Getting permission denied error when accessing ROX PVC on PoweFlex in OpenShift. ([#745](https://github.com/dell/csm/issues/745)) 129 | - CSI-PowerStore: Unable to run e2e test. ([#741](https://github.com/dell/csm/issues/741)) 130 | - CSM for Resiliency openshift test required to pass ssh options in scp command. ([#737](https://github.com/dell/csm/issues/737)) 131 | - CSM Resiliency GitHub actions produce sporadic failure. ([#733](https://github.com/dell/csm/issues/733)) 132 | - gobrick code owner file is containing errors. ([#568](https://github.com/dell/csm/issues/568)) 133 | -------------------------------------------------------------------------------- /CHANGELOG/CHANGELOG-1.8.0.md: -------------------------------------------------------------------------------- 1 | 2 | - [v1.8.0](#v180) 3 | - [Changelog since v1.7.1](#changelog-since-v171) 4 | - [Known Issues](#known-issues) 5 | - [CSI PowerFlex, CSI PowerStore, CSI Unity XT: Not able to create ephemeral pods in OpenShift 4.13](#csi-powerflex-csi-powerstore-csi-unity-xt-not-able-to-create-ephemeral-pods-in-openshift-413) 6 | - [CSI PowerStore: In OpenShift 4.13, root user is not allowed to perform write operations on NFS shares when root squashing is enabled](#csi-powerstore-in-openshift-413-root-user-is-not-allowed-to-perform-write-operations-on-nfs-shares-when-root-squashing-is-enabled) 7 | - [CSI Drivers: Volume limit for pending PVCs is not obeyed if the volume limit is exhausted and the CSI Driver restarts](#csi-drivers-volume-limit-for-pending-pvcs-is-not-obeyed-if-the-volume-limit-is-exhausted-and-the-csi-driver-restarts) 8 | - [Changes by Kind](#changes-by-kind) 9 | - [Deprecation](#deprecation) 10 | - [Features](#features) 11 | - [Bugs](#bugs) 12 | 13 | 14 | # v1.8.0 15 | 16 | ## Changelog since v1.7.1 17 | 18 | ## Known Issues 19 | 20 | ### CSI PowerFlex, CSI PowerStore, CSI Unity XT: Not able to create ephemeral pods in OpenShift 4.13 21 | 22 | Ephemeral pod is not being created in OpenShift 4.13 and is failing with the error "error when creating pod: the pod uses an inline volume provided by CSIDriver csi-powerstore.dellemc.com, and the namespace has a pod security enforcement level that is lower than privileged." This is seen in CSI PowerFlex, CSI PowerStore and CSI Unity XT drivers. 23 | 24 | This issue occurs because OpenShift 4.13 introduced the CSI Volume Admission plugin to restrict the use of a CSI driver capable of provisioning CSI ephemeral volumes during pod admission (https://docs.openshift.com/container-platform/4.13/storage/container_storage_interface/ephemeral-storage-csi-inline.html). Therefore, an additional label "security.openshift.io/csi-ephemeral-volume-profile" needs to be added to the CSIDriver object to support inline ephemeral volumes. 25 | 26 | ### CSI PowerStore: In OpenShift 4.13, root user is not allowed to perform write operations on NFS shares when root squashing is enabled 27 | 28 | In OpenShift 4.13, the root user is not allowed to perform write operations on NFS shares, when root squashing is enabled. 29 | 30 | The workaround for this issue is to disable root squashing by setting allowRoot: "true" in the NFS storage class. 31 | 32 | ### CSI Drivers: Volume limit for pending PVCs is not obeyed if the volume limit is exhausted and the CSI Driver restarts 33 | 34 | If the volume limit is exhausted and there are pending pods and PVCs due to exceed max volume count, the pending PVCs will be bound to PVs and the pending pods will be scheduled to nodes when the driver pods are restarted. This is seen in CSI PowerFlex, CSI PowerMax, CSI PowerScale, CSI PowerStore and CSI Unity XT drivers. 35 | 36 | It is advised not to have any pending pods or PVCs once the volume limit per node is exhausted on a CSI Driver. There is an open issue reported with kubenetes at https://github.com/kubernetes/kubernetes/issues/95911 with the same behavior. 37 | 38 | ## Changes by Kind 39 | 40 | ### Deprecation 41 | 42 | - The Dell CSI Operator is no longer actively maintained or supported. It will be deprecated in CSM 1.9. It is highly recommended that you use [CSM Operator](https://dell.github.io/csm-docs/docs/deployment/csmoperator/) going forward. 43 | - CSM for PowerMax linked Proxy mode for [CSI reverse proxy is no longer actively maintained or supported](https://dell.github.io/csm-docs/docs/csidriver/release/powermax/). It will be deprecated in CSM 1.9. It is highly recommended that you use stand alone mode going forward. 44 | - The CSM Authorization RPM will be deprecated in a future release. It is highly recommended that you use CSM Authorization Helm deployment or CSM Operator going forward. 45 | ### Features 46 | 47 | - SLES15 SP4 support in csi powerscale. ([#967](https://github.com/dell/csm/issues/967)) 48 | - PowerScale 9.5.0.4 support. ([#950](https://github.com/dell/csm/issues/950)) 49 | - K8s 1.28 support. ([#947](https://github.com/dell/csm/issues/947)) 50 | - Add support for Offline Install of CSM Operator in non OLM environment. ([#939](https://github.com/dell/csm/issues/939)) 51 | - Enhancing Unity XT driver to handle API requests after the sessionIdleTimeOut in STIG mode. ([#891](https://github.com/dell/csm/issues/891)) 52 | - Make standalone helm chart available from helm repository : https://dell.github.io/dell/helm-charts. ([#877](https://github.com/dell/csm/issues/877)) 53 | - CSI 1.5 spec support -StorageCapacityTracking. ([#876](https://github.com/dell/csm/issues/876)) 54 | - CSM for PowerMax file support. ([#861](https://github.com/dell/csm/issues/861)) 55 | - CSI-PowerFlex 4.0 NFS support. ([#763](https://github.com/dell/csm/issues/763)) 56 | - SDC 3.6.1 support. ([#885](https://github.com/dell/csm/issues/885)) 57 | - CSM support for Openshift 4.13. ([#724](https://github.com/dell/csm/issues/724)) 58 | - CSI Unity XT Driver: Add upgrade support to the CSM Operator. ([#955](https://github.com/dell/csm/issues/955)) 59 | - Google Anthos 1.15 support for PowerMax. ([#937](https://github.com/dell/csm/issues/937)) 60 | - Use ubi9 micro as base image. ([#922](https://github.com/dell/csm/issues/922)) 61 | - Enhance GoPowerScale to support PowerScale Terraform Provider. ([#888](https://github.com/dell/csm/issues/888)) 62 | - Configurable Volume Attributes use recommended naming convention /. ([#879](https://github.com/dell/csm/issues/879)) 63 | - CSI 1.5 spec support: Implement Volume Limits. ([#878](https://github.com/dell/csm/issues/878)) 64 | 65 | ### Bugs 66 | 67 | - Powerscale CSI driver RO PVC-from-snapshot wrong zone. ([#487](https://github.com/dell/csm/issues/487)) 68 | - Creating StorageClass for replication failed with unmarshal error. ([#968](https://github.com/dell/csm/issues/968)) 69 | - cert-csi help message uses wrong name of "csi-cert". ([#938](https://github.com/dell/csm/issues/938)) 70 | - volume-group-snapshot test observes a panic when using "--namespace" parameter. ([#931](https://github.com/dell/csm/issues/931)) 71 | - "--attr" of ephemeral-volume performance test doesn't support properties file. ([#930](https://github.com/dell/csm/issues/930)) 72 | - PowerStore Replication - Delete RG request hangs. ([#928](https://github.com/dell/csm/issues/928)) 73 | - VolumeHealthMetricSuite test failure. ([#923](https://github.com/dell/csm/issues/923)) 74 | - Generating report from multiple databases and test runs failure. ([#921](https://github.com/dell/csm/issues/921)) 75 | - Remove references to deprecated io/ioutil package. ([#916](https://github.com/dell/csm/issues/916)) 76 | - Update Cert-csi documentation for driver certification. ([#914](https://github.com/dell/csm/issues/914)) 77 | - Unable to pull podmon image from local repository for offline install. ([#898](https://github.com/dell/csm/issues/898)) 78 | - Update CSM Authorization karavictl CLI flag descriptions. ([#895](https://github.com/dell/csm/issues/895)) 79 | - CSI driver does not verify iSCSI initiators on the array correctly. ([#849](https://github.com/dell/csm/issues/849)) 80 | - Common section for Volume Snapshot Requirements. ([#811](https://github.com/dell/csm/issues/811)) 81 | -------------------------------------------------------------------------------- /CHANGELOG/CHANGELOG-1.9.0.md: -------------------------------------------------------------------------------- 1 | 2 | - [v1.9.4](#v194) 3 | - [Changelog since v1.9.3](#changelog-since-v193) 4 | - [Known Issues](#known-issues) 5 | - [Changes by Kind](#changes-by-kind) 6 | - [Bugs](#bugs) 7 | - [v1.9.3](#v193) 8 | - [Changelog since v1.9.2](#changelog-since-v192) 9 | - [Known Issues](#known-issues-1) 10 | - [Changes by Kind](#changes-by-kind-1) 11 | - [Features](#features-1) 12 | - [Bugs](#bugs-1) 13 | - [v1.9.2](#v192) 14 | - [Changelog since v1.9.1](#changelog-since-v191) 15 | - [Known Issues](#known-issues-2) 16 | - [Changes by Kind](#changes-by-kind-2) 17 | - [Bugs](#bugs-2) 18 | - [v1.9.1](#v191) 19 | - [Changelog since v1.9.0](#changelog-since-v190) 20 | - [Known Issues](#known-issues-3) 21 | - [Changes by Kind](#changes-by-kind-3) 22 | - [Bugs](#bugs-3) 23 | - [v1.9.0](#v190) 24 | - [Changelog since v1.8.0](#changelog-since-v180) 25 | - [Known Issues](#known-issues-4) 26 | - [Changes by Kind](#changes-by-kind-4) 27 | - [Deprecation](#deprecation) 28 | - [Features](#features-1) 29 | - [Bugs](#bugs-4) 30 | 31 | # v1.9.4 32 | 33 | ## Changelog since v1.9.3 34 | 35 | ## Known Issues 36 | 37 | - The status field of a csm object as deployed by CSM Operator may, in limited cases, display an incorrect status for a deployment. As a workaround, the health of the deployment can be determined by checking the health of the pods. 38 | - When CSM Operator creates a deployment that includes secrets (e.g., application-mobility, observability, cert-manager, velero), these secrets are not deleted on uninstall and will be left behind. For example, the `karavi-topology-tls`, `otel-collector-tls`, and `cert-manager-webhook-ca` secrets will not be deleted. This should not cause any issues on the system, but all secrets present on the cluster can be found with `kubectl get secrets -A`, and any unwanted secrets can be deleted with `kubectl delete secret -n ` 39 | 40 | ## Changes by Kind 41 | 42 | ### Bugs 43 | - Change the Apex Connectivity Client access to the kube-proxy port to only connections within the client pod. ([#1189](https://github.com/dell/csm/issues/1189)) 44 | - Change Apex Connectivity Client access to secrets to only the secrets it needs to manage. ([#1190](https://github.com/dell/csm/issues/1190)) 45 | 46 | # v1.9.3 47 | 48 | ## Changelog since v1.9.2 49 | 50 | ## Known Issues 51 | 52 | - The status field of a csm object as deployed by CSM Operator may, in limited cases, display an incorrect status for a deployment. As a workaround, the health of the deployment can be determined by checking the health of the pods. 53 | - When CSM Operator creates a deployment that includes secrets (e.g., application-mobility, observability, cert-manager, velero), these secrets are not deleted on uninstall and will be left behind. For example, the `karavi-topology-tls`, `otel-collector-tls`, and `cert-manager-webhook-ca` secrets will not be deleted. This should not cause any issues on the system, but all secrets present on the cluster can be found with `kubectl get secrets -A`, and any unwanted secrets can be deleted with `kubectl delete secret -n ` 54 | 55 | ## Changes by Kind 56 | 57 | ### Features 58 | 59 | - Automatically create certificates when deploying observability with csm-operator. ([#1158](https://github.com/dell/csm/issues/1158)) 60 | 61 | ### Bugs 62 | - CSM object stays in success state when all CSI Powerflex pods are failing due to bad secret credentials. ([#1156](https://github.com/dell/csm/issues/1156)) 63 | - If Authorization Proxy Server is installed in an alternate namespace by CSM Operator, the deployment fails. ([#1157](https://github.com/dell/csm/issues/1157)) 64 | - CSM status is not always accurate when Observability is deployed by CSM Operator without all components enabled. ([#1159](https://github.com/dell/csm/issues/1159)) 65 | - CSI driver changes to facilitate SDC brownfield deployments. ([#1152](https://github.com/dell/csm/issues/1152)) 66 | - CSM object occasionally stays in failed state when app-mobility is successfully deployed with csm-operator. ([#1171](https://github.com/dell/csm/issues/1171)) 67 | 68 | # v1.9.2 69 | 70 | ## Changelog since v1.9.1 71 | 72 | ## Known Issues 73 | 74 | - The status field of a csm object as deployed by CSM Operator may, in limited cases, display an incorrect status for a deployment. As a workaround, the health of the deployment can be determined by checking the health of the pods. 75 | - The status calculation done for the csm object associated with the Authorization Proxy Server when deployed with CSM Operator assumes that the proxy server will be deployed in the "authorization" namespace. If a different namespace is used, the status will stay in the failed state, even though the deployment is healthy. As a workaround, we recommend using the "authorization" namespace for the proxy server. If this is not possible, the health of the deployment can be verified by checking the status of all the pods rather than by checking the status field. 76 | - When CSM Operator creates a deployment that includes secrets (e.g., application-mobility, observability, cert-manager, velero), these secrets are not deleted on uninstall and will be left behind. For example, the `karavi-topology-tls`, `otel-collector-tls`, and `cert-manager-webhook-ca` secrets will not be deleted. This should not cause any issues on the system, but all secrets present on the cluster can be found with `kubectl get secrets -A`, and any unwanted secrets can be deleted with `kubectl delete secret -n ` 77 | - When PowerFlex CSI driver is deployed on a host that has SDC already installed or on a host that does not support automatic SDC installation (non CoreOS, non RHEL), the SDC container is unable to detect existing scini driver. As a result, the powerflex-node pod is stuck in `Init:CrashLoopBackOff` state. 78 | 79 | ## Changes by Kind 80 | 81 | ### Bugs 82 | 83 | - CSM Operator doesn't apply fSGroupPolicy value to CSIDriver Object. ([#1103](https://github.com/dell/csm/issues/1103)) 84 | - CSM Operator does not calculate status correctly when a driver is deployed by itself. ([#1130](https://github.com/dell/csm/issues/1130)) 85 | - CSM Operator does not calculate status correctly when application-mobility is deployed by itself. ([#1133](https://github.com/dell/csm/issues/1133)) 86 | - CSM Operator intermittently does not calculate status correctly when deploying a driver. ([#1137](https://github.com/dell/csm/issues/1137)) 87 | - CSM Operator does not calculate status correctly when deploying the authorization proxy server. ([#1143](https://github.com/dell/csm/issues/1143)) 88 | - CSM Operator does not calculate status correctly when deploying observability with csi-powerscale. ([#1146](https://github.com/dell/csm/issues/1146)) 89 | - CSM Operator labels csm objects with CSMVersion 1.8.0, an old version. ([#1147](https://github.com/dell/csm/issues/1147)) 90 | 91 | # v1.9.1 92 | 93 | ## Changelog since v1.9.0 94 | 95 | ## Known Issues 96 | 97 | - For CSM Operator released in CSM v1.9.1, a plain driver install (no modules) will always be marked as failed in the CSM status even when it succeeds. As a workaround, the driver deployment is still usable as long as all the pods are running/healthy. 98 | - For CSM Operator released in CSM v1.9.1, a standalone install of application-mobility (not as a module under the driver CSM) will always be marked as failed in the CSM status, even when it succeeds. This is because the operator is looking for the wrong daemonset label to confirm the deployment. As a workaround, the module is still usable as long as all the pods are running/healthy. 99 | - For CSM Operator released in CSM v1.9.1, a driver install will rarely (~2% of the time) have a csm object stuck in a failed state for over an hour even though the deployment succeeds. This is due to a race condition in the status update logic. As a workaround, the driver is still usable as long as all the pods are running/healthy. 100 | - For CSM Operator released in CSM v1.9.1, the authorization proxy server csm object status will always be failed, even when it succeeds. This is because the operator is looking for a daemonset status when the authorization proxy server deployment does not have a daemonset. As a workaround, the module is still usable as long as all the pods are running/healthy. 101 | - For CSM Operator released in CSM v1.9.1, an install of csi-powerscale with observability will always be marked as failed in the csm object status, even when it succeeds. This is because the operator is looking for a legacy name of isilon in the status check. As a workaround, the module is still usable as long as all the pods are running/healthy. 102 | - For csm objects created by the CSM Operator, the CSMVersion label value is v1.8.0 when it should be v1.9.1. As a workaround, the CSM version can be double-checked by checking the operator version -- v1.4.1 operator corresponds to CSM v1.9.1. 103 | - The status field of a csm object as deployed by CSM Operator may, in limited cases, display an incorrect status for a deployment. As a workaround, the health of the deployment can be determined by checking the health of the pods. 104 | - When PowerFlex CSI driver is deployed on a host that has SDC already installed or on a host that does not support automatic SDC installation (non CoreOS, non RHEL), the SDC container is unable to detect existing scini driver. As a result, the powerflex-node pod is stuck in `Init:CrashLoopBackOff` state. 105 | 106 | ## Changes by Kind 107 | 108 | ### Bugs 109 | 110 | - Multi Controller defect - sidecars timeout. ([#1110](https://github.com/dell/csm/issues/1110)) 111 | - Volumes failing to mount when customer using NVMeTCP on Powerstore. ([#1108](https://github.com/dell/csm/issues/1108)) 112 | - Operator crashes when deployed from OpenShift with OLM. ([#1117](https://github.com/dell/csm/issues/1117)) 113 | - Skip Certificate Validation is not propagated to Authorization module in CSM Operator. ([#1120](https://github.com/dell/csm/issues/1120)) 114 | - CSM Operator does not calculate status correctly when module is deployed with driver. ([#1122](https://github.com/dell/csm/issues/1122)) 115 | 116 | # v1.9.0 117 | 118 | ## Changelog since v1.8.0 119 | 120 | ## Known Issues 121 | 122 | - For CSM PowerMax, automatic SRDF group creation is failing with "Unable to get Remote Port on SAN for Auto SRDF" on PowerMax 10.1 arrays. As a workaround, create the SRDF Group and add it to the storage class. 123 | - For CSM Operator released in CSM v1.9.0, a driver install will rarely (~2% of the time) have a csm object stuck in a failed state for over an hour even though the deployment succeeds. This is due to a race condition in the status update logic. 124 | - For csm objects created by the CSM Operator, the CSMVersion label value is v1.8.0 when it should be v1.9.0. As a workaround, the CSM version can be double-checked by checking the operator version -- v1.4.0 operator corresponds to CSM v1.9.0. 125 | - The status field of a csm object as deployed by CSM Operator may, in limited cases, display an incorrect status for a deployment. As a workaround, the health of the deployment can be determined by checking the health of the pods. 126 | - When CSM Operator creates a deployment that includes secrets (e.g., application-mobility, observability, cert-manager, velero), these secrets are not deleted on uninstall and will be left behind. For example, the `karavi-topology-tls`, `otel-collector-tls`, and `cert-manager-webhook-ca` secrets will not be deleted. This should not cause any issues on the system, but all secrets present on the cluster can be found with `kubectl get secrets -A`, and any unwanted secrets can be deleted with `kubectl delete secret -n ` 127 | - When PowerFlex CSI driver is deployed on a host that has SDC already installed or on a host that does not support automatic SDC installation (non CoreOS, non RHEL), the SDC container is unable to detect existing scini driver. As a result, the powerflex-node pod is stuck in `Init:CrashLoopBackOff` state. 128 | 129 | ## Changes by Kind 130 | 131 | ### Deprecation 132 | 133 | - The Dell CSI Operator is no longer actively maintained or supported. Dell CSI Operator has been replaced with [Dell CSM Operator](https://dell.github.io/csm-docs/docs/deployment/csmoperator/). If you are currently using Dell CSI Operator, refer to the [operator migration documentation](https://dell.github.io/csm-docs/docs/csidriver/installation/operator/operator_migration/) to migrate from Dell CSI Operator to Dell CSM Operator. 134 | - CSM for PowerMax linked Proxy mode for [CSI reverse proxy is no longer actively maintained or supported](https://dell.github.io/csm-docs/docs/csidriver/release/powermax/). It will be deprecated in CSM 1.9. It is highly recommended that you use stand alone mode going forward. 135 | - The CSM Authorization RPM will be deprecated in a future release. It is highly recommended that you use CSM Authorization [Helm deployment](https://dell.github.io/csm-docs/docs/authorization/deployment/helm/) or [CSM Operator](https://dell.github.io/csm-docs/docs/authorization/deployment/operator/) going forward. 136 | 137 | ### Features 138 | 139 | - Support For PowerFlex 4.5. ([#1067](https://github.com/dell/csm/issues/1067)) 140 | - Support for Openshift 4.14. ([#1066](https://github.com/dell/csm/issues/1066)) 141 | - Support for Kubernetes 1.28. ([#947](https://github.com/dell/csm/issues/947)) 142 | - CSM PowerMax: Support PowerMax v10.1. ([#1062](https://github.com/dell/csm/issues/1062)) 143 | - Update to the latest UBI Micro image for CSM. ([#1031](https://github.com/dell/csm/issues/1031)) 144 | - Dell CSI to Dell CSM Operator Migration Process. ([#996](https://github.com/dell/csm/issues/996)) 145 | - Remove linked proxy mode for PowerMax. ([#991](https://github.com/dell/csm/issues/991)) 146 | - Add support for CSI Spec 1.6. ([#905](https://github.com/dell/csm/issues/905)) 147 | - Helm Chart Enhancement - Container Images Configurable in values.yaml. ([#851](https://github.com/dell/csm/issues/851)) 148 | 149 | ### Bugs 150 | 151 | - Documentation links are broken in few places. ([#1072](https://github.com/dell/csm/issues/1072)) 152 | - Symmetrix APIs are not getting refreshed. ([#1070](https://github.com/dell/csm/issues/1070)) 153 | - CSM Doc page - Update link to PowerStore for Resiliency card. ([#1065](https://github.com/dell/csm/issues/1065)) 154 | - Golint is not installing with go get command. ([#1061](https://github.com/dell/csm/issues/1061)) 155 | - cert-csi - cannot configure image locations. ([#1059](https://github.com/dell/csm/issues/1059)) 156 | - CSI Health monitor for Node missing for CSM PowerFlex in Operator samples. ([#1058](https://github.com/dell/csm/issues/1058)) 157 | - CSI Driver - issue with creation volume from 1 of the worker nodes. ([#1057](https://github.com/dell/csm/issues/1057)) 158 | - Missing runtime dependencies reference in PowerMax README file.. ([#1056](https://github.com/dell/csm/issues/1056)) 159 | - The PowerFlex Dockerfile is incorrectly labeling the version as 2.7.0 for the 2.8.0 version.. ([#1054](https://github.com/dell/csm/issues/1054)) 160 | - make gosec is erroring out - Repos PowerMax,PowerStore,PowerScale (gosec is installed). ([#1053](https://github.com/dell/csm/issues/1053)) 161 | - make docker command is failing with error. ([#1051](https://github.com/dell/csm/issues/1051)) 162 | - NFS Export gets deleted when one pod is deleted from the multiple pods consuming the same PowerFlex RWX NFS volume. ([#1050](https://github.com/dell/csm/issues/1050)) 163 | - Is cert-csi expansion expected to successfully run with enableQuota: false on PowerScale?. ([#1046](https://github.com/dell/csm/issues/1046)) 164 | - Document instructions update: Either Multi-Path or the Power-Path software should be enabled for PowerMax. ([#1037](https://github.com/dell/csm/issues/1037)) 165 | - Comment out duplicate entries in the sample secret.yaml file. ([#1030](https://github.com/dell/csm/issues/1030)) 166 | - Provide more detail about what cert-csi is doing. ([#1027](https://github.com/dell/csm/issues/1027)) 167 | - CSM Installation wizard is issuing the warnings that are false positives. ([#1022](https://github.com/dell/csm/issues/1022)) 168 | - CSI-PowerFlex: SDC Rename fails when configuring multiple arrays in the secret. ([#1020](https://github.com/dell/csm/issues/1020)) 169 | - karavi-metrics-powerscale pod gets an segmentation violation error during start. ([#1019](https://github.com/dell/csm/issues/1019)) 170 | - Missing error check for os.Stat call during volume publish. ([#1014](https://github.com/dell/csm/issues/1014)) 171 | - PowerFlex RWX volume no option to configure the nfs export host access ip address.. ([#1011](https://github.com/dell/csm/issues/1011)) 172 | - cert-csi invalid path in go.mod prevents installation. ([#1010](https://github.com/dell/csm/issues/1010)) 173 | - Cert-CSI from release v1.2.0 downloads wrong version v0.8.1. ([#1009](https://github.com/dell/csm/issues/1009)) 174 | - Too many login sessions in gopowerstore client causes unexpected session termination in UI. ([#1006](https://github.com/dell/csm/issues/1006)) 175 | - CSM Replication - secret file requirement for both sites not documented. ([#1002](https://github.com/dell/csm/issues/1002)) 176 | - Volume health fails because it looks to a wrong path. ([#999](https://github.com/dell/csm/issues/999)) 177 | - X_CSI_AUTH_TYPE cannot be set in CSM Operator. ([#990](https://github.com/dell/csm/issues/990)) 178 | - Allow volume prefix to be set via CSM operator. ([#989](https://github.com/dell/csm/issues/989)) 179 | - CSM Operator fails to install CSM Replication on the remote cluster. ([#988](https://github.com/dell/csm/issues/988)) 180 | - storageCapacity can be set in unsupported CSI Powermax with CSM Operator. ([#983](https://github.com/dell/csm/issues/983)) 181 | - Update resources limits for controller-manager to fix OOMKilled error. ([#982](https://github.com/dell/csm/issues/982)) 182 | - Not able to take volumesnapshots. ([#975](https://github.com/dell/csm/issues/975)) 183 | - Gopowerscale unit test fails. ([#771](https://github.com/dell/csm/issues/771)) 184 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # default target 2 | all: help 3 | 4 | # include an overrides file, which sets up default values and allows user overrides 5 | include overrides.mk 6 | 7 | # variables 8 | BASE_IMAGE_PACKAGES=acl \ 9 | gnutls \ 10 | device-mapper-multipath \ 11 | e2fsprogs \ 12 | gnutls \ 13 | gzip \ 14 | bzip2 \ 15 | hostname \ 16 | kmod \ 17 | libaio \ 18 | libblockdev \ 19 | libuuid \ 20 | libxcrypt-compat \ 21 | nettle \ 22 | nfs-utils \ 23 | nfs4-acl-tools \ 24 | numactl \ 25 | openssl \ 26 | rpm \ 27 | systemd \ 28 | tar \ 29 | util-linux \ 30 | which \ 31 | xfsprogs 32 | 33 | # Help target, prints useful information 34 | help: 35 | @echo 36 | @echo "The following targets are commonly used:" 37 | @echo 38 | @echo "docker - Builds the container image" 39 | @echo 40 | 41 | # Clean the build 42 | clean: 43 | rm -f core/core_generated.go 44 | rm -f semver.mk 45 | go clean 46 | 47 | # Generates the docker container (but does not push) 48 | docker: 49 | $(eval include config/csm-common.mk) 50 | $(eval include semver.mk) 51 | @echo "Building base image from $(UBI_BASEIMAGE) and loading dependencies..." 52 | cd base-image && ./build-base-image.sh -u $(UBI_BASEIMAGE) -t $(REGISTRY)/$(IMAGENAME):$(IMAGETAG) $(BASE_IMAGE_PACKAGES) 53 | @echo "Built base image: $(REGISTRY)/$(IMAGENAME):$(IMAGETAG)" 54 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 16 | 17 | # Dell Container Storage Modules (CSM) 18 | 19 | [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](docs/CODE_OF_CONDUCT.md) 20 | [![License](https://img.shields.io/github/license/dell/csm)](LICENSE) 21 | [![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/dell/csm?include_prereleases&label=latest&style=flat-square)](https://github.com/dell/csm/releases/latest) 22 | 23 | Dell Container Storage Modules (CSM) is an open-source suite of Kubernetes storage enablers for Dell products. 24 | 25 | For documentation, please visit [Container Storage Modules documentation](https://dell.github.io/csm-docs/). 26 | 27 | ## Table of Contents 28 | 29 | * [Code of Conduct](./docs/CODE_OF_CONDUCT.md) 30 | * [Maintainer Guide](./docs/MAINTAINER_GUIDE.md) 31 | * [Committer Guide](./docs/COMMITTER_GUIDE.md) 32 | * [Contributing Guide](./docs/CONTRIBUTING.md) 33 | * [List of Adopters](./docs/ADOPTERS.md) 34 | * [Security](./docs/SECURITY.md) 35 | * [Building](#building) 36 | * [Container Storage Modules - Components](#container-storage-modules---components) 37 | * [About](#about) 38 | 39 | ## Building 40 | This project includes the base container image definition for the 41 | [Container Storage Modules - Components](#container-storage-modules---components). 42 | 43 | To build the image, some requirements must be met: 44 | * The supported build environment is restricted to RedHat Enterprise Linux version 9.0 and above 45 | * buildah is used to build the container and must be installed 46 | 47 | Once the requirements above are met, the image can be build via: 48 | `make docker` 49 | 50 | Note: Due to the way that buildah operates, you may see warnings (or errors) in the output of `make docker`. 51 | The following messages can be safely ignored: 52 | * `/proc/ is not mounted. This is not a supported mode of operation. Please fix 53 | your invocation environment to mount /proc/ and /sys/ properly. Proceeding anyway.` The /proc filesystem is not needed for the image creation. 54 | * `[Errno 13] Permission denied: '/var/log/rhsm/rhsm.log' - Further logging output will be written to stderr`. This error comes from `dnf` as it is unable to write to the log file. Further errors from dnf will be sent to stderr instead of the log. 55 | 56 | 57 | ## Container Storage Modules - Components 58 | * [Dell Container Storage Modules (CSM) for Authorization](https://github.com/dell/karavi-authorization) 59 | * [Dell Container Storage Modules (CSM) for Observability](https://github.com/dell/karavi-observability) 60 | * [Dell Container Storage Modules (CSM) for Replication](https://github.com/dell/csm-replication) 61 | * [Dell Container Storage Modules (CSM) for Resiliency](https://github.com/dell/karavi-resiliency) 62 | * [CSI Driver for Dell PowerFlex](https://github.com/dell/csi-powerflex) 63 | * [CSI Driver for Dell PowerMax](https://github.com/dell/csi-powermax) 64 | * [CSI Driver for Dell PowerScale](https://github.com/dell/csi-powerscale) 65 | * [CSI Driver for Dell PowerStore](https://github.com/dell/csi-powerstore) 66 | * [CSI Driver for Dell Unity](https://github.com/dell/csi-unity) 67 | * [COSI Driver](https://github.com/dell/cosi) 68 | 69 | ## Support 70 | For any issues, questions or feedback, please contact [Dell support](https://www.dell.com/support/incidents-online/en-us/contactus/product/container-storage-modules). 71 | 72 | ## About 73 | Dell Container Storage Modules (CSM) is 100% open source and community-driven. All components are available 74 | under [Apache 2 License](https://www.apache.org/licenses/LICENSE-2.0.html) on 75 | GitHub. 76 | -------------------------------------------------------------------------------- /base-image/build-base-image.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright © 2024 Dell Inc. or its subsidiaries. All Rights Reserved. 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License 14 | 15 | # --- variables that are passed in via command line options 16 | 17 | # UBIBASE refers to the UBI-micro base image reference 18 | UBIBASE="" 19 | # CSMBASE specifies the fule name of the target image to build 20 | CSMBASE="" 21 | # PACKAGES is an array of packages that need to be installed in the built image 22 | PACKAGES="" 23 | 24 | 25 | # --- help: displays a short help message 26 | function help() { 27 | echo "${0}: Builds an image based on a RedHat UBI Micro image, with additional packages added" 28 | echo " Required Arguments:" 29 | echo " -u: Reference to the UBI-micro image to use as a base" 30 | echo " -t: Name of the target image to build" 31 | echo " List of package names to install" 32 | echo " Optional Arguments" 33 | echo " -h: Help, displays this message" 34 | echo "" 35 | echo "" 36 | echo "For example to build an image by adding curl and wget, invoke as:" 37 | echo "${0} \\" 38 | echo " -u registry.access.redhat.com/ubi9/ubi-micro@sha256:9dbba858e5c8821fbe1a36c376ba23b83ba00f100126f2073baa32df2c8e183a \\" 39 | echo " -t localhost\myorganization\myimage:mytag \\" 40 | echo " curl wget" 41 | echo 42 | } 43 | 44 | # --- build: Builds a container image using buildah 45 | function build() { 46 | echo "Building base image from ${UBIBASE}" 47 | echo "And creating ${CSMBASE}" 48 | echo "With packages of: ${PACKAGES}" 49 | 50 | # export the settings 51 | export UBIBASE="${UBIBASE}" 52 | export CSMBASE="${CSMBASE}" 53 | export PACKAGES="${PACKAGES}" 54 | 55 | if [ $(id -u) -eq 0 ]; then 56 | # if running as root, just run the script 57 | ./buildah-script.sh 58 | else 59 | # otherwise run in an unshared environment 60 | # and run the build script 61 | buildah unshare ./buildah-script.sh 62 | fi 63 | 64 | } 65 | 66 | # check to see if the host is RedHat Enterprise Linux as it is required 67 | if [ ! -f /etc/redhat-release ]; then 68 | echo "This does not appear to be a RedHat Enterprise Linux system" 69 | echo "No file at /etc/redhat-release was found" 70 | exit 1 71 | fi 72 | 73 | # Parse command line arguments 74 | while getopts "hu:t:" opt; do 75 | case $opt in 76 | u) 77 | UBIBASE="$OPTARG" 78 | ;; 79 | t) 80 | CSMBASE="$OPTARG" 81 | ;; 82 | h) 83 | help 84 | exit 0 85 | ;; 86 | \?) 87 | echo "" 88 | help 89 | exit 1 90 | ;; 91 | esac 92 | done 93 | 94 | # Remove the parsed options from the argument list 95 | shift $((OPTIND-1)) 96 | 97 | # Store the remaining arguments in the UNNAMED_ARGS array 98 | PACKAGES="$*" 99 | 100 | # Use the parsed values 101 | if [ -z "$UBIBASE" ]; then 102 | echo "Error: UBIBASE is not set" 103 | exit 1 104 | fi 105 | 106 | if [ -z "$CSMBASE" ]; then 107 | echo "Error: CSMBASE is not set" 108 | exit 1 109 | fi 110 | 111 | build 112 | -------------------------------------------------------------------------------- /base-image/buildah-script.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright © 2024 Dell Inc. or its subsidiaries. All Rights Reserved. 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License 14 | 15 | # This is build script that can be run in a `buildah unshare` environment 16 | 17 | # The following environment variables are expected to be found 18 | # UBIBASE refers to the UBI-micro base image reference 19 | # CSMBASE specifies the fule name of the target image to build 20 | # PACKAGES is an array of packages that need to be installed in the built image 21 | 22 | # build the image 23 | microcontainer=$(buildah from "${UBIBASE}") 24 | micromount=$(buildah mount $microcontainer) 25 | dnf install \ 26 | --installroot $micromount \ 27 | --releasever=9 \ 28 | --nodocs \ 29 | --setopt install_weak_deps=false \ 30 | --assumeyes \ 31 | --setopt=reposdir=/etc/yum.repos.d/ \ 32 | ${PACKAGES} 33 | 34 | dnf clean all \ 35 | --installroot $micromount 36 | 37 | buildah umount $microcontainer 38 | buildah commit $microcontainer "${CSMBASE}" 39 | -------------------------------------------------------------------------------- /config/csm-common.mk: -------------------------------------------------------------------------------- 1 | # Copyright © 2024-2025 Dell Inc. or its subsidiaries. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # http:#www.apache.org/licenses/LICENSE-2.0 7 | # Unless required by applicable law or agreed to in writing, software 8 | # distributed under the License is distributed on an "AS IS" BASIS, 9 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 | # See the License for the specific language governing permissions and 11 | # limitations under the License. 12 | 13 | # This file is intended to be included from within a Makefile, 14 | # so is restricted to Makefile syntax 15 | 16 | # Common settings for all CSM components and images. 17 | # Update this file when the image versions change, and it will be automatically rolled out across all components. 18 | 19 | # --- UBI_BASEIMAGE: Value of the UBI image to be used as a base for all images. 20 | UBI_BASEIMAGE=registry.access.redhat.com/ubi9/ubi-micro@sha256:955512628a9104d74f7b3b0a91db27a6bbecdd6a1975ce0f1b2658d3cd060b98 21 | 22 | # --- CSM_BASEIMAGE: Specifies the common baseimage that is used for all CSM images. 23 | CSM_BASEIMAGE=quay.io/dell/container-storage-modules/csm-base-image:nightly 24 | 25 | # --- DEFAULT_BASEIMAGE: Specifies the default image for repositories not yet using the CSM_BASEIMAGE. 26 | # --- Repositories should switch to using the CSM_BASEIMAGE to use the new common base image. 27 | DEFAULT_BASEIMAGE=${UBI_BASEIMAGE} 28 | 29 | # --- DEFAULT_GOVERSION: Specifies the default version of go. 30 | DEFAULT_GOVERSION=1.24 31 | 32 | # --- DEFAULT_GOIMAGE: Specifies the default Image to be used for building go components in a multi-stage docker file. 33 | DEFAULT_GOIMAGE=golang:${DEFAULT_GOVERSION} 34 | -------------------------------------------------------------------------------- /config/csm-versions.yaml: -------------------------------------------------------------------------------- 1 | # This file maintains the latest versions for all the CSM products in the given release 2 | # The format is as follows: 3 | # : 4 | 5 | # CSM program version 6 | csm-version : v1.14.0 7 | 8 | # CSM Operator version 9 | csm-operator : v1.9.0 10 | 11 | # Driver versions 12 | csi-powerscale : v2.14.0 13 | csi-powerstore : v2.14.0 14 | csi-powermax : v2.14.0 15 | csi-vxflexos : v2.14.0 16 | csi-unity : v2.14.0 17 | 18 | # Module versions 19 | csm-replication : v1.12.0 20 | karavi-resiliency : v1.13.0 21 | csm-authorization-v2 : v2.2.0 22 | csireverseproxy : v2.13.0 23 | karavi-observability : v1.12.0 24 | karavi-metrics-powerflex : v1.12.0 25 | csm-metrics-powerstore : v1.12.0 26 | csm-metrics-powerscale : v1.9.0 27 | csm-metrics-powermax : v1.7.0 28 | karavi-topology : v1.12.0 29 | karavi-authorization : v1.14.0 30 | application-mobility : v1.4.0 31 | 32 | # Tools 33 | cert-csi : v1.8.0 34 | dellctl : v1.14.0 35 | karavictl : v1.14.0 36 | repctl : v1.12.0 37 | installation-wizard : 1.6.0 38 | 39 | # Some third party libraries referred in CSM 40 | otel-collector : v0.124.0 41 | nginx-unprivileged : 1.27 42 | grafana : 11.5.2 43 | prometheus : v2.34.0 44 | openpolicyagent-opa : 0.70.0 45 | openpolicyagent-kube-mgmt : 8.5.10 46 | redis : 7.4.1-alpine 47 | -------------------------------------------------------------------------------- /docs/ADOPTERS.md: -------------------------------------------------------------------------------- 1 | 16 | # Adopters 17 | 18 | These organizations are using Container Storage Modules (CSM) in production: 19 | 20 | If you're using CSM and wish to be listed, please feel free to 21 | [submit a pull request](https://github.com/dell/csm/pulls) using the following guidelines: 22 | 23 | * Add a reference (link to a public blog post, video, slides, etc) mentioning the use of CSM 24 | 25 | | Organization | Reference | 26 | | ------------ | --------- | 27 | -------------------------------------------------------------------------------- /docs/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | 16 | 17 | # Code of Conduct - Contributor Covenant 18 | 19 | ## Our Pledge 20 | 21 | We as members, contributors, and leaders pledge to make participation in our 22 | community a harassment-free experience for everyone, regardless of age, body 23 | size, visible or invisible disability, ethnicity, sex characteristics, gender 24 | identity and expression, level of experience, education, socio-economic status, 25 | nationality, personal appearance, race, religion, or sexual identity 26 | and orientation. 27 | 28 | We pledge to act and interact in ways that contribute to an open, welcoming, 29 | diverse, inclusive, and healthy community. 30 | 31 | ## Our Standards 32 | 33 | Examples of behavior that contributes to a positive environment for our 34 | community include: 35 | 36 | * Demonstrating empathy and kindness toward other people 37 | * Being respectful of differing opinions, viewpoints, and experiences 38 | * Giving and gracefully accepting constructive feedback 39 | * Accepting responsibility and apologizing to those affected by our mistakes, 40 | and learning from the experience 41 | * Focusing on what is best not just for us as individuals, but for the 42 | overall community 43 | 44 | Examples of unacceptable behavior include: 45 | 46 | * The use of sexualized language or imagery, and sexual attention or 47 | advances of any kind 48 | * Trolling, insulting or derogatory comments, and personal or political attacks 49 | * Public or private harassment 50 | * Publishing others' private information, such as a physical or email 51 | address, without their explicit permission 52 | * Other conduct which could reasonably be considered inappropriate in a 53 | professional setting 54 | 55 | ## Enforcement Responsibilities 56 | 57 | Community leaders are responsible for clarifying and enforcing our standards of 58 | acceptable behavior and will take appropriate and fair corrective action in 59 | response to any behavior that they deem inappropriate, threatening, offensive, 60 | or harmful. 61 | 62 | Community leaders have the right and responsibility to remove, edit, or reject 63 | comments, commits, code, wiki edits, issues, and other contributions that are 64 | not aligned to this Code of Conduct, and will communicate reasons for moderation 65 | decisions when appropriate. 66 | 67 | ## Scope 68 | 69 | This Code of Conduct applies within all community spaces, and also applies when 70 | an individual is officially representing the community in public spaces. 71 | Examples of representing our community include using an official e-mail address, 72 | posting via an official social media account, or acting as an appointed 73 | representative at an online or offline event. 74 | 75 | ## Enforcement 76 | 77 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 78 | reported to the community leaders responsible for enforcement at ospo@dell.com. 79 | All complaints will be reviewed and investigated promptly and fairly. 80 | 81 | All community leaders are obligated to respect the privacy and security of the 82 | reporter of any incident. 83 | 84 | ## Enforcement Guidelines 85 | 86 | Community leaders will follow these Community Impact Guidelines in determining 87 | the consequences for any action they deem in violation of this Code of Conduct: 88 | 89 | ### 1. Correction 90 | 91 | **Community Impact**: Use of inappropriate language or other behavior deemed 92 | unprofessional or unwelcome in the community. 93 | 94 | **Consequence**: A private, written warning from community leaders, providing 95 | clarity around the nature of the violation and an explanation of why the 96 | behavior was inappropriate. A public apology may be requested. 97 | 98 | ### 2. Warning 99 | 100 | **Community Impact**: A violation through a single incident or series 101 | of actions. 102 | 103 | **Consequence**: A warning with consequences for continued behavior. No 104 | interaction with the people involved, including unsolicited interaction with 105 | those enforcing the Code of Conduct, for a specified period of time. This 106 | includes avoiding interactions in community spaces as well as external channels 107 | like social media. Violating these terms may lead to a temporary or 108 | permanent ban. 109 | 110 | ### 3. Temporary Ban 111 | 112 | **Community Impact**: A serious violation of community standards, including 113 | sustained inappropriate behavior. 114 | 115 | **Consequence**: A temporary ban from any sort of interaction or public 116 | communication with the community for a specified period of time. No public or 117 | private interaction with the people involved, including unsolicited interaction 118 | with those enforcing the Code of Conduct, is allowed during this period. 119 | Violating these terms may lead to a permanent ban. 120 | 121 | ### 4. Permanent Ban 122 | 123 | **Community Impact**: Demonstrating a pattern of violation of community 124 | standards, including sustained inappropriate behavior, harassment of an 125 | individual, or aggression toward or disparagement of classes of individuals. 126 | 127 | **Consequence**: A permanent ban from any sort of public interaction within 128 | the community. 129 | 130 | ## Attribution 131 | 132 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 133 | version 2.0, available at 134 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 135 | 136 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 137 | enforcement ladder](https://github.com/mozilla/diversity). 138 | 139 | [homepage]: https://www.contributor-covenant.org 140 | 141 | For answers to common questions about this code of conduct, see the FAQ at 142 | https://www.contributor-covenant.org/faq. Translations are available at 143 | https://www.contributor-covenant.org/translations. 144 | -------------------------------------------------------------------------------- /docs/COMMITTER_GUIDE.md: -------------------------------------------------------------------------------- 1 | 16 | 17 | # Committer Guidelines 18 | 19 | These are the guidelines for people with commit privileges on the GitHub repository. Committers act as members of the Core Team and not necessarily employees of Dell. 20 | 21 | These guidelines apply to everyone and as Committers you have been given access to commit changes because you exhibit good judgment and have demonstrated your commitment to the vision of the project. We trust that you will use these privileges wisely and not abuse it. 22 | 23 | If these privileges are abused in any way and the quality of the project is compromised, our trust will be diminished and you may be asked to not commit or lose these privileges all together. 24 | 25 | ## General Rules 26 | 27 | ### Don't 28 | 29 | * Break the build. 30 | * Commit directly. 31 | * Compromise backward compatibility. 32 | * Disrespect your Community Team members. Help them grow. 33 | * Think it is someone elses job to test your code. Write tests for all the code you produce. 34 | * Forget to keep thing simple. 35 | * Create technical debt. Fix-in-place and make it the highest priority above everything else. 36 | 37 | ### Do 38 | 39 | * Keep it simple. 40 | * Good work, your best every time. 41 | * Keep the design of your software clean and maintainable. 42 | * Squash your commits, avoid merges. 43 | * Be active. Committers that are not active may have their permissions suspended. 44 | * Write tests for all your deliverables. 45 | * Automate everything. 46 | * Maintain a high code coverage, equal to or greater than 90%. 47 | * Keep an open communication with other Committers. 48 | * Ask questions. 49 | * Document your contributions and remember to keep it simple. 50 | 51 | ## People 52 | 53 | | Name | GitHub ID | Nickname | 54 | |-------|-------------|------------| 55 | | | | | 56 | -------------------------------------------------------------------------------- /docs/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | 16 | 17 | # How to Contribute 18 | 19 | Become one of the contributors to this project! We thrive to build a welcoming and open community for anyone who wants to use the project or contribute to it. There are just a few small guidelines you need to follow. To help us create a safe and positive community experience for all, we require all participants to adhere to the [Code of Conduct](CODE_OF_CONDUCT.md). 20 | 21 | ## Table of Contents 22 | 23 | * [Become a contributor](#Become-a-contributor) 24 | * [Submitting issues](#Submitting-issues) 25 | * [Triage issues](#Triage-issues) 26 | * [Your first contribution](#Your-first-contribution) 27 | * [Branching](#Branching) 28 | * [Signing your commits](#Signing-your-commits) 29 | * [Pull requests](#Pull-requests) 30 | * [Code reviews](#Code-reviews) 31 | * [TODOs in the code](#TODOs-in-the-code) 32 | 33 | ## Become a contributor 34 | 35 | You can contribute to this project in several ways. Here are some examples: 36 | 37 | * Contribute to the documentation and codebase. 38 | * Report and triage bugs. 39 | * Create feature requests 40 | * Fix bugs and implement features 41 | * Write technical documentation and blog posts, for users and contributors. 42 | * Help others by answering questions about this project. 43 | 44 | ## Submitting issues 45 | 46 | All issues related to CSM, regardless of the repository the issue belongs to, should be submitted [here](https://github.com/dell/csm/issues). Issues will be triaged and labels will be used to indicate the type of issue. This section outlines the types of issues that can be submitted. 47 | 48 | ### Report bugs 49 | 50 | We aim to track and document everything related to CSM via the Issues page. The code and documentation are released with no warranties or SLAs and are intended to be supported through a community driven process. 51 | 52 | Before submitting a new issue, make sure someone hasn't already reported the problem. Look through the [existing issues](https://github.com/dell/csm/issues) for similar issues. 53 | 54 | Report a bug by submitting a [bug report](https://github.com/dell/csm/issues/new?labels=type%2Fbug%2C+needs-triage&template=bug_report.md&title=%5BBUG%5D%3A). Make sure that you provide as much information as possible on how to reproduce the bug. 55 | 56 | When opening a Bug please include the following information to help with debugging: 57 | 58 | 1. Version of relevant software: this software, Kubernetes, Dell Storage Platform, Helm, etc. 59 | 2. Details of the issue explaining the problem: what, when, where 60 | 3. The expected outcome that was not met (if any) 61 | 4. Supporting troubleshooting information. __Note: Do not provide private company information that could compromise your company's security.__ 62 | 63 | An Issue __must__ be created before submitting any pull request. Any pull request that is created should be linked to an Issue. 64 | 65 | ### Feature request 66 | 67 | If you have an idea of how to improve this project, submit a [feature request](https://github.com/dell/csm/issues/new?labels=type%2Ffeature-request%2C+needs-triage&template=feature_request.md&title=%5BFEATURE%5D%3A). 68 | 69 | ### Answering questions 70 | 71 | If you have a question and you can't find the answer in the documentation or issues, the next step is to submit a [question.](https://github.com/dell/csm/issues/new?labels=type%2Fquestion&template=ask-a-question.md&title=%5BQUESTION%5D%3A) 72 | 73 | We'd love your help answering questions being asked by other CSM users. 74 | 75 | ## Triage issues 76 | 77 | Triage helps ensure that issues resolve quickly by: 78 | 79 | * Ensuring the issue's intent and purpose is conveyed precisely. This is necessary because it can be difficult for an issue to explain how an end user experiences a problem and what actions they took. 80 | * Giving a contributor the information they need before they commit to resolving an issue. 81 | * Lowering the issue count by preventing duplicate issues. 82 | * Streamlining the development process by preventing duplicate discussions. 83 | 84 | If you don't have the knowledge or time to code, consider helping with _issue triage_. The CSM community will thank you for saving them time by spending some of yours. 85 | 86 | Read more about the ways you can [Triage issues](ISSUE_TRIAGE.md). 87 | 88 | ## Your first contribution 89 | 90 | Unsure where to begin contributing? Start by browsing issues labeled `beginner friendly` or `help wanted`. 91 | 92 | * [Beginner-friendly](https://github.com/dell/csm/issues?q=is%3Aopen+is%3Aissue+label%3A%22beginner+friendly%22) issues are generally straightforward to complete. 93 | * [Help wanted](https://github.com/dell/csm/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) issues are problems we would like the community to help us with regardless of complexity. 94 | 95 | When you're ready to contribute, it's time to create a pull request. 96 | 97 | ## Branching 98 | 99 | CSM follows a scaled trunk branching strategy where short-lived branches are created off of the main branch. When coding is complete, the branch is merged back into main after being approved in a pull request code review. 100 | 101 | ### Steps for branching and contributing 102 | 103 | 1. Fork the repository. 104 | 2. Create a branch off of the main branch. 105 | 3. Make your changes and commit them to your branch. 106 | 4. If other code changes have merged into the upstream main branch, perform a rebase of those changes into your branch. 107 | 5. Open a [pull request](https://github.com/dell/csm/pulls) between your branch and the upstream main branch. 108 | 6. Once your pull request has merged, your branch can be deleted. 109 | 110 | 111 | ## Signing your commits 112 | 113 | We require that developers sign off their commits to certify that they have permission to contribute the code in a pull request. This way of certifying is commonly known as the [Developer Certificate of Origin (DCO)](https://developercertificate.org/). We encourage all contributors to read the DCO text before signing a commit and making contributions. 114 | 115 | GitHub will prevent a pull request from being merged if there are any unsigned commits. 116 | 117 | ### Signing a commit 118 | 119 | GPG (GNU Privacy Guard) will be used to sign commits. Follow the instructions [here](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/signing-commits) to create a GPG key and configure your GitHub account to use that key. 120 | 121 | Make sure you have your user name and e-mail set. This will be required for your signed commit to be properly verified. Check the following references: 122 | 123 | * Setting up your github user name [reference](https://help.github.com/articles/setting-your-username-in-git/) 124 | * Setting up your e-mail address [reference](https://help.github.com/articles/setting-your-commit-email-address-in-git/) 125 | 126 | Once Git and your GitHub account have been properly configured, you can add the -S flag to the git commits: 127 | 128 | ```console 129 | $ git commit -S -m your commit message 130 | # Creates a signed commit 131 | ``` 132 | 133 | ### Commit message format 134 | 135 | CSM uses the guidelines for commit messages outlined in [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/) 136 | 137 | ## Pull Requests 138 | 139 | If this is your first time contributing to an open-source project on GitHub, make sure you read about [Creating a pull request](https://help.github.com/en/articles/creating-a-pull-request). 140 | 141 | A pull request must always link to at least one GitHub issue. If that is not the case, create a GitHub issue and link it. 142 | 143 | To increase the chance of having your pull request accepted, make sure your pull request follows these guidelines: 144 | 145 | * Title and description matches the implementation. 146 | * Commits within the pull request follow the formatting guidelines. 147 | * The pull request closes one related issue. 148 | * The pull request contains necessary tests that verify the intended behavior. 149 | * If your pull request has conflicts, rebase your branch onto the main branch. 150 | 151 | If the pull request fixes a bug: 152 | 153 | * The pull request description must include `Fixes #`. 154 | * To avoid regressions, the pull request should include tests that replicate the fixed bug. 155 | 156 | The CSM team _squashes_ all commits into one when we accept a pull request. The title of the pull request becomes the subject line of the squashed commit message. We still encourage contributors to write informative commit messages, as they becomes a part of the Git commit body. 157 | 158 | We use the pull request title when we generate change logs for releases. As such, we strive to make the title as informative as possible. 159 | 160 | Make sure that the title for your pull request uses the same format as the subject line in the commit message. 161 | 162 | ### Quality Gates for pull requests 163 | 164 | GitHub Actions are used to enforce quality gates when a pull request is created or when any commit is made to the pull request. These GitHub Actions enforce our minimum code quality requirement for any code that get checked into the CSM Go code repository. If any of the quality gates fail, it is expected that the contributor will look into the check log, understand the problem and resolve the issue. If help is needed, please feel free to reach out the maintainers of the project for [support](SUPPORT.md). 165 | 166 | #### Security scans 167 | 168 | * [Golang Security Checker](https://github.com/securego/gosec) inspects source code for security vulnerabilities by scanning the Go AST. 169 | * [Malware Scanner](https://github.com/dell/common-github-actions/tree/main/malware-scanner) inspects source code for malware. 170 | * [Container Scanner](https://github.com/Azure/container-scan) scans containers for security vulnerabilities. 171 | 172 | #### Code vetting 173 | 174 | [GitHub action](https://github.com/dell/common-github-actions/tree/main/go-code-formatter-linter-vetter) that analyzes source code to report suspicious constructs such as Printf calls whose arguments do not align with the format string, abnormal or not used code in pull requests. Please refer to [vet](https://golang.org/cmd/vet/) for more information. 175 | 176 | #### Code linting 177 | 178 | [GitHub action](https://github.com/dell/common-github-actions/tree/main/go-code-formatter-linter-vetter) that analyzes source code to flag programming errors, stylistics errors, and suspicious constructs. Please refer to [Go lint](https://github.com/golang/lint) for more information. 179 | 180 | #### Code formatting 181 | 182 | [GitHub action](https://github.com/dell/common-github-actions/tree/main/go-code-formatter-linter-vetter) that analyzes source code to flag formatting errors. Please refer to [gofmt](https://golang.org/cmd/gofmt/) for more information. 183 | 184 | #### Code sanitization 185 | 186 | [GitHub action](https://github.com/dell/common-github-actions/tree/main/code-sanitizer) that analyzes source code for non-inclusive words and language. 187 | 188 | #### Code build/test/coverage 189 | 190 | [GitHub action](https://github.com/dell/common-github-actions/tree/main/go-code-tester) that runs Go unit tests and checks that the code coverage of each package meets a configured threshold (currently 90%). An error is flagged if a given pull request does not meet the test coverage threshold and blocks the pull request from being merged. 191 | 192 | ## Code Reviews 193 | 194 | All submissions, including submissions by project members, require review. We use GitHub pull requests for this purpose. Consult [GitHub Help](https://help.github.com/articles/about-pull-requests/) for more information on using pull requests. 195 | 196 | A pull request must satisfy following for it to be merged: 197 | 198 | * A pull request will require at least 2 maintainer approvals, one of which must come from a code owner. 199 | * Maintainers must perform a review to ensure the changes adhere to guidelines laid out in this document. 200 | * If any commits are made after the PR has been approved, the PR approval will automatically be removed and the above process must happen again. 201 | 202 | ## Code Style 203 | 204 | For the Go code in the CSM repository, we expect the code styling outlined in [Effective Go](https://golang.org/doc/effective_go.html). In addition to this, we have the following supplements: 205 | 206 | ### Handle Errors 207 | 208 | See [Effective Go](https://golang.org/doc/effective_go.html#errors) for details on handling errors. 209 | 210 | Do not discard errors using _ variables. If a function returns an error, check it to make sure the function succeeded. Handle the error, return it, or, in truly exceptional situations, panic. This can be checked using the errcheck tool if you have it installed locally. 211 | 212 | Do not log the error if it will also be logged by a caller higher up the call stack; doing so causes the logs to become repetitive. Instead, consider wrapping the error in order to provide more detail. To see practical examples of this, see this bad practice and this preferred practice: 213 | 214 | #### Bad 215 | 216 | ```go 217 | package main 218 | 219 | import ( 220 | "errors" 221 | "log" 222 | ) 223 | 224 | func main() { 225 | err := foo() 226 | if err != nil { 227 | log.Printf("error: %+v", err) 228 | return 229 | } 230 | } 231 | 232 | func foo() error { 233 | err := bar() 234 | if err != nil { 235 | log.Printf("error: %+v", err) 236 | return err 237 | } 238 | return nil 239 | } 240 | 241 | func bar() error { 242 | return errors.New("something bad happened") 243 | } 244 | ``` 245 | 246 | #### Preferred 247 | 248 | ```go 249 | package main 250 | 251 | import ( 252 | "errors" 253 | "fmt" 254 | "log" 255 | ) 256 | 257 | func main() { 258 | err := foo() 259 | if err != nil { 260 | log.Printf("error: %+v", err) 261 | return 262 | } 263 | } 264 | 265 | func foo() error { 266 | err := bar() 267 | if err != nil { 268 | return fmt.Errorf("calling bar: %w", err) 269 | } 270 | return nil 271 | } 272 | 273 | func bar() error { 274 | return errors.New("something bad happened") 275 | } 276 | ``` 277 | 278 | Do not use the github.com/pkg/errors package as it is now in maintenance mode since Go 1.13+ added official support for error wrapping. See [go1.13-errors](https://blog.golang.org/go1.13-errors) and [errwrap](https://github.com/fatih/errwrap) for more information. 279 | 280 | ### Gofmt 281 | 282 | Run gofmt on your code to automatically fix the majority of mechanical style issues. Almost all Go code in the wild uses gofmt. The rest of this document addresses non-mechanical style points. 283 | 284 | An alternative is to use goimports, a superset of gofmt which additionally adds (and removes) import lines as necessary. 285 | 286 | A recommended approach is to ensure your editor supports running of goimports automatically on save. 287 | 288 | ### TODOs in the code 289 | 290 | We don't like TODOs in the code or documentation. It is really best if you sort out all issues you can see with the changes before we check the changes in. 291 | -------------------------------------------------------------------------------- /docs/ISSUE_TRIAGE.md: -------------------------------------------------------------------------------- 1 | 16 | # Triage issues 17 | 18 | The main goal of issue triage is to categorize all incoming Dell Container Storage Modules issues and make sure each issue has all basic information needed for anyone else to understand and be able to start working on it. 19 | 20 | > **Note:** This information is for Dell Container Storage Modules project Maintainers, Owners, and Admins. If you are a Contributor, then you will not be able to perform most of the tasks in this topic. 21 | 22 | The core maintainers of the Dell Container Storage Modules project are responsible for categorizing all incoming issues and delegating any critical or important issue to other maintainers. Triage provides an important way to contribute to an open source project. 23 | 24 | Triage helps ensure issues resolve quickly by: 25 | 26 | - Ensuring the issue's intent and purpose is conveyed precisely. This is necessary because it can be difficult for an issue to explain how an end user experiences a problem and what actions they took. 27 | - Giving a contributor the information they need before they commit to resolving an issue. 28 | - Lowering the issue count by preventing duplicate issues. 29 | - Streamlining the development process by preventing duplicate discussions. 30 | 31 | If you don't have the knowledge or time to code, consider helping with triage. The community will thank you for saving them time by spending some of yours. 32 | 33 | ## Labels 34 | 35 | GitHub labels help organize and categorize GitHub issues. The main categories of labels being used are: 36 | 37 | - type/*: describes the type of the issue 38 | - triage/*: describes the result of an issue triage 39 | - area/*: the repository the issue is associated with 40 | - Additional labels are applied to indicate when an issue needs triage and asking the community for help. 41 | 42 | | Label | Description | 43 | | - | - | 44 | | type/bug | Something isn't working. This is the default label associated with a bug issue. | 45 | | type/feature | A feature. This label is applied to a feature issue. There is no template for a feature issue. Maintainers can manually create a feature issue and assign it this label. Alternatively, if a feature request is triaged and determined to be important, this label can replace the type/feature-request label. | 46 | | type/feature-request | New feature request. This is the default label associated with a feature request issue. | 47 | | type/question | Ask a question. This is the default label associated with a question issue. | 48 | | needs-triage | Applied by default to bug and feature request issues so that the community understands triage is required. | 49 | | triage/works-as-intended | Applied to a bug issue as part of triage when the issue works as intended by design. | 50 | | triage/needs-information | Applied to an issue as part of triage indicating more information is required in order to work on it | 51 | | triage/duplicate | Indicates the issue or pull request already exists. | 52 | | triage/needs-investigation | Applied to an issue as part of triage indicating more investigation is required to reproduce and understand. Indicates that the issue cannot be easily reproduced and notifies contributors/maintainers that more investigation is required by anyone willing to contribute. | 53 | | help wanted | Request for help from the community. | 54 | | beginner friendly | The issue is suitable for a beginner to work on. | 55 | | area/* | Used to associate the issue with a specific repository. | 56 | 57 | ## Find issues that need triage 58 | 59 | The easiest way to find issues that haven't been triaged is to search for issues with the `needs-triage` label. 60 | 61 | ## Ensure the issue contains basic information 62 | 63 | Make sure that the issue's author provided the standard issue information. The Dell Container Storage Modules project utilizes [GitHub issue templates](https://help.github.com/en/articles/creating-issue-templates-for-your-repository) to guide contributors to provide standard information that must be included for each type of template or type of issue. 64 | 65 | ### Standard issue information that must be included 66 | 67 | The following section describes the various issue templates and the expected content. 68 | 69 | #### Bug reports 70 | 71 | Should explain what happened, what was expected and how to reproduce it together with any additional information that may help to give a complete picture of what happened such as screenshots, output and any environment related information that's applicable and/or maybe related to the reported problem: 72 | - Dell Container Storage Modules version 73 | - Bug description 74 | - Expected behavior 75 | - Logs 76 | - Screenshots 77 | - Platform & OS Dell Container Storage Modules is installed on 78 | - Additional environment information 79 | 80 | #### Feature requests 81 | 82 | Should explain what feature that the author wants to be added and why that is needed. 83 | 84 | #### Ask a Question requests 85 | 86 | In general, if the issue description and title is perceived as a question no more information is needed. 87 | 88 | ### Good practices 89 | 90 | To make it easier for everyone to understand and find issues they're searching for it's suggested as a general rule of thumbs to: 91 | 92 | - Make sure that issue titles are named to explain the subject of the issue, has a correct spelling and doesn't include irrelevant information and/or sensitive information. 93 | - Make sure that issue descriptions doesn't include irrelevant information. 94 | - Make sure that issues do not contain sensitive information. 95 | - Make sure that issues have all relevant fields filled in. 96 | - Do your best effort to change title and description or request suggested changes by adding a comment. 97 | 98 | > **Note:** Above rules are applicable to both new and existing issues. 99 | 100 | ### Do you have all the information needed to categorize an issue? 101 | 102 | Depending on the issue, you might not feel all this information is needed. Use your best judgement. If you cannot triage an issue using what its author provided, explain kindly to the author that they must provide the above information to clarify the problem. Label issue with `triage/needs-information`. 103 | 104 | If the author provides the standard information, but you are still unable to triage the issue, request additional information. Do this kindly and politely because you are asking for more of the author's time. Label issue with `triage/needs-information`. 105 | 106 | If the author does not respond to the requested information within the timespan of a week, close the issue with a kind note stating that the author can request for the issue to be reopened when the necessary information is provided. 107 | 108 | If you receive a notification with additional information provided, but you are no long on issue triage, and you feel you do not have time to handle it, you should delegate it to the current person on issue triage. 109 | 110 | ## Categorizing an issue 111 | 112 | ### Duplicate issues 113 | 114 | Make sure it's not a duplicate by searching existing issues using related terms from the issue title and description. If you think you know there is an existing issue, but can't find it, please reach out to one of the maintainers and ask for help. If you identify that the issue is a duplicate of an existing issue: 115 | 116 | 1. Add a comment `duplicate of #` 117 | 2. Add the `triage/duplicate` label 118 | 119 | ### Bug reports 120 | 121 | If it's not perfectly clear that it's an actual bug, quickly try to reproduce it. 122 | 123 | **It's a bug/it can be reproduced:** 124 | 125 | 1. Add a comment describing detailed steps for how to reproduce it, if applicable. 126 | 2. If you know that maintainers won't be able to put any resources into it for some time then label the issue with `help wanted` and optionally `beginner friendly` together with pointers on which code to update to fix the bug. This should signal to the community that we would appreciate any help we can get to resolve this. 127 | 128 | **It can't be reproduced:** 129 | 1. Either ask for more information needed to investigate it more thoroughly. Provide details in a comment. 130 | 2. Either delegate further investigations to someone else. Provide details in a comment. 131 | 132 | **It works as intended/by design:** 133 | 1. Kindly and politely add a comment explaining briefly why we think it works as intended and close the issue. 134 | 2. Label the issue `triage/works-as-intended`. 135 | 3. Remove the `needs-triage` label. 136 | 137 | **It does not work as intended/by design:** 138 | 1. Update the issue with additional details if needed 139 | 2. Remove the `needs-triage` label. 140 | 4. Assign the appropriate milestone 141 | 142 | ### Feature requests 143 | 144 | 1. If the feature request does not align with the product vision, add a comment indicating so, remove the `needs-triage` label and close the issue 145 | 2. Otherwise, add the appropriate labels and comments to the issue, remove the `needs-triage` label, and assign it to the correct milestone. 146 | 147 | ## Requesting help from the community 148 | 149 | Depending on the issue and/or priority, it's always a good idea to consider signalling to the community that help from community is appreciated and needed in case an issue is not prioritized to be worked on by maintainers. Use your best judgement. In general, requesting help from the community means that a contribution has a good chance of getting accepted and merged. 150 | 151 | In many cases the issue author or community as a whole is more suitable to contribute changes since they are experts in their domain. It's also quite common that someone has tried to get something to work using the documentation without success and made an effort to get it to work and/or reached out to the community to get the missing information. 152 | 153 | 1. Kindly and politely add a comment to signal to users subscribed to issue updates. 154 | - Explain that the issue would be nice to get resolved, but it isn't prioritized to work on by maintainers for an unforeseen future. 155 | - If possible or applicable, try to help contributors getting starting by adding pointers and references to what code/files need to be changed and/or ideas of a good way to solve/implement the issue. 156 | 2. Label the issue with `help wanted`. 157 | 3. If applicable, label the issue with `beginner friendly` to denote that the issue is suitable for a beginner to work on. 158 | 159 | ## Investigation of issues 160 | 161 | When an issue has all basic information provided, but the reported problem cannot be reproduced at a first glance, the issue is labeled `triage/needs-information`. Depending on the perceived severity and/or number of [upvotes](https://help.github.com/en/articles/about-conversations-on-github#reacting-to-ideas-in-comments), the investigation will either be delegated to another maintainer for further investigation or put on hold until someone else (maintainer or contributor) picks it up and eventually starts investigating it. 162 | 163 | Even if you don't have the time or knowledge to investigate an issue we highly recommend that you [upvote](https://help.github.com/en/articles/about-conversations-on-github#reacting-to-ideas-in-comments) the issue if you happen to have the same problem. If you have further details that may help to investigate the issue please provide as much information as possible. 164 | 165 | ## External PRs 166 | 167 | Part of issue triage should also be triaging of external PRs. Main goal should be to make sure PRs from external contributors have an owner/reviewer and are not forgotten. 168 | 169 | 1. Check new external PRs which do not have a reviewer. 170 | 1. Maintainers need to ensure the pull request aligns with a GitHub bug or feature 171 | 1. If not and you know which issue it is solving, add the link yourself, otherwise ask the author to link the issue or create one. 172 | 1. Maintainers need to ensure the contribution is relevant and aligns with the product roadmap and priorities 173 | 1. Assign a reviewer based on who was handling the linked issue or what code or feature does the PR touches (look at who was the last to make changes there if all else fails). 174 | 1. Work with the contributor to guide them and help ensure our quality standards are met and that all GitHub checks pass.  175 | 176 | ## GitHub Issue Management Workflow 177 | 178 | The following section describes the triage workflow for new issues that are created. 179 | 180 | ### Bugs 181 | 182 | This workflow starts off with a GitHub issue of type bug being created. 183 | 184 | 1. Collaborator or maintainer creates a GitHub bug using the appropriate GitHub issue template 185 | 2. By default the bug is assigned the type/bug and needs-triage labels 186 | 187 | ``` 188 | +--------------------------+ 189 | | New bug issue opened/more| 190 | | information added | 191 | +-------------|------------+ 192 | | 193 | | 194 | +----------------------------------+ NO +--------------|-------------+ 195 | | label: triage/needs-information --------- All required information | 196 | | | | contained in issue? | 197 | +-----------------------------|----+ +--------------|-------------+ 198 | | | YES 199 | | | 200 | +--------------------------+ | +---------------------+ YES +---------------------------------------+ 201 | |label: | | | Duplicate Issue? ------- Comment `Duplicate of #` 202 | |triage/needs-investigation| | NO | | | Remove needs-triage label | 203 | +------|-------------------+ | +----------|----------+ | label: triage/duplicate | 204 | | | | NO +-----------------|---------------------+ 205 | YES | | | | 206 | | +---------------|----+ NO +------------|------------+ | 207 | | |Needs investigation?|---------- Can it be reproduced? | | 208 | |------- | +------------|------------+ | 209 | +--------------------+ | YES | 210 | | +----------|----------+ 211 | +------------|------------+ | Close Issue | 212 | |------------------------------- Works as intended? | | | 213 | | NO | | +----------|----------+ 214 | | +------------|------------+ | 215 | | | | 216 | | | YES | 217 | | +----------------|----------------+ | 218 | +-------------|------------+ | Add comment | | 219 | | Add area label | | Remove needs-triage label ------------------| 220 | | label: area/* | | label: triage/works-as-intended | 221 | +-------------|------------+ +---------------------------------+ 222 | | 223 | | +----------+ 224 | | | Done ---------------------------------------- 225 | | +----|-----+ | 226 | | |NO | 227 | | | +------------------|------------------+ 228 | +------------|-------------+ +----|----------------+ YES | Add details to issue | 229 | |Remove needs-triage label ------------ Signal Community? ---------- label: help wanted | 230 | |Assign milestone | | | | label: beginner friendly (optional)| 231 | +--------------------------+ +---------------------+ +-------------------------------------+ 232 | ``` 233 | If the author does not respond to a request for more information within the timespan of a week, close the issue with a kind note stating that the author can request for the issue to be reopened when the necessary information is provided. 234 | 235 | ### Feature Requests 236 | 237 | This workflow starts off with a GitHub issue of type feature request being created. 238 | 239 | 1. Collaborator or maintainer creates a GitHub `type/feature-request` using the appropriate GitHub issue template 240 | 2. By default the bug is assigned the `type/feature-request` and `needs-triage` labels 241 | 242 | The following flow chart outlines the triage process 243 | 244 | ``` 245 | +---------------------------------+ 246 | |New feature request issue opened/| 247 | |more information added | 248 | +----------------|----------------+ 249 | | 250 | | 251 | +---------------------------------+ NO +-------------|------------+ 252 | | label: triage/needs-information ---------- All required information | 253 | | | | contained in issue? | 254 | +---------------------------------+ +-------------|------------+ 255 | | 256 | | 257 | +---------------------------------------+ | 258 | |Comment `Duplicate of #` | YES +----------|----------+ 259 | |Remove needs-triage label ------- Duplicate issue? | 260 | |label: triage/duplicate | | | 261 | +-----|---------------------------------+ +-----------|---------+ 262 | | |NO 263 | | +-------------------------+ NO +-----------------------------+ 264 | | |Add comment |-------- Is this a valid feature? | 265 | | |Remove needs-triage label| | | 266 | | +------|------------------+ +--------------|--------------+ 267 | | | | YES 268 | | | | 269 | | | +---------------|--------------+ 270 | | | | label: type/feature | 271 | +-|---------|---+ | Remove needs-triage label | 272 | | Close issue | | Remove type/feature-request | 273 | | | | milestone? | 274 | +---------------+ +------------------------------+ 275 | | 276 | +-------------------------------------+      YES +---------------------+ 277 | | Add details to issue --------------- Signal Community? | 278 | | label: help wanted |             | | 279 | | label: beginner friendly (optional)|             +---------------------+                             280 | +---|---------------------------------+              | NO 281 | | | 282 | +------+ | 283 | | Done | ------------------------------------------------------ 284 | +------+       285 | ``` 286 | If the author does not respond to a request for more information within the timespan of a week, close the issue with a kind note stating that the author can request for the issue to be reopened when the necessary information is provided. 287 | 288 | In some cases you may receive a request you do not wish to accept.  Perhaps the request doesn't align with the project scope or vision.  It is important to tactfully handle contributions that don't meet the project standards. 289 | 290 | 1. Acknowledge the person behind the contribution and thank them for their interest and contribution 291 | 2. Explain why it didn't fit into the scope of the project or vision 292 | 3. Don't leave an unwanted contributions open.  Immediately close the contribution you do not wish to accept 293 | -------------------------------------------------------------------------------- /docs/MAINTAINER_GUIDE.md: -------------------------------------------------------------------------------- 1 | 16 | 17 | # Maintainer Guidelines 18 | 19 | As a Maintainer of this project you have the responsibility of keeping true to the vision of the project with unprecedented quality. Being part of this group is a privilege that requires dedication and time to attend to the daily activities that are associated with the maintenance of this project. 20 | 21 | ## Becoming a Maintainer 22 | 23 | Most Maintainers started as Contributors that have demonstrated their commitment to the success of the project. Contributors wishing to become Maintainers, must demonstrate commitment to the success of the project by contributing code, reviewing others' work, and triaging issues on a regular basis for at least three months. 24 | 25 | The contributions alone don't make you a Maintainer. You need to earn the trust of the current Maintainers and other project Contributors, that your decisions and actions are in the best interest of the project. 26 | 27 | Periodically, the existing Maintainers curate a list of Contributors who have shown regular activity on the project over the prior months. It is from this list that Maintainer candidates are selected. 28 | 29 | After a candidate is selected, the existing Maintainers discuss the candidate over the next 5 business days, provide feedback, and vote. At least 75% of the current Maintainers must vote in the affirmative for a candidate to be moved to the role of Maintainer. 30 | 31 | If a candidate is approved, a Maintainer contacts the candidate to invite them to open a pull request that adds the contributor to the MAINTAINERS file. The candidate becomes a Maintainer once the pull request is merged. 32 | 33 | ## Maintainer Policies 34 | 35 | * Lead by example 36 | * Follow the [Code of Conduct](CODE_OF_CONDUCT.md) and the guidelines in the [Contributing](CONTRIBUTING.md) and [Committer](COMMITTER_GUIDE.md) guides 37 | * Promote a friendly and collaborative environment within our community 38 | * Be actively engaged in discussions, answering questions, updating defects, and reviewing pull requests 39 | * Criticize code, not people. Ideally, tell the contributor a better way to do what they need. 40 | * Clearly mark optional suggestions as such. Best practice, start your comment with *At your option: …* 41 | 42 | ## Project Decision Making 43 | 44 | All project decisions should contribute to successfully executing on the project roadmap. Project milestones are established for each release. 45 | -------------------------------------------------------------------------------- /docs/SECURITY.md: -------------------------------------------------------------------------------- 1 | 16 | 17 | # Reporting Security Issues/Vulnerabilities 18 | 19 | The Dell Container Storage Modules team and community take security bugs seriously. We sincerely appreciate all your efforts and responsibility to disclose your findings. 20 | 21 | To report a security issue, please submit the security advisory form ["Report a Vulnerability"](https://github.com/dell/csm/security/advisories/new). 22 | 23 | 24 | -------------------------------------------------------------------------------- /docs/VERSIONING.md: -------------------------------------------------------------------------------- 1 | 16 | # Versioning 17 | 18 | Artifacts published must belong to one of the following categories: 19 | * "Releases", i.e. artifacts that have versions that follow the `x.y.z` format, 20 | where `x` is called "major version", `y` is called "minor version" 21 | and `z` is called "patch version". 22 | * "Prereleases", i.e. artifacts that have versions that follow the `x.y.z-suffix` format, 23 | where `x`, `y` and `z` are called the same as above, and `suffix` is 24 | an arbitrary suffix created by a human or generated by a tool. 25 | 26 | ## Major releases 27 | 28 | "Major releases" are artifacts published as `x.0.0`: 29 | * An artifact must be released as `x.0.0` if and only if 30 | the difference between the current code and the code that 31 | has been published as `{x-1}.0.0`contains changes to: 32 | - Any changes that change the behaviour of existing infrastructure 33 | - Any changes that prevents you to deploy over and existing stack 34 | - Any CLI command being removed or changed 35 | - `{x+1}.0.0` is strongly encouraged to be backward compatible with `x.y.z` modulo deprecation warnings: 36 | * It is desirable to compilable against `x.y.z` to be compilable against `{x+1}.0.0` modulo deprecation warnings. 37 | * It is desirable to linkable against `x.y.z` to be linkable with `{x+1}.0.0`. 38 | 39 | 40 | ## Minor releases 41 | 42 | "Minor releases" are artifacts published as `x.y.0`: 43 | * An artifact must be released as `x.y.0` if and only if 44 | the difference between the current code and the code 45 | that has been published as `x.0.0`, changes to `x.{y+1}.0` must be backward compatible with `x.y.0`: 46 | * It is desirable to compilable against `x.y.0` must be compilable against `x.{y+1}.z` without deprecation warnings. 47 | * It is desirable to linkable against `x.y.0` must be linkable against `x.{y+1}.z`. 48 | 49 | ## Patch releases 50 | 51 | "Patch releases" are artifacts published as `x.y.z`: 52 | * An artifact must be released as `x.y.z` if and only if 53 | the difference between the current code and the code 54 | that has been published as `x.y.0`. 55 | * A release only containing backwards-compatible bug fixes. 56 | 57 | ## Prereleases 58 | 59 | "Prereleases" are artifacts published as `x.y.z-suffix`: 60 | * An artifact may be published as `x.y.z-suffix` if and only if: 61 | 1) There exists an `x.y.z` release, and 62 | 2) There exist neither `{x+1}.0.0`, nor `x.{y+1}.0`, nor `x.y.{z+1}` releases. 63 | 3) `suffix` is in compliance with [semantic versioning](https://semver.org/). 64 | 4) `suffix` does not equal `SNAPSHOT`. 65 | 66 | ### References 67 | Follows Semantic Versioning as defined on [http://semver.org/](http://semver.org). 68 | -------------------------------------------------------------------------------- /overrides.mk: -------------------------------------------------------------------------------- 1 | # overrides file 2 | # this file, included from the Makefile, will overlay default values with environment variables 3 | # 4 | 5 | # DEFAULT values 6 | DEFAULT_REGISTRY="sample_registry" 7 | DEFAULT_IMAGENAME="csm-base-image" 8 | DEFAULT_BUILDSTAGE="final" 9 | DEFAULT_IMAGETAG="test" 10 | 11 | # set the GOIMAGE if needed 12 | ifeq ($(GOIMAGE),) 13 | export GOIMAGE="$(DEFAULT_GOIMAGE)" 14 | endif 15 | 16 | # set the REGISTRY if needed 17 | ifeq ($(REGISTRY),) 18 | export REGISTRY="$(DEFAULT_REGISTRY)" 19 | endif 20 | 21 | # set the IMAGENAME if needed 22 | ifeq ($(IMAGENAME),) 23 | export IMAGENAME="$(DEFAULT_IMAGENAME)" 24 | endif 25 | 26 | #set the IMAGETAG if needed 27 | ifeq ($(IMAGETAG),) 28 | export IMAGETAG="$(DEFAULT_IMAGETAG)" 29 | endif 30 | 31 | # set the BUILDSTAGE if needed 32 | ifeq ($(BUILDSTAGE),) 33 | export BUILDSTAGE="$(DEFAULT_BUILDSTAGE)" 34 | endif 35 | 36 | # figure out if podman or docker should be used (use podman if found) 37 | ifneq (, $(shell which podman 2>/dev/null)) 38 | export BUILDER=podman 39 | else 40 | export BUILDER=docker 41 | endif 42 | 43 | # target to print some help regarding these overrides and how to use them 44 | overrides-help: 45 | @echo 46 | @echo "The following environment variables can be set to control the build" 47 | @echo 48 | @echo "GOIMAGE - The version of Go to build with, default is: $(DEFAULT_GOIMAGE)" 49 | @echo " Current setting is: $(GOIMAGE)" 50 | @echo "REGISTRY - The registry to push images to, default is: $(DEFAULT_REGISTRY)" 51 | @echo " Current setting is: $(REGISTRY)" 52 | @echo "IMAGENAME - The image name to be built, defaut is: $(DEFAULT_IMAGENAME)" 53 | @echo " Current setting is: $(IMAGENAME)" 54 | @echo "IMAGETAG - The image tag to be built, default is an empty string which will determine the tag by examining annotated tags in the repo." 55 | @echo " Current setting is: $(IMAGETAG)" 56 | @echo "BUILDSTAGE - The Dockerfile build stage to execute, default is: $(DEFAULT_BUILDSTAGE)" 57 | @echo " Stages can be found by looking at the Dockerfile" 58 | @echo " Current setting is: $(BUILDSTAGE)" 59 | @echo 60 | 61 | 62 | 63 | --------------------------------------------------------------------------------