Initial commit for app-dell-storage

This introduces the support for Dell Container Storage Module (CSM)
as a StarlingX Application.

CSM is made up of multiple components including modules (enterprise
capabilities), CSI drivers (storage enablement) and other related
applications (deployment, feature controllers, etc).

In this first stage we will support:

- csi-powerstore
- csi-unity
- csm-application-mobility
- csm-observability
- csm-replication

Test Plan:
    PASS: build csi-powerstore-helm, csi-unity-helm,
          csm-replication-helm, csm-observability-helm,
          csm-application-mobility-helm, python3-k8sapp-dell-storage
          and stx-dell-storage-helm packages successfully.
    PASS: app-dell-storage upload/apply/remove/delete on
          SX/DX/DX+/Standard using csi-unity through
          UnityVSA Simulator.
    PASS: create a PVC using NFS protocol and test read/write
          access on SX/DX/DX+/Standard using csi-unity through
          UnityVSA Simulator.

Story: 2010693
Task: 48207

Change-Id: I7dc87df04de55fe31a6e52f55733f2afa83ae95e
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
This commit is contained in:
Hediberto Cavalcante da Silva 2023-06-07 21:35:17 +00:00
parent 805b95f664
commit d3472dab95
158 changed files with 5251 additions and 93 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.tox

View File

@ -3,101 +3,47 @@
check:
jobs:
- openstack-tox-linters
- k8sapp-dell-storage-tox-py39
- k8sapp-dell-storage-tox-pylint
gate:
jobs:
- openstack-tox-linters
post:
jobs:
- stx-app-dell-storage-upload-git-mirror
- k8sapp-dell-storage-tox-py39
- k8sapp-dell-storage-tox-pylint
- job:
name: stx-app-dell-storage-upload-git-mirror
parent: upload-git-mirror
description: >
Mirrors opendev.org/starlingx/app-dell-storage to
github.com/starlingx/app-dell-storage
name: k8sapp-dell-storage-tox-py39
parent: openstack-tox-py39
description: |
Run py39 test for k8sapp_dell_storage
nodeset: debian-bullseye
required-projects:
- starlingx/config
- starlingx/fault
- starlingx/update
- starlingx/utilities
- starlingx/root
files:
- python3-k8sapp-dell-storage/*
vars:
git_mirror_repository: starlingx/app-dell-storage
secrets:
- name: git_mirror_credentials
secret: stx-app-dell-storage-github-secret
pass-to-parent: true
tox_extra_args: -c python3-k8sapp-dell-storage/k8sapp_dell_storage/tox.ini
tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/starlingx/root/build-tools/requirements/debian/upper-constraints.txt'
- secret:
name: stx-app-dell-storage-github-secret
data:
user: git
host: github.com
# yamllint disable-line rule:line-length
host_key: github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=
ssh_key: !encrypted/pkcs1-oaep
- jhwFjDofZyEeURAtopcsutyAJulUM3+GXsc/QgSI0jMrTNXgfvWwSZvHV4mQ77ozx2sHH
cWdSvAYS8qk2kwiIB2NFty+vKD/PoWYIhdcZHxWe2BgIBuLEVxBu5CnaWtDszWHznefUX
fOJfSUcbon0TUYrBLCbqIJWD+IJnPssbmDb0nfgn2kUIyZKS/4lGw3+vyNW/y3VQseOaQ
erRwmhZu/nU7h/1twJFlnuEN3josO5KPNIFHIXuzLP/T8TUqAykhgnTv5IG+ZkmlgJCc9
UbIfYBiudchQ2XDv38aFdWv9FsbAz/YFeEQl5eCRYwpGk23HyElj1g6177YP5cdHdoYXk
ix/DDB1jA27eNNXMUtCvaIhmtks4mnwjKdGmXI3PPNGrCrbwHMoKzTh8gnnMJ1oVkTS5/
DWtXBLU4bY38Ohhsa1L/QFekHB0jydcPiU2SyGozP1S78zpedDMn3i2Ut3jnZ0VS6yaeL
XzEOYQ37aunqFG0oj9pSJ/hfGxcOXLXblZfe9twgtg+zcHKEg1q/6J9kevnJNXEPyWEJ/
qhuJS6BfTVJ6BjBa9Rh1wW+6XY2PchbwA8KbqBIwlbzrutw4d57xGeaV6GXeCRc35ptu+
bUffk5khbSQd76u7UmfExIitMnsm6gbDBxruihjPMIqU8GQwaQM4WoIh6IQXIM=
- K4G7UgOOe/dxgV0tFieu/QUFhLfKQEDh3qw05QYtRmuRXkj6xWUt3J+vgJ5YAw6LErDXc
/w0DOExh+Aw2GXLlqYXrhcfPHx8NufNiyz8vCrOsoV9Rj7CQoMOrBcKevT4GoikM3PRk+
phahWBzdWlpQOg4ouu/myhxY/1cE7zyA46VeUR2ezSlZoPbkG0fjEJmTDzGnnWEeG/oyM
NjDDIkyNihPCJR5oYbphjYFPA6AgPZg2rGrSvx1HPHdw0Obh0+ExljhmgSqWIMQNfQNOj
b3HlJV5hdgId5SsOhqrtrhWQGDMYSh3Ou6A13Kpbeoju18X0cHYNjPR6R7bv6CbFka/sO
sm1C5JUaQva4y7kZkMOHQxbsmCwq6pGZVz9SJwAGSdz7ola5rpxBXdUDhUs5mbSk+BeBa
5dKWEkd3R6/LOh+Ohefr0l/NcrcJIEb1MU0oMDxMe06jB1Xdj5w3JZ+T9z7yKiFYGsbhm
tg5euJMZ8EP6DIF++fnIoWW8YEpDFZ9dzA9gDjY1A+o9JNXOUJGXTupnLMi4PyBKEWp0t
Y9la5ywfYekj2NE61FzTN4r8KKks+qqNLNIlBZ4z92KN+VBn4A/slL9uLdjDcMZM6Rn8d
Yuxasg1A5mNfZuXTKEoa7B8fa46HqZxYZ/KI2nSAdvEpHIG3nRLgyj1suk1jvM=
- KD6OlWoDGHcPfjMTYqMgBzt32MJoBTpQQFE4uLEZY7cJSi6xb0Va3clZoDv8u7mgw+i2j
53c35iUTuU00L0/9KWQaNBFWrTXrThULItKXk0BJCTYeTl5+ruFlkmSPKO4xm+Hug97mF
jAZv6aJPReSCQBl/fGE4hwIIHcBUeMwehcNkHkBjAOFCqBUdoewqBo7TVYYApKAn1fkXx
qiM7MZsI7ERHmYyyhtNCbFaP3lm2+Eqrooz+yjkWvCIS40fRQNvLvgDmGhYnif+NBzLAr
0UavVAiyH4U10cFpHdPvaVYE8EVf2t0JiU3odrRY8DSGfhrFOsxx5cFkHKRMGTjHhOQ4R
vJEhRtgsXNfPABJNsIOPkWLfPAXNt8I7aMDpM5AyZ3uy+el5WyDXIWsfHnqoVJWgzHJpb
Tl/B6tFK6JyMyzXoF4g1hXu4vRmsFrBnk7fqGf09ExUYn2REUqckUjc0j7dtt06n405Xb
H5oCjaTdL5KqC7OHtc2HG4mW5FFZP7iwV+7OkphE/szBSkRUqiYQPrMa6muwXp9sLT+oV
NgfRU8YAvtDniEC0Jx5EWmU6O5oWDs3jtwe3Yob3mPOFVf9JltxgvSdLKHqhC7v3GD1k8
L1Tp6hYDG3oi/lEovoOEf0nH6LAraX9YNAIQmsHEjLNSm8MAmm7vWW1ZL6meH8=
- S1vIeJ7mqrzd7vUt5OShMPzj6/oYHkw//0A+soxQZGt769pQbqPBYBSxFiDfgl/5Iz3IV
2GXCsq9skLqu4Hw6NjPKufB4wW6uYkDKaQjNyE2HIj4vHtK0LMtw4UHhxHgvdrvGVwbOP
WtxSI8lmTyl6qVUPIe0mSHJzEcINT0jPuZcbQ8EnQYmr20/cVvY9nWaybC4vmnaTHFYR8
m9NawZMRqYwKtJC7t6bNQt7WXfW/690EQr3+D/A0VAZlQ04MPDZ4AYsf9/Dtx0Aih0NXo
0AnTAISTzM5phgaR/qRzZ7B7M7uG6h/brKil1jRpO5UpbnJ661ibj/5WiJPsYGjnfa/Dw
uF0e+UmGWdumBjZY5V1VKt6kH5RfCE1ttbamt8/s1QHiIPmTiq8GzF3tFa22a28GSKxNl
LhFjCfnX0W+8j2Or57wVV649cJw48Nij1SvCO1dOIPH0AKKF13QTWh+kMunSXKEodaMZH
hmubF5bs7DzutHC5kScvNihWjHfmJnkCW9wXt8ZVBzyNqcvrYFPxNItnB9q5l8xZd5lJs
JFp++hsNYnpFMRV6zbT0cYgf0jRyAFlUs6jJl6KhQgKswxV36DaOA+X0pkBpwJXC7187r
o/BBLVzgAjiSYXhgB45LPI1POWZMDXD7NLku2pSO98aCvmHdOHMNrp4PwWoT7A=
- VIHbwn9a9gzrcN6pLgb3Cxt9x87CojHSj2DC3QIvvcQkv554o0EXZ1W8EykOizNyzUca4
CBbBZJlkNmR8o4+G2IoZ9fd4rYfsgFyBX6dVbVYOwzUoawoTTa0YnGLJYdX1z4kUaVCs0
9LA2X7Lq4XplkK0cFEa+l6iYaUTco42uaVv6bh0opA3DeqR39pv/btiIf6VvI7V8Se4+1
rL6J3qc0hvwr3QDq8XVoXMvQbgb3p40Dq7kpRLOg86HtZ+JdY/KwFA+q6tfvNnuGPM0g6
YkIlKCeqNpWxewvm6y+Id3XEO4jI/WwPbbyTp9xqdluRKtDZRMGXVSlsAuFCiCsFMC2ef
lNlA5WjC9oBWTyDWC2g7a9/67LBJVgZIFRutig/GQbGSQINNRhZZ7DIZyxy+6LBPDSEub
kaYbBPywhX8uxAE7Xn7+j9+ak4on2KMYoIcT/P7aoMi4kX2p2gWUWxIfugVYDCQ4oRlOx
BoaSt9wVYlQC6JUSiCEmmiXNs6miLZE1dcyl/duOuOQzH4U+ro/x3Ri5fd0HLUDSNBPze
DFm3iCmrXJMF4Go5yPM/UCtjtRS/Ln/yxmHccNqurL0ROrrVEmlJ4aJAYFyDCVHr9eXoS
fY533WE/jWwpUmY5Ahr0PWMeIBKfx7Cje9J+WWXiflQfOq7ggipP7nFacZBNiU=
- iCB/xKlw0ipSlzFzfxVnU6q3dFxs6GJhUlTey3gBmyZ99puw7s8gLGSdlxl/lSEHDfO2w
6ioAi7EJzntIp1ch/JbYsZayczhvUZjnSHdQr8blR2XaxI4EA/JlsBpBzuowKcE8LvKAg
pGGjeQ/n+5ecBpKSSELqpLy7RHlAv/cqGL4oyJg1lErqwEttmkMNIbNRlO7H0GuVMAHjU
ReiA/fygPgq8U8MMD6J3oDA4p6pT45tZeTjfacFFymCTrSGVI9dSAYPswonsCSuzG3Dxc
2cLZ1D5ZMoVw7Tk3+FZqg1df+LnhkAUvntKP98ES+Icwf4cw6HrLiqIG2575yHyLinW0W
X+4uOLFTDqE/lhypluGD2i//x0BsAsJ+iqF/ac0GMzxp996SLyoTOMrYNP4/CNqxHPW+T
nNXFUgfWOVHb2edVDisDmlviT21t3G33jXrt8X5epnbLU/y/dyuU9KWdG4UfqqHVWamKc
vU9XVNRHfwq0SF7t1zKYAs3LEI7lW4hYHgz4xMBIqiM8gUsCdeh4M/xhiBWBaYHG6Q/ax
MSLNjudPg+T5N+2DpqiOS76O0Fbx7nefPtV/I/VyfTMT7SW4ZX8slSBRCTmR+wGcgBbu1
SgT19LMkuo3CxWWobBKSSSF9JbJquGZKdSmQjKlbAQhxZlukpljdqxW4XrKP8A=
- o9ik/siGydKWn149s3r3qbRA2y8EqHhZh93Y6FU4rmjogKARxs66OOVGHIn5AB2J6x/Jx
hGnz0eXmv1or+tJV80sfAzxP2csLQu8plQKsTHF2tAnQvQ1jwmOlt9V9WNic1Txaabsz/
FzRgM02A14RFrVxWOh8+c9Q+18fXnLRk/3lJFJa2M5FIcSDrqNWoTbCMz7uLPfRtp7GRn
r+nWkjBv4hQmz3ZP9sr75uSFtcfQ6AnbrAjJGkcvMha5uDO7FuQcfw2qeEs/OmKy/v4ij
/pd6KIGiN1KdG7L+St9UyYOvRWe9p7J1apFSLXtcSD97sNwXPXYhidmeKxs6L3GFaAOXb
TEyRbV5OCUwnEsgXz7JXA3Hn5AP0bXoLm1SYYd1VzwMYc96nOFljdFKoHlBSDYwvHTtHu
fZtQB+E/Y4CQP/CK+yTWjSFkC0Vuc/IdKuVUymyh7mkEZckWF3UFZiYY1ncMvMJdWT7eE
wQgV3X9PQgdf2xTTvTlgVQwdzCQ7IsidgX+nfQvJRslpfngfByQ4UZhMptD93B38XtUlZ
TG+2EiDQRFgUeuy2j+PuREsQl+VNEtBoNm9/3lz1SokYHPUZi97XkwX+nACetdQl7A51N
bLntQcm9C8TnXjzHsnCGGNgyK+Xzyb1uNK703Yl9BWp5jAEsrA7LeZwdEmnbxU=
- job:
name: k8sapp-dell-storage-tox-pylint
parent: tox
description: |
Run pylint test for k8sapp_dell_storage
nodeset: debian-bullseye
required-projects:
- starlingx/config
- starlingx/fault
- starlingx/update
- starlingx/utilities
- starlingx/root
files:
- python3-k8sapp-dell-storage/*
vars:
tox_envlist: pylint
tox_extra_args: -c python3-k8sapp-dell-storage/k8sapp_dell_storage/tox.ini
tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/starlingx/root/build-tools/requirements/debian/upper-constraints.txt'

17
HACKING.rst Normal file
View File

@ -0,0 +1,17 @@
StarlingX App-Dell-Store Style Commandments
================================================
- Step 1: Read the OpenStack style commandments
https://docs.openstack.org/hacking/latest/
- Step 2: Read on
App-Dell-Store Specific Commandments
-----------------------------------------
None so far
Running tests
-------------
The approach to running tests is to simply run the command ``tox``. This will
create virtual environments, populate them with dependencies and run all of
the tests that OpenStack CI systems run.

10
bindep.txt Normal file
View File

@ -0,0 +1,10 @@
# This is a cross-platform list tracking distribution packages needed for install and tests;
# see https://docs.openstack.org/infra/bindep/ for additional information.
libffi-dev [platform:dpkg]
libldap2-dev [platform:dpkg]
libxml2-dev [platform:dpkg]
libxslt1-dev [platform:dpkg]
libsasl2-dev [platform:dpkg]
libffi-devel [platform:rpm]
python3-all-dev [platform:dpkg]

View File

@ -0,0 +1,42 @@
#
# Copyright 2017 The Openstack-Helm Authors.
#
# Copyright (c) 2023 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
# It's necessary to set this because some environments don't link sh -> bash.
SHELL := /bin/bash
TASK := build
EXCLUDES := doc tests tools logs tmp
CHARTS := $(filter-out $(EXCLUDES), $(patsubst %/.,%,$(wildcard */.)))
.PHONY: $(EXCLUDES) $(CHARTS)
all: $(CHARTS)
$(CHARTS):
@if [ -d $@ ]; then \
echo; \
echo "===== Processing [$@] chart ====="; \
make $(TASK)-$@; \
fi
init-%:
if [ -f $*/Makefile ]; then make -C $*; fi
lint-%: init-%
if [ -d $* ]; then helm lint $*; fi
build-%: lint-%
if [ -d $* ]; then helm package $*; fi
clean:
@echo "Clean all build artifacts"
rm -f */templates/_partials.tpl */templates/_globals.tpl
rm -f *tgz */charts/*tgz
rm -rf */charts */tmpcharts
%:
@:

View File

@ -0,0 +1,5 @@
csi-powerstore-helm (2.6-0) unstable; urgency=medium
* Initial release.
-- Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com> Thu, 30 Mar 2023 15:15:00 +0000

View File

@ -0,0 +1,15 @@
Source: csi-powerstore-helm
Section: libs
Priority: optional
Maintainer: StarlingX Developers <starlingx-discuss@lists.starlingx.io>
Build-Depends: debhelper-compat (= 13),
helm
Standards-Version: 4.5.1
Homepage: https://www.starlingx.io
Package: csi-powerstore-helm
Section: libs
Architecture: any
Depends: ${misc:Depends}
Description: StarlingX Dell PowerStore CSI Helm Charts
This package contains helm charts for the Dell PowerStore CSI.

View File

@ -0,0 +1,41 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: csi-powerstore-helm
Source: https://opendev.org/starlingx/app-dell-storage/
Files: *
Copyright: (c) 2023 Wind River Systems, Inc
License: Apache-2
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
https://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian-based systems the full text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.
# If you want to use GPL v2 or later for the /debian/* files use
# the following clauses, or change it to suit. Delete these two lines
Files: debian/*
Copyright: 2022 Wind River Systems, Inc
License: Apache-2
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
https://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian-based systems the full text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.

View File

@ -0,0 +1 @@
usr/lib/helm/*

View File

@ -0,0 +1,101 @@
From e850373d3bd409e2ab04572deec3dbc546a0fc3d Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Thu, 27 Apr 2023 11:07:51 -0300
Subject: [PATCH] csi-powerstore: add default values for templates
This patch consists of adding the default values in the values.yaml of
the helm chart.
It's necessary because the images in templates were in unexpected format
for the system and because templates need default values to be able
to build the package.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
helm/csi-powerstore/values.yaml | 25 +++++++++++++++++++++----
1 file changed, 21 insertions(+), 4 deletions(-)
diff --git a/helm/csi-powerstore/values.yaml b/helm/csi-powerstore/values.yaml
index c5aee2b..05e1c71 100644
--- a/helm/csi-powerstore/values.yaml
+++ b/helm/csi-powerstore/values.yaml
@@ -87,6 +87,11 @@ controller:
# Default value: None
volumeNamePrefix: csivol
+ attacher:
+ image: k8s.gcr.io/sig-storage/csi-attacher:v4.2.0
+ provisioner:
+ image: k8s.gcr.io/sig-storage/csi-provisioner:v3.4.0
+
# vgsnapshot: allows to configure volume-group-snapshot
# volume-group-snapshot CRDs must be installed before installing driver
vgsnapshot:
@@ -110,6 +115,7 @@ controller:
# false: disable volume snapshot feature(do not install snapshotter sidecar)
# Default value: None
enabled: true
+ image: k8s.gcr.io/sig-storage/csi-snapshotter:v6.2.1
# snapNamePrefix: Prefix to apply to the names of a created snapshots
# Allowed values: string
@@ -123,6 +129,7 @@ controller:
# false: disable volume expansion feature(do not install resizer sidecar)
# Default value: true
enabled: true
+ image: k8s.gcr.io/sig-storage/csi-resizer:v1.7.0
healthMonitor:
# enabled: Enable/Disable health monitor of CSI volumes
@@ -131,6 +138,7 @@ controller:
# false: disable checking of health condition of CSI volumes
# Default value: false
enabled: false
+ image: gcr.io/k8s-staging-sig-storage/csi-external-health-monitor-controller:v0.8.0
# interval: Interval of monitoring volume health condition
# Allowed values: Number followed by unit (s,m,h)
@@ -164,7 +172,8 @@ controller:
replicationPrefix: "replication.storage.dell.com"
# Image for csi-metadata-retriever
- metadataretriever: dellemc/csi-metadata-retriever:v1.3.0
+ metadataretriever:
+ image: dellemc/csi-metadata-retriever:v1.3.0
# nodeSelector: Define node selection constraints for controller pods.
# For the pod to be eligible to run on a node, the node must have each
@@ -204,6 +213,9 @@ node:
# Default value: None
nodeIDPath: /etc/machine-id
+ registrar:
+ image: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.6.3
+
healthMonitor:
# enabled: Enable/Disable health monitor of CSI volumes- volume usage, volume condition
# Allowed values:
@@ -278,6 +290,12 @@ connection:
# Default value: false
enableCHAP: false
+storageClasses:
+
+secrets:
+ create: true
+ arrays:
+
# CSI driver log level
# Allowed values: "error", "warn"/"warning", "info", "debug", "error"
# Default value: "debug"
@@ -336,6 +354,5 @@ podmon:
# - "--driverPodLabelValue=dell-storage"
# - "--ignoreVolumelessPods=false"
-images:
- # "driver" defines the container image, used for the driver container.
- driverRepository: dellemc
+driver:
+ image: dellemc/csi-powerstore:v2.6.0
--
2.25.1

View File

@ -0,0 +1,45 @@
From 74b8f6cd4a26d6ab5d7c5979f2669b31f31bd0c5 Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Tue, 18 Apr 2023 08:46:30 -0300
Subject: [PATCH] csi-powerstore: add secret in templates
This patch consists of adding a secret in the helm chart templates directory.
It's needed because this helm chart needs a config secret that should be
created manually.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
helm/csi-powerstore/templates/secret.yaml | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
create mode 100644 helm/csi-powerstore/templates/secret.yaml
diff --git a/helm/csi-powerstore/templates/secret.yaml b/helm/csi-powerstore/templates/secret.yaml
new file mode 100644
index 0000000..dcfc2fe
--- /dev/null
+++ b/helm/csi-powerstore/templates/secret.yaml
@@ -0,0 +1,21 @@
+{{- if .Values.secrets.create }}
+apiVersion: v1
+kind: Secret
+metadata:
+ name: csi-powerstore-config
+ namespace: {{ .Release.Namespace }}
+stringData:
+ config: |
+ arrays:
+ {{- range .Values.secrets.arrays }}
+ - globalID: "{{ .globalID }}"
+ username: "{{ .username }}"
+ password: "{{ .password }}"
+ endpoint: "{{ .endpoint }}"
+ skipCertificateValidation: {{ .skipCertificateValidation | default "true" }}
+ isDefault: {{ .isDefault | default "false" }}
+ blockProtocol: {{ .blockProtocol | default "auto" }}
+ nasName: "{{ .nasName }}"
+ nfsAcls: "{{ .nfsAcls | default "0777" }}"
+ {{- end }}
+{{- end }}
--
2.25.1

View File

@ -0,0 +1,65 @@
From 343ab50e5af6de9c9164ff7757992548360c415d Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Mon, 29 May 2023 12:37:17 -0300
Subject: [PATCH] csi-powerstore: add storageclass in templates
This patch consists of adding a storage classes in the helm chart templates directory.
It's needed because this helm chart needs a storage classes that should be
created manually.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
.../templates/storageclass.yaml | 41 +++++++++++++++++++
1 file changed, 41 insertions(+)
create mode 100644 helm/csi-powerstore/templates/storageclass.yaml
diff --git a/helm/csi-powerstore/templates/storageclass.yaml b/helm/csi-powerstore/templates/storageclass.yaml
new file mode 100644
index 0000000..b66ce0c
--- /dev/null
+++ b/helm/csi-powerstore/templates/storageclass.yaml
@@ -0,0 +1,41 @@
+{{- range $sc := .Values.storageClasses }}
+apiVersion: storage.k8s.io/v1
+kind: StorageClass
+metadata:
+{{- if or $sc.name $sc.fstype }}
+ name: {{ $sc.name | default ( print "csi-powerstore-" $sc.fstype | lower ) }}
+{{- else }}
+ name: "csi-powerstore-nfs"
+{{- end }}
+provisioner: {{ $sc.provisioner | default ( print "csi-powerstore.dellemc.com" ) }}
+parameters:
+ arrayID: "{{ $sc.arrayID }}"
+ {{- if $sc.fstype }}
+ csi.storage.k8s.io/fstype: {{ $sc.fstype | lower | default "nfs" }}
+ {{- end }}
+ nasName: "{{ $sc.nasName }}"
+ allowRoot: "{{ $sc.allowRoot | default "false" }}"
+ {{- if and $sc.replication $.Values.csm.replication }}
+ replication.storage.dell.com/isReplicationEnabled: "true"
+ replication.storage.dell.com/remoteStorageClassName: "{{ $sc.replication.remoteStorageClassName | default print "csi-powerstore-replication" }}"
+ {{- if $sc.replication.remoteClusterID }}
+ replication.storage.dell.com/remoteClusterID: "{{ $sc.replication.remoteClusterID }}"
+ {{- end }}
+ {{- if $sc.replication.remoteSystem }}
+ replication.storage.dell.com/remoteSystem: "{{ $sc.replication.remoteSystem }}"
+ {{- end }}
+ {{- if $sc.replication.rpo }}
+ replication.storage.dell.com/rpo: {{ $sc.replication.rpo | default "Five_Minutes" }}
+ {{- end }}
+ replication.storage.dell.com/ignoreNamespaces: "{{ $sc.replication.ignoreNamespaces | default false }}"
+ replication.storage.dell.com/volumeGroupPrefix: {{ $sc.replication.volumeGroupPrefix | default "csi-powerstore" }}
+ {{- end }}
+reclaimPolicy: {{ $sc.reclaimPolicy | default "Delete" }}
+allowVolumeExpansion: {{ $sc.allowVolumeExpansion | default "true" }}
+volumeBindingMode: {{ $sc.volumeBindingMode | default "Immediate" }}
+{{- if $sc.allowedTopologies }}
+allowedTopologies:
+ {{ $sc.allowedTopologies | toYaml | nindent 4 }}
+{{- end }}
+---
+{{- end }}
--
2.25.1

View File

@ -0,0 +1,106 @@
From 4e9698e29c69382c333e4df22f2ec043da0c4a82 Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Thu, 27 Apr 2023 10:51:06 -0300
Subject: [PATCH] csi-powerstore: fix image path for templates
This patch consists of changing the format to use the image path directly
following the expected format used by kube_app.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
helm/csi-powerstore/templates/controller.yaml | 14 +++++++-------
helm/csi-powerstore/templates/node.yaml | 4 ++--
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/helm/csi-powerstore/templates/controller.yaml b/helm/csi-powerstore/templates/controller.yaml
index 3067302..097084b 100644
--- a/helm/csi-powerstore/templates/controller.yaml
+++ b/helm/csi-powerstore/templates/controller.yaml
@@ -223,7 +223,7 @@ spec:
{{ if .Values.dev.enableTracing }}{{- include "pstore.tracing" . | nindent 8 }}{{ end }}
{{- end }}
- name: attacher
- image: {{ required "Must provide the CSI attacher container image." ( include "csi-powerstore.attacherImage" . ) }}
+ image: {{ .Values.controller.attacher.image }}
imagePullPolicy: {{ .Values.imagePullPolicy }}
args:
- "--csi-address=$(ADDRESS)"
@@ -241,7 +241,7 @@ spec:
{{- if hasKey .Values.controller "resizer" }}
{{- if eq .Values.controller.resizer.enabled true }}
- name: resizer
- image: {{ required "Must provide the CSI resizer container image." ( include "csi-powerstore.resizerImage" . ) }}
+ image: {{ .Values.controller.resizer.image }}
imagePullPolicy: {{ .Values.imagePullPolicy }}
args:
- "--csi-address=$(ADDRESS)"
@@ -256,7 +256,7 @@ spec:
{{end}}
{{end}}
- name: provisioner
- image: {{ required "Must provide the CSI provisioner container image." ( include "csi-powerstore.provisionerImage" . ) }}
+ image: {{ .Values.controller.provisioner.image }}
imagePullPolicy: {{ .Values.imagePullPolicy }}
args:
- "--csi-address=$(ADDRESS)"
@@ -287,7 +287,7 @@ spec:
{{- if hasKey .Values.controller "snapshot" }}
{{- if eq .Values.controller.snapshot.enabled true }}
- name: snapshotter
- image: {{ required "Must provide the CSI snapshotter container image." ( include "csi-powerstore.snapshotterImage" . ) }}
+ image: {{ .Values.controller.snapshot.image }}
imagePullPolicy: {{ .Values.imagePullPolicy }}
args:
- "--csi-address=$(ADDRESS)"
@@ -346,7 +346,7 @@ spec:
{{- if hasKey .Values.controller "healthMonitor" }}
{{- if eq .Values.controller.healthMonitor.enabled true}}
- name: csi-external-health-monitor-controller
- image: {{ required "Must provide the CSI external health monitor controller image." ( include "csi-powerstore.healthmonitorImage" . ) }}
+ image: {{ .Values.controller.healthMonitor.image }}
imagePullPolicy: {{ .Values.imagePullPolicy }}
args:
- "--v=5"
@@ -365,7 +365,7 @@ spec:
{{- end }}
{{- end }}
- name: csi-metadata-retriever
- image: {{ required "Must provide the CSI Metadata retriever container image." .Values.controller.metadataretriever }}
+ image: {{ .Values.controller.metadataretriever.image }}
imagePullPolicy: {{ .Values.imagePullPolicy }}
command: [ "/csi-metadata-retriever" ]
env:
@@ -380,7 +380,7 @@ spec:
- name: socket-dir
mountPath: /var/run/csi
- name: driver
- image: {{ required "Must provide the PowerStore driver image repository." .Values.images.driverRepository }}/{{ .Chart.Name }}:{{ .Values.version }}
+ image: {{ .Values.driver.image }}
imagePullPolicy: {{ .Values.imagePullPolicy }}
command: [ "/csi-powerstore" ]
env:
diff --git a/helm/csi-powerstore/templates/node.yaml b/helm/csi-powerstore/templates/node.yaml
index f09982d..643293f 100644
--- a/helm/csi-powerstore/templates/node.yaml
+++ b/helm/csi-powerstore/templates/node.yaml
@@ -171,7 +171,7 @@ spec:
capabilities:
add: ["SYS_ADMIN"]
allowPrivilegeEscalation: true
- image: {{ required "Must provide the Powerstore driver image repository." .Values.images.driverRepository }}/{{ .Chart.Name }}:{{ .Values.version }}
+ image: {{ .Values.driver.image }}
imagePullPolicy: {{ .Values.imagePullPolicy }}
command: [ "/csi-powerstore" ]
env:
@@ -264,7 +264,7 @@ spec:
- name: powerstore-config-params
mountPath: /powerstore-config-params
- name: registrar
- image: {{ required "Must provide the CSI node registrar container image." ( include "csi-powerstore.registrarImage" . ) }}
+ image: {{ .Values.node.registrar.image }}
imagePullPolicy: {{ .Values.imagePullPolicy }}
args:
- "--v=5"
--
2.25.1

View File

@ -0,0 +1,45 @@
From f503be00bbb03b30fda3c8f4ab4b4ca1d1ac7ac9 Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Thu, 20 Apr 2023 09:05:14 -0300
Subject: [PATCH] csi-powerstore: fix pull image error
This patch consists of adding imagePullSecrets with name
default-registry-key only in ServiceAccounts.
It's necessary because without it the system can't use the
images from the registry local.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
helm/csi-powerstore/templates/controller.yaml | 2 ++
helm/csi-powerstore/templates/node.yaml | 2 ++
2 files changed, 4 insertions(+)
diff --git a/helm/csi-powerstore/templates/controller.yaml b/helm/csi-powerstore/templates/controller.yaml
index 097084b..73211b0 100644
--- a/helm/csi-powerstore/templates/controller.yaml
+++ b/helm/csi-powerstore/templates/controller.yaml
@@ -19,6 +19,8 @@ kind: ServiceAccount
metadata:
name: {{ .Release.Name }}-controller
namespace: {{ .Release.Namespace }}
+imagePullSecrets:
+ - name: default-registry-key
---
diff --git a/helm/csi-powerstore/templates/node.yaml b/helm/csi-powerstore/templates/node.yaml
index 643293f..a5f2b29 100644
--- a/helm/csi-powerstore/templates/node.yaml
+++ b/helm/csi-powerstore/templates/node.yaml
@@ -19,6 +19,8 @@ kind: ServiceAccount
metadata:
name: {{ .Release.Name }}-node
namespace: {{ .Release.Namespace }}
+imagePullSecrets:
+ - name: default-registry-key
---
--
2.25.1

View File

@ -0,0 +1,88 @@
From dd84d0b9e2671c405941056bdb7fc8f4cd8c1baa Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Wed, 26 Apr 2023 15:10:04 -0300
Subject: [PATCH] csi-powerstore: add separator after comments
This patch consists of adding separator between header comments and
the resources.
It's necessary because the helm couldn't render the chart and it
had been fixed by adding this separator that indicates when
the resource starts.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
helm/csi-powerstore/Chart.yaml | 2 ++
helm/csi-powerstore/templates/controller.yaml | 2 ++
helm/csi-powerstore/templates/csidriver.yaml | 2 ++
helm/csi-powerstore/templates/driver-config-params.yaml | 2 ++
helm/csi-powerstore/templates/node.yaml | 2 ++
5 files changed, 10 insertions(+)
diff --git a/helm/csi-powerstore/Chart.yaml b/helm/csi-powerstore/Chart.yaml
index 84aede7..73dd269 100644
--- a/helm/csi-powerstore/Chart.yaml
+++ b/helm/csi-powerstore/Chart.yaml
@@ -14,6 +14,8 @@
#
#
+---
+
name: csi-powerstore
apiVersion: v2
version: 2.6.0
diff --git a/helm/csi-powerstore/templates/controller.yaml b/helm/csi-powerstore/templates/controller.yaml
index 73211b0..622a3c9 100644
--- a/helm/csi-powerstore/templates/controller.yaml
+++ b/helm/csi-powerstore/templates/controller.yaml
@@ -14,6 +14,8 @@
#
#
+---
+
apiVersion: v1
kind: ServiceAccount
metadata:
diff --git a/helm/csi-powerstore/templates/csidriver.yaml b/helm/csi-powerstore/templates/csidriver.yaml
index 2cca097..4724c4f 100644
--- a/helm/csi-powerstore/templates/csidriver.yaml
+++ b/helm/csi-powerstore/templates/csidriver.yaml
@@ -14,6 +14,8 @@
#
#
+---
+
apiVersion: storage.k8s.io/v1
kind: CSIDriver
metadata:
diff --git a/helm/csi-powerstore/templates/driver-config-params.yaml b/helm/csi-powerstore/templates/driver-config-params.yaml
index 0c8f07c..06bad1e 100644
--- a/helm/csi-powerstore/templates/driver-config-params.yaml
+++ b/helm/csi-powerstore/templates/driver-config-params.yaml
@@ -14,6 +14,8 @@
#
#
+---
+
apiVersion: v1
kind: ConfigMap
metadata:
diff --git a/helm/csi-powerstore/templates/node.yaml b/helm/csi-powerstore/templates/node.yaml
index a5f2b29..c06ef03 100644
--- a/helm/csi-powerstore/templates/node.yaml
+++ b/helm/csi-powerstore/templates/node.yaml
@@ -14,6 +14,8 @@
#
#
+---
+
apiVersion: v1
kind: ServiceAccount
metadata:
--
2.25.1

View File

@ -0,0 +1,203 @@
From 28a21b6fe89bccee4c5e3d8bc9cfd5f773a9d01c Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Thu, 1 Jun 2023 10:49:55 -0300
Subject: [PATCH] csi-powerstore: enabling csm-resiliency
This patch consists of changing the format of the values in templates and
changing the values.yaml for the user be able to enable csm-resiliency.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
helm/csi-powerstore/templates/controller.yaml | 12 ++---
.../templates/driver-config-params.yaml | 2 +-
helm/csi-powerstore/templates/node.yaml | 12 ++---
helm/csi-powerstore/values.yaml | 50 ++++++++++---------
4 files changed, 39 insertions(+), 37 deletions(-)
diff --git a/helm/csi-powerstore/templates/controller.yaml b/helm/csi-powerstore/templates/controller.yaml
index 622a3c9..b9a7a92 100644
--- a/helm/csi-powerstore/templates/controller.yaml
+++ b/helm/csi-powerstore/templates/controller.yaml
@@ -40,7 +40,7 @@ rules:
- apiGroups: [""]
resources: ["nodes"]
{{- if hasKey .Values "podmon" }}
- {{- if eq .Values.podmon.enabled true }}
+ {{- if .Values.csm.resiliency }}
verbs: ["get", "list", "watch", "patch"]
{{- else }}
verbs: ["get", "list", "watch"]
@@ -58,7 +58,7 @@ rules:
- apiGroups: ["storage.k8s.io"]
resources: ["volumeattachments"]
{{- if hasKey .Values "podmon" }}
- {{- if eq .Values.podmon.enabled true }}
+ {{- if .Values.csm.resiliency }}
verbs: ["get", "list", "watch", "update", "patch", "delete"]
{{- else }}
verbs: ["get", "list", "watch", "update", "patch"]
@@ -98,7 +98,7 @@ rules:
- apiGroups: [""]
resources: ["pods"]
{{- if hasKey .Values "podmon" }}
- {{- if eq .Values.podmon.enabled true }}
+ {{- if .Values.csm.resiliency }}
verbs: ["get", "list", "watch", "update", "delete"]
{{- else }}
verbs: ["get", "list", "watch"]
@@ -197,7 +197,7 @@ spec:
topologyKey: "kubernetes.io/hostname"
containers:
{{- if hasKey .Values "podmon" }}
- {{- if eq .Values.podmon.enabled true }}
+ {{- if .Values.csm.resiliency }}
- name: podmon
image: {{ required "Must provide the podmon container image." .Values.podmon.image }}
imagePullPolicy: {{ .Values.imagePullPolicy }}
@@ -411,8 +411,8 @@ spec:
value: /powerstore-config-params/driver-config-params.yaml
{{- if hasKey .Values "podmon" }}
- name: X_CSI_PODMON_ENABLED
- value: "{{ .Values.podmon.enabled }}"
- {{- if eq .Values.podmon.enabled true }}
+ value: "{{ .Values.csm.resiliency }}"
+ {{- if .Values.csm.resiliency }}
{{- range $key, $value := .Values.podmon.controller.args }}
{{- if contains "--arrayConnectivityPollRate" $value }}
- name: X_CSI_PODMON_ARRAY_CONNECTIVITY_POLL_RATE
diff --git a/helm/csi-powerstore/templates/driver-config-params.yaml b/helm/csi-powerstore/templates/driver-config-params.yaml
index 06bad1e..2699580 100644
--- a/helm/csi-powerstore/templates/driver-config-params.yaml
+++ b/helm/csi-powerstore/templates/driver-config-params.yaml
@@ -25,7 +25,7 @@ data:
driver-config-params.yaml: |
CSI_LOG_LEVEL: "{{ .Values.logLevel }}"
CSI_LOG_FORMAT: "{{ .Values.logFormat }}"
- {{ if .Values.podmon.enabled }}
+ {{ if .Values.csm.resiliency }}
PODMON_CONTROLLER_LOG_LEVEL: "{{ .Values.logLevel }}"
PODMON_CONTROLLER_LOG_FORMAT: "{{ .Values.logFormat }}"
PODMON_NODE_LOG_LEVEL: "{{ .Values.logLevel }}"
diff --git a/helm/csi-powerstore/templates/node.yaml b/helm/csi-powerstore/templates/node.yaml
index c06ef03..3efa533 100644
--- a/helm/csi-powerstore/templates/node.yaml
+++ b/helm/csi-powerstore/templates/node.yaml
@@ -57,7 +57,7 @@ rules:
resources: ["securitycontextconstraints"]
verbs: ["use"]
{{- if hasKey .Values "podmon" }}
- {{- if eq .Values.podmon.enabled true }}
+ {{- if .Values.csm.resiliency }}
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch", "update", "delete"]
@@ -97,7 +97,7 @@ spec:
metadata:
labels:
app: {{ .Release.Name }}-node
- {{- if .Values.podmon.enabled }}
+ {{- if .Values.csm.resiliency }}
driver.dellemc.com: dell-storage
{{- end }}
spec:
@@ -115,7 +115,7 @@ spec:
hostIPC: true
containers:
{{- if hasKey .Values "podmon" }}
- {{- if eq .Values.podmon.enabled true }}
+ {{- if .Values.csm.resiliency }}
- name: podmon
securityContext:
privileged: true
@@ -228,8 +228,8 @@ spec:
{{- end }}
{{- if hasKey .Values "podmon" }}
- name: X_CSI_PODMON_ENABLED
- value: "{{ .Values.podmon.enabled }}"
- {{- if eq .Values.podmon.enabled true }}
+ value: "{{ .Values.csm.resiliency }}"
+ {{- if .Values.csm.resiliency }}
{{- range $key, $value := .Values.podmon.node.args }}
{{- if contains "--arrayConnectivityPollRate" $value }}
- name: X_CSI_PODMON_ARRAY_CONNECTIVITY_POLL_RATE
@@ -338,7 +338,7 @@ spec:
secret:
secretName: {{ .Release.Name }}-config
{{- if hasKey .Values "podmon" }}
- {{- if eq .Values.podmon.enabled true }}
+ {{- if .Values.csm.resiliency }}
- name: usr-bin
hostPath:
path: /usr/bin
diff --git a/helm/csi-powerstore/values.yaml b/helm/csi-powerstore/values.yaml
index 05e1c71..ba94604 100644
--- a/helm/csi-powerstore/values.yaml
+++ b/helm/csi-powerstore/values.yaml
@@ -14,6 +14,9 @@
#
#
+csm:
+ resiliency: false
+
## K8S/DRIVER ATTRIBUTES
########################
@@ -328,31 +331,30 @@ storageCapacity:
# Enable this feature only after contact support for additional information
podmon:
- enabled: false
image: dellemc/podmon:v1.5.0
- #controller:
- # args:
- # - "--csisock=unix:/var/run/csi/csi.sock"
- # - "--labelvalue=csi-powerstore"
- # - "--arrayConnectivityPollRate=60"
- # - "--driverPath=csi-powerstore.dellemc.com"
- # - "--mode=controller"
- # - "--skipArrayConnectionValidation=false"
- # - "--driver-config-params=/powerstore-config-params/driver-config-params.yaml"
- # - "--driverPodLabelValue=dell-storage"
- # - "--ignoreVolumelessPods=false"
-
- #node:
- # args:
- # - "--csisock=unix:/var/lib/kubelet/plugins/csi-powerstore.dellemc.com/csi_sock"
- # - "--labelvalue=csi-powerstore"
- # - "--arrayConnectivityPollRate=60"
- # - "--driverPath=csi-powerstore.dellemc.com"
- # - "--mode=node"
- # - "--leaderelection=false"
- # - "--driver-config-params=/powerstore-config-params/driver-config-params.yaml"
- # - "--driverPodLabelValue=dell-storage"
- # - "--ignoreVolumelessPods=false"
+ controller:
+ args:
+ - "--csisock=unix:/var/run/csi/csi.sock"
+ - "--labelvalue=csi-powerstore"
+ - "--arrayConnectivityPollRate=60"
+ - "--driverPath=csi-powerstore.dellemc.com"
+ - "--mode=controller"
+ - "--skipArrayConnectionValidation=false"
+ - "--driver-config-params=/powerstore-config-params/driver-config-params.yaml"
+ - "--driverPodLabelValue=dell-storage"
+ - "--ignoreVolumelessPods=false"
+
+ node:
+ args:
+ - "--csisock=unix:/var/lib/kubelet/plugins/csi-powerstore.dellemc.com/csi_sock"
+ - "--labelvalue=csi-powerstore"
+ - "--arrayConnectivityPollRate=60"
+ - "--driverPath=csi-powerstore.dellemc.com"
+ - "--mode=node"
+ - "--leaderelection=false"
+ - "--driver-config-params=/powerstore-config-params/driver-config-params.yaml"
+ - "--driverPodLabelValue=dell-storage"
+ - "--ignoreVolumelessPods=false"
driver:
image: dellemc/csi-powerstore:v2.6.0
--
2.25.1

View File

@ -0,0 +1,60 @@
From 665041d4e4fb45d0818a0702806f5b6bb6fe1ab9 Mon Sep 17 00:00:00 2001
From: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Date: Tue, 6 Jun 2023 15:21:59 -0300
Subject: [PATCH] csi-powerstore: enabling csm-replication
This patch consists of changing the format of the values in templates and
changing the values.yaml for the user be able to enable csm-replication.
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
---
helm/csi-powerstore/templates/controller.yaml | 6 +++---
helm/csi-powerstore/values.yaml | 1 +
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/helm/csi-powerstore/templates/controller.yaml b/helm/csi-powerstore/templates/controller.yaml
index b9a7a92..3ff2838 100644
--- a/helm/csi-powerstore/templates/controller.yaml
+++ b/helm/csi-powerstore/templates/controller.yaml
@@ -116,7 +116,7 @@ rules:
verbs: ["update", "patch"]
# below for dell-csi-replicator
{{- if hasKey .Values.controller "replication" }}
- {{- if eq .Values.controller.replication.enabled true}}
+ {{- if .Values.csm.replication }}
- apiGroups: ["replication.storage.dell.com"]
resources: ["dellcsireplicationgroups"]
verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]
@@ -320,7 +320,7 @@ spec:
{{- end }}
{{- end }}
{{- if hasKey .Values.controller "replication" }}
- {{- if eq .Values.controller.replication.enabled true}}
+ {{- if .Values.csm.replication }}
- name: dell-csi-replicator
image: {{ required "Must provide the Dell CSI Replicator image." .Values.controller.replication.image}}
imagePullPolicy: {{ .Values.imagePullPolicy }}
@@ -424,7 +424,7 @@ spec:
- name: X_CSI_PODMON_API_PORT
value: "{{ .Values.podmonAPIPort }}"
{{- if hasKey .Values.controller "replication" }}
- {{- if eq .Values.controller.replication.enabled true}}
+ {{- if .Values.csm.replication }}
- name: X_CSI_REPLICATION_CONTEXT_PREFIX
value: {{ .Values.controller.replication.replicationContextPrefix | default "powerstore"}}
- name: X_CSI_REPLICATION_PREFIX
diff --git a/helm/csi-powerstore/values.yaml b/helm/csi-powerstore/values.yaml
index ba94604..cf01d94 100644
--- a/helm/csi-powerstore/values.yaml
+++ b/helm/csi-powerstore/values.yaml
@@ -15,6 +15,7 @@
#
csm:
+ replication: false
resiliency: false
## K8S/DRIVER ATTRIBUTES
--
2.25.1

View File

@ -0,0 +1,50 @@
From 54c0c2ee9e8de68e4f7d3170131beb95d2f05106 Mon Sep 17 00:00:00 2001
From: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Date: Fri, 23 Jun 2023 11:09:38 -0300
Subject: [PATCH] csi-powerstore: add label app.starlingx.io/component
This patch consists of changing the strategy from the Deployment resource and
add the app.starlingx.io/component label in all pods.
The strategy was needed changing because in the reapply the old replicasets
were not being deleted. The default value was rollingUpdate.
In this case, it doesn't effect functionality.
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
---
helm/csi-powerstore/templates/controller.yaml | 3 +++
helm/csi-powerstore/templates/node.yaml | 1 +
2 files changed, 4 insertions(+)
diff --git a/helm/csi-powerstore/templates/controller.yaml b/helm/csi-powerstore/templates/controller.yaml
index 3ff2838..a285766 100644
--- a/helm/csi-powerstore/templates/controller.yaml
+++ b/helm/csi-powerstore/templates/controller.yaml
@@ -171,10 +171,13 @@ spec:
{{- else }}
replicas: {{ required "Must provide the number of controller instances to create." .Values.controller.controllerCount }}
{{- end }}
+ strategy:
+ type: Recreate
template:
metadata:
labels:
name: {{ .Release.Name }}-controller
+ app.starlingx.io/component: {{ index .Values "app.starlingx.io/component" }}
spec:
{{ if .Values.controller.nodeSelector }}
nodeSelector:
diff --git a/helm/csi-powerstore/templates/node.yaml b/helm/csi-powerstore/templates/node.yaml
index 3efa533..39d01bd 100644
--- a/helm/csi-powerstore/templates/node.yaml
+++ b/helm/csi-powerstore/templates/node.yaml
@@ -97,6 +97,7 @@ spec:
metadata:
labels:
app: {{ .Release.Name }}-node
+ app.starlingx.io/component: {{ index .Values "app.starlingx.io/component" }}
{{- if .Values.csm.resiliency }}
driver.dellemc.com: dell-storage
{{- end }}
--
2.25.1

View File

@ -0,0 +1,9 @@
0001-csi-powerstore-add-default-values-for-templates.patch
0002-csi-powerstore-add-secret-in-templates.patch
0003-csi-powerstore-add-storageclass-in-templates.patch
0004-csi-powerstore-fix-image-path-for-templates.patch
0005-csi-powerstore-fix-pull-image-error.patch
0006-csi-powerstore-add-separator-after-comments.patch
0007-csi-powerstore-enabling-csm-resiliency.patch
0008-csi-powerstore-enabling-csm-replication.patch
0009-csi-powerstore-add-label-app.starlingx.io-component.patch

View File

@ -0,0 +1,20 @@
#!/usr/bin/make -f
export DH_VERBOSE = 1
export ROOT = debian/tmp
export APP_FOLDER = $(ROOT)/usr/lib/helm
%:
dh $@
override_dh_auto_build:
cp Makefile helm
cd helm && make csi-powerstore
override_dh_auto_install:
# Install the app tar file.
install -d -m 755 $(APP_FOLDER)
install -p -D -m 755 helm/csi-powerstore*.tgz $(APP_FOLDER)
override_dh_auto_test:

View File

@ -0,0 +1 @@
3.0 (quilt)

View File

@ -0,0 +1,14 @@
---
debname: csi-powerstore-helm
debver: 2.6-0
dl_path:
name: csi-powerstore-2.6.0.tar.gz
url: https://github.com/dell/csi-powerstore/archive/v2.6.0.tar.gz
sha256sum: 3130a9ba894935e8b4dba8124e0adf5b39601ce7cf5070dde7aa7ade35c57d12
src_files:
- csi-powerstore-helm/files/Makefile
revision:
dist: $STX_DIST
GITREVCOUNT:
BASE_SRCREV: 8db8f63466df064069133380243443e3822fa8ce
SRC_DIR: ${MY_REPO}/stx/app-dell-storage/csi-powerstore-helm

View File

@ -0,0 +1,42 @@
#
# Copyright 2017 The Openstack-Helm Authors.
#
# Copyright (c) 2023 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
# It's necessary to set this because some environments don't link sh -> bash.
SHELL := /bin/bash
TASK := build
EXCLUDES := doc tests tools logs tmp
CHARTS := $(filter-out $(EXCLUDES), $(patsubst %/.,%,$(wildcard */.)))
.PHONY: $(EXCLUDES) $(CHARTS)
all: $(CHARTS)
$(CHARTS):
@if [ -d $@ ]; then \
echo; \
echo "===== Processing [$@] chart ====="; \
make $(TASK)-$@; \
fi
init-%:
if [ -f $*/Makefile ]; then make -C $*; fi
lint-%: init-%
if [ -d $* ]; then helm lint $*; fi
build-%: lint-%
if [ -d $* ]; then helm package $*; fi
clean:
@echo "Clean all build artifacts"
rm -f */templates/_partials.tpl */templates/_globals.tpl
rm -f *tgz */charts/*tgz
rm -rf */charts */tmpcharts
%:
@:

View File

@ -0,0 +1,5 @@
csi-unity-helm (2.6-0) unstable; urgency=medium
* Initial release.
-- Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com> Thu, 30 Mar 2023 15:15:00 +0000

View File

@ -0,0 +1,15 @@
Source: csi-unity-helm
Section: libs
Priority: optional
Maintainer: StarlingX Developers <starlingx-discuss@lists.starlingx.io>
Build-Depends: debhelper-compat (= 13),
helm
Standards-Version: 4.5.1
Homepage: https://www.starlingx.io
Package: csi-unity-helm
Section: libs
Architecture: any
Depends: ${misc:Depends}
Description: StarlingX Dell Unity CSI Helm Charts
This package contains helm charts for the Dell Unity CSI.

View File

@ -0,0 +1,41 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: csi-unity-helm
Source: https://opendev.org/starlingx/app-dell-storage/
Files: *
Copyright: (c) 2023 Wind River Systems, Inc
License: Apache-2
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
https://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian-based systems the full text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.
# If you want to use GPL v2 or later for the /debian/* files use
# the following clauses, or change it to suit. Delete these two lines
Files: debian/*
Copyright: 2022 Wind River Systems, Inc
License: Apache-2
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
https://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian-based systems the full text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.

View File

@ -0,0 +1 @@
usr/lib/helm/*

View File

@ -0,0 +1,27 @@
From cfecebf4241f9a2c4bcd6bfe35ec3fbe89bc618a Mon Sep 17 00:00:00 2001
From: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Date: Fri, 31 Mar 2023 15:06:16 -0300
Subject: [PATCH] csi-unity: add apiVersion
This patch consists of adding apiVersion on Chart.yaml required by helm lint.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
helm/csi-unity/Chart.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/helm/csi-unity/Chart.yaml b/helm/csi-unity/Chart.yaml
index eddbb7a..a2f8d8e 100644
--- a/helm/csi-unity/Chart.yaml
+++ b/helm/csi-unity/Chart.yaml
@@ -1,6 +1,7 @@
name: csi-unity
version: 2.6.0
appVersion: 2.6.0
+apiVersion: v2
kubeVersion: ">= 1.24.0 < 1.27.0"
# If you are using a complex K8s version like "v1.24.3-mirantis-1", use this kubeVersion check instead
# WARNING: this version of the check will allow the use of alpha and beta versions, which is NOT SUPPORTED
--
2.25.1

View File

@ -0,0 +1,42 @@
From d6f8affedf697be6d05d84295c70d2d07f1f49af Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Fri, 14 Apr 2023 11:07:05 -0300
Subject: [PATCH] csi-unity: add secret in templates
This patch consists of adding a secret in the helm chart templates directory.
It's needed because this helm chart needs a config secret that should be
created manually.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
helm/csi-unity/templates/secret.yaml | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
create mode 100644 helm/csi-unity/templates/secret.yaml
diff --git a/helm/csi-unity/templates/secret.yaml b/helm/csi-unity/templates/secret.yaml
new file mode 100644
index 0000000..6ba704f
--- /dev/null
+++ b/helm/csi-unity/templates/secret.yaml
@@ -0,0 +1,18 @@
+{{- if .Values.secrets.create }}
+apiVersion: v1
+kind: Secret
+metadata:
+ name: {{ .Release.Name }}-creds
+ namespace: {{ .Release.Namespace }}
+stringData:
+ config: |
+ storageArrayList:
+ {{- range .Values.secrets.arrays }}
+ - arrayId: "{{ .arrayId }}"
+ username: "{{ .username }}"
+ password: "{{ .password }}"
+ endpoint: "{{ .endpoint }}"
+ skipCertificateValidation: {{ .skipCertificateValidation | default "true" }}
+ isDefault: {{ .isDefault | default "false" }}
+ {{- end }}
+{{- end }}
--
2.25.1

View File

@ -0,0 +1,74 @@
From 72e2fe6e83f2442c701d3d0dee6bbd0d37a8e383 Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Thu, 6 Apr 2023 08:41:07 -0300
Subject: [PATCH] csi-unity: add storageclass in templates
This patch consists of adding a storage classes in the helm chart templates directory.
It's needed because this helm chart needs a storage classes that should be
created manually.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
helm/csi-unity/templates/storageclass.yaml | 50 ++++++++++++++++++++++
1 file changed, 50 insertions(+)
create mode 100644 helm/csi-unity/templates/storageclass.yaml
diff --git a/helm/csi-unity/templates/storageclass.yaml b/helm/csi-unity/templates/storageclass.yaml
new file mode 100644
index 0000000..fc80870
--- /dev/null
+++ b/helm/csi-unity/templates/storageclass.yaml
@@ -0,0 +1,50 @@
+{{- range $sc := .Values.storageClasses }}
+---
+apiVersion: storage.k8s.io/v1
+kind: StorageClass
+metadata:
+{{- if or $sc.name (and $sc.arrayId $sc.protocol)}}
+ name: {{ $sc.name | default ( print "unity-" $sc.arrayId "-" $sc.protocol | lower ) }}
+{{- else if $sc.arrayId }}
+ name: {{ print "unity-" $sc.arrayId "-nfs" | lower }}
+{{- end }}
+provisioner: {{ $sc.provisioner | default ( print "csi-unity.dellemc.com" ) }}
+reclaimPolicy: {{ $sc.reclaimPolicy | default "Delete" }}
+allowVolumeExpansion: {{ $sc.allowVolumeExpansion | default "true" }}
+volumeBindingMode: {{ $sc.volumeBindingMode | default "Immediate" }}
+parameters:
+ protocol: {{ $sc.protocol | default "NFS" }}
+{{- if $sc.arrayId }}
+ arrayId: {{ $sc.arrayId }}
+{{- end }}
+{{- if $sc.storagePool }}
+ storagePool: {{ $sc.storagePool }}
+{{- end }}
+ thinProvisioned: "{{- $sc.thinProvisioned | default true }}"
+ isDataReductionEnabled: "{{- $sc.isDataReductionEnabled | default true }}"
+{{- if $sc.tieringPolicy }}
+ tieringPolicy: "{{ $sc.tieringPolicy }}"
+{{- end }}
+{{- if and ($sc.nasServer) (eq $sc.protocol "NFS") }}
+ nasServer: {{ $sc.nasServer }}
+{{- end }}
+{{- if $sc.hostIOLimitName }}
+ hostIOLimitName: "{{ $sc.hostIOLimitName }}"
+{{- end }}
+ hostIoSize: "{{ $sc.hostIoSize | default 8192 }}"
+{{- if $sc.fstype }}
+ csi.storage.k8s.io/fstype: {{ $sc.fstype | lower | default "nfs" }}
+{{- end }}
+{{- if $sc.allowedTopologies }}
+allowedTopologies:
+ {{ $sc.allowedTopologies | toYaml | nindent 4 }}
+{{- end }}
+{{- if eq $sc.protocol "NFS" }}
+mountOptions: {{ $sc.mountOptions | default "['hard']" }}
+{{- else if $sc.protocol }}
+mountOptions: {{ $sc.mountOptions | default "[]" }}
+{{- else }}
+mountOptions: {{ $sc.mountOptions | default "['hard']" }}
+{{- end }}
+---
+{{- end }}
--
2.25.1

View File

@ -0,0 +1,91 @@
From ece820e424964f21bc8112b4ccdd0d770d65fb63 Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Thu, 27 Apr 2023 11:56:59 -0300
Subject: [PATCH] csi-unity: add default values for templates
This patch consists of adding the default values in the values.yaml of
the helm chart.
It's necessary because the images in templates were in unexpected format
for the system and because templates need default values to be able
to build the package.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
helm/csi-unity/values.yaml | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/helm/csi-unity/values.yaml b/helm/csi-unity/values.yaml
index 81201fa..8a54909 100644
--- a/helm/csi-unity/values.yaml
+++ b/helm/csi-unity/values.yaml
@@ -54,6 +54,11 @@ controller:
# Default value: None
volumeNamePrefix: csivol
+ attacher:
+ image: "k8s.gcr.io/sig-storage/csi-attacher:v4.2.0"
+ provisioner:
+ image: "k8s.gcr.io/sig-storage/csi-provisioner:v3.4.0"
+
snapshot:
# enabled: Enable/Disable volume snapshot feature
# Allowed values:
@@ -61,6 +66,7 @@ controller:
# false: disable volume snapshot feature(do not install snapshotter sidecar)
# Default value: None
enabled: true
+ image: "k8s.gcr.io/sig-storage/csi-snapshotter:v6.2.1"
# snapNamePrefix: Prefix to apply to the names of a created snapshots
# Allowed values: string
@@ -74,6 +80,7 @@ controller:
# false: disable volume snapshot feature(do not install resizer sidecar)
# Default value: None
enabled: true
+ image: "k8s.gcr.io/sig-storage/csi-resizer:v1.7.0"
# nodeSelector: Define node selection constraints for controller pods.
# For the pod to be eligible to run on a node, the node must have each
@@ -107,6 +114,7 @@ controller:
# false: disable checking of health condition of CSI volumes
# Default value: None
enabled: false
+ image: "gcr.io/k8s-staging-sig-storage/csi-external-health-monitor-controller:v0.8.0"
# interval: Interval of monitoring volume health condition
# Allowed values: Number followed by unit of time (s,m,h)
@@ -122,6 +130,9 @@ node:
# Default value: None
dnsPolicy: "ClusterFirstWithHostNet"
+ registrar:
+ image: "k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.6.3"
+
healthMonitor:
# enabled: Enable/Disable health monitor of CSI Volumes - volume usage
# Allowed values:
@@ -215,6 +226,12 @@ podmon:
# - "--driverPodLabelValue=dell-storage"
# - "--ignoreVolumelessPods=false"
+storageClasses:
+
+secrets:
+ create: true
+ array:
+
### The below parameters have been discontinued for configuration from secret.yaml and will have to be configured only in values.yaml
# syncNodeInfoInterval - Time interval to add node info to array. Default 15 minutes. Minimum value should be 1.
@@ -241,6 +258,5 @@ maxUnityVolumesPerNode: 0
# Examples : "tenant2" , "tenant3"
tenantName: ""
-images:
- # "driver" defines the container image, used for the driver container.
- driverRepository: dellemc
+driver:
+ image: "dellemc/csi-unity:v2.6.0"
--
2.25.1

View File

@ -0,0 +1,115 @@
From a1685071795a8137752e6d7014484dfc5575e2bb Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Thu, 27 Apr 2023 12:03:16 -0300
Subject: [PATCH] csi-unity: fix image path for templates
This patch consists of changing the format to use the image path directly
following the expected format used by kube_app.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
helm/csi-unity/templates/controller.yaml | 14 +++++++-------
helm/csi-unity/templates/node.yaml | 6 +++---
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/helm/csi-unity/templates/controller.yaml b/helm/csi-unity/templates/controller.yaml
index 2cf8172..d1bafbc 100644
--- a/helm/csi-unity/templates/controller.yaml
+++ b/helm/csi-unity/templates/controller.yaml
@@ -140,7 +140,7 @@ spec:
{{- if .Values.podmon.enabled }}
- name: podmon
imagePullPolicy: {{ .Values.imagePullPolicy }}
- image: {{ required "Must provide the podmon container image." .Values.podmon.image }}
+ image: {{ .Values.podmon.image }}
args:
{{- toYaml .Values.podmon.controller.args | nindent 12 }}
env:
@@ -163,7 +163,7 @@ spec:
mountPath: /unity-config
{{- end }}
- name: attacher
- image: {{ required "Must provide the CSI attacher container image." ( include "csi-unity.attacherImage" . ) }}
+ image: {{ .Values.controller.attacher.image }}
args:
- "--csi-address=$(ADDRESS)"
- "--v=5"
@@ -175,7 +175,7 @@ spec:
- name: socket-dir
mountPath: /var/run/csi
- name: provisioner
- image: {{ required "Must provide the CSI provisioner container image." ( include "csi-unity.provisionerImage" . ) }}
+ image: {{ .Values.controller.provisioner.image }}
args:
- "--csi-address=$(ADDRESS)"
- "--volume-name-prefix={{ required "Must provide a Volume Name Prefix." .Values.controller.volumeNamePrefix }}"
@@ -197,7 +197,7 @@ spec:
{{- if hasKey .Values.controller "snapshot" }}
{{- if eq .Values.controller.snapshot.enabled true }}
- name: snapshotter
- image: {{ required "Must provide the CSI snapshotter container image. " ( include "csi-unity.snapshotterImage" . ) }}
+ image: {{ .Values.controller.snapshot.image }}
args:
- "--csi-address=$(ADDRESS)"
- "--snapshot-name-prefix={{ required "Must privided a Snapshot Name Prefix" .Values.controller.snapshot.snapNamePrefix }}"
@@ -216,7 +216,7 @@ spec:
{{- if hasKey .Values.controller "resizer" }}
{{- if eq .Values.controller.resizer.enabled true }}
- name: resizer
- image: {{ required "Must provide the CSI resizer container image." ( include "csi-unity.resizerImage" . ) }}
+ image: {{ .Values.controller.resizer.image }}
args:
- "--csi-address=$(ADDRESS)"
- "--v=5"
@@ -232,7 +232,7 @@ spec:
{{- if hasKey .Values.controller "healthMonitor" }}
{{- if eq .Values.controller.healthMonitor.enabled true }}
- name: csi-external-health-monitor-controller
- image: {{ required "Must provide the CSI external health monitor image." ( include "csi-unity.healthmonitorImage" . ) }}
+ image: {{ .Values.controller.healthMonitor.image }}
imagePullPolicy: {{ .Values.imagePullPolicy }}
args:
- "--v=5"
@@ -251,7 +251,7 @@ spec:
{{- end }}
{{- end }}
- name: driver
- image: "{{ required "Must provide the driver image repository." .Values.images.driverRepository }}/{{ .Chart.Name }}:{{ .Values.version }}"
+ image: {{ .Values.driver.image }}
args:
- "--driver-name=csi-unity.dellemc.com"
- "--driver-config=/unity-config/driver-config-params.yaml"
diff --git a/helm/csi-unity/templates/node.yaml b/helm/csi-unity/templates/node.yaml
index d013812..319d2dd 100644
--- a/helm/csi-unity/templates/node.yaml
+++ b/helm/csi-unity/templates/node.yaml
@@ -97,7 +97,7 @@ spec:
add: ["SYS_ADMIN"]
allowPrivilegeEscalation: true
imagePullPolicy: {{ .Values.imagePullPolicy }}
- image: {{ required "Must provide the podmon container image." .Values.podmon.image }}
+ image: {{ .Values.podmon.image }}
args:
{{- toYaml .Values.podmon.node.args | nindent 12 }}
env:
@@ -145,7 +145,7 @@ spec:
capabilities:
add: ["SYS_ADMIN"]
allowPrivilegeEscalation: true
- image: "{{ required "Must provide the driver image repository." .Values.images.driverRepository }}/{{ .Chart.Name }}:{{ .Values.version }}"
+ image: {{ .Values.driver.image }}
args:
- "--driver-name=csi-unity.dellemc.com"
- "--driver-config=/unity-config/driver-config-params.yaml"
@@ -204,7 +204,7 @@ spec:
- name: unity-secret
mountPath: /unity-secret
- name: registrar
- image: {{ required "Must provide the CSI registrar container image." ( include "csi-unity.registrarImage" . ) }}
+ image: {{ .Values.node.registrar.image }}
args:
- "--v=5"
- "--csi-address=$(ADDRESS)"
--
2.25.1

View File

@ -0,0 +1,45 @@
From fad53c21edbdf1574ff8b210beee115b22b9d556 Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Fri, 14 Apr 2023 13:26:41 -0300
Subject: [PATCH] csi-unity: fix pull image error
This patch consists of adding imagePullSecrets with name
default-registry-key only in ServiceAccounts.
It's necessary because without it the system can't use the
images from the registry local.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
helm/csi-unity/templates/controller.yaml | 2 ++
helm/csi-unity/templates/node.yaml | 2 ++
2 files changed, 4 insertions(+)
diff --git a/helm/csi-unity/templates/controller.yaml b/helm/csi-unity/templates/controller.yaml
index 7c534c4..70dd4ee 100644
--- a/helm/csi-unity/templates/controller.yaml
+++ b/helm/csi-unity/templates/controller.yaml
@@ -4,6 +4,8 @@ kind: ServiceAccount
metadata:
name: {{ .Release.Name }}-controller
namespace: {{ .Release.Namespace }}
+imagePullSecrets:
+ - name: default-registry-key
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
diff --git a/helm/csi-unity/templates/node.yaml b/helm/csi-unity/templates/node.yaml
index df9378e..d68b64c 100644
--- a/helm/csi-unity/templates/node.yaml
+++ b/helm/csi-unity/templates/node.yaml
@@ -4,6 +4,8 @@ kind: ServiceAccount
metadata:
name: {{ .Release.Name }}-node
namespace: {{ .Release.Namespace }}
+imagePullSecrets:
+ - name: default-registry-key
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
--
2.25.1

View File

@ -0,0 +1,32 @@
From b3850d77ac953db0adb3389a53a7a8b2b8f57282 Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Fri, 14 Apr 2023 13:32:13 -0300
Subject: [PATCH] csi-unity: add secretcert in templates
This patch consists in add an extra secret containing the https certificate
that is used by the helm chart.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
helm/csi-unity/templates/secretcert.yaml | 9 +++++++++
1 file changed, 9 insertions(+)
create mode 100644 helm/csi-unity/templates/secretcert.yaml
diff --git a/helm/csi-unity/templates/secretcert.yaml b/helm/csi-unity/templates/secretcert.yaml
new file mode 100644
index 0000000..bf46b33
--- /dev/null
+++ b/helm/csi-unity/templates/secretcert.yaml
@@ -0,0 +1,9 @@
+{{- if .Values.secrets.create }}
+apiVersion: v1
+kind: Secret
+metadata:
+ name: {{ .Release.Name }}-certs-0
+ namespace: {{ .Release.Namespace }}
+stringData:
+ cert-0: {{ .Values.certSecret | default "" | quote }}
+{{- end }}
--
2.25.1

View File

@ -0,0 +1,173 @@
From 3552dc6b6c607ceab07d7c07c1df9aa083e96109 Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Thu, 15 Jun 2023 08:58:51 -0300
Subject: [PATCH] csi-unity: enabling csm-resiliency
This patch consists of changing the format of the values in templates and
changing the values.yaml for the user be able to enable csm-resiliency.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
helm/csi-unity/templates/controller.yaml | 8 ++--
.../templates/driver-config-params.yaml | 2 +-
helm/csi-unity/templates/node.yaml | 8 ++--
helm/csi-unity/values.yaml | 43 ++++++++++---------
4 files changed, 32 insertions(+), 29 deletions(-)
diff --git a/helm/csi-unity/templates/controller.yaml b/helm/csi-unity/templates/controller.yaml
index ec856fc..8898988 100644
--- a/helm/csi-unity/templates/controller.yaml
+++ b/helm/csi-unity/templates/controller.yaml
@@ -19,7 +19,7 @@ rules:
verbs: ["list", "watch", "create", "update", "patch"]
- apiGroups: [""]
resources: ["nodes"]
-{{- if .Values.podmon.enabled }}
+{{- if .Values.csm.resiliency }}
verbs: ["get", "list", "watch", "patch"]
{{- else }}
verbs: ["get", "list", "watch"]
@@ -35,7 +35,7 @@ rules:
verbs: ["get", "list", "watch"]
- apiGroups: ["storage.k8s.io"]
resources: ["volumeattachments"]
-{{- if .Values.podmon.enabled }}
+{{- if .Values.csm.resiliency }}
verbs: ["get", "list", "watch", "update", "patch", "delete"]
{{- else }}
verbs: ["get", "list", "watch", "update","patch"]
@@ -51,7 +51,7 @@ rules:
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["pods"]
-{{- if .Values.podmon.enabled }}
+{{- if .Values.csm.resiliency }}
verbs: ["get", "list", "watch", "update", "delete"]
{{- else }}
verbs: ["get", "list", "watch"]
@@ -139,7 +139,7 @@ spec:
{{- toYaml .Values.controller.tolerations | nindent 6 }}
{{- end }}
containers:
-{{- if .Values.podmon.enabled }}
+{{- if .Values.csm.resiliency }}
- name: podmon
imagePullPolicy: {{ .Values.imagePullPolicy }}
image: {{ .Values.podmon.image }}
diff --git a/helm/csi-unity/templates/driver-config-params.yaml b/helm/csi-unity/templates/driver-config-params.yaml
index 2bbf894..d8b2d56 100644
--- a/helm/csi-unity/templates/driver-config-params.yaml
+++ b/helm/csi-unity/templates/driver-config-params.yaml
@@ -10,7 +10,7 @@ data:
MAX_UNITY_VOLUMES_PER_NODE: "{{ .Values.maxUnityVolumesPerNode }}"
SYNC_NODE_INFO_TIME_INTERVAL: "{{ .Values.syncNodeInfoInterval }}"
TENANT_NAME: "{{ .Values.tenantName }}"
- {{ if .Values.podmon.enabled }}
+ {{ if .Values.csm.resiliency }}
PODMON_CONTROLLER_LOG_LEVEL: "{{ .Values.logLevel }}"
PODMON_CONTROLLER_LOG_FORMAT: "TEXT"
PODMON_NODE_LOG_LEVEL: "{{ .Values.logLevel }}"
diff --git a/helm/csi-unity/templates/node.yaml b/helm/csi-unity/templates/node.yaml
index 671e690..872f6d8 100644
--- a/helm/csi-unity/templates/node.yaml
+++ b/helm/csi-unity/templates/node.yaml
@@ -36,7 +36,7 @@ rules:
resourceNames: [ "privileged" ]
resources: [ "securitycontextconstraints" ]
verbs: [ "use" ]
-{{- if .Values.podmon.enabled }}
+{{- if .Values.csm.resiliency }}
- apiGroups: [ "" ]
resources: [ "pods" ]
verbs: [ "get", "list", "watch", "update", "delete" ]
@@ -74,7 +74,7 @@ spec:
metadata:
labels:
app: {{ .Release.Name }}-node
-{{- if .Values.podmon.enabled }}
+{{- if .Values.csm.resiliency }}
driver.dellemc.com: dell-storage
{{- end }}
spec:
@@ -91,7 +91,7 @@ spec:
hostNetwork: true
dnsPolicy: {{ .Values.node.dnsPolicy }}
containers:
-{{- if .Values.podmon.enabled }}
+{{- if .Values.csm.resiliency }}
- name: podmon
securityContext:
privileged: true
@@ -265,7 +265,7 @@ spec:
- name: unity-secret
secret:
secretName: {{ .Release.Name }}-creds
-{{- if .Values.podmon.enabled }}
+{{- if .Values.csm.resiliency }}
- name: usr-bin
hostPath:
path: /usr/bin
diff --git a/helm/csi-unity/values.yaml b/helm/csi-unity/values.yaml
index 8a54909..6b68af0 100644
--- a/helm/csi-unity/values.yaml
+++ b/helm/csi-unity/values.yaml
@@ -1,6 +1,9 @@
## K8S/DRIVER ATTRIBUTES
########################
+csm:
+ resiliency: false
+
# version: version of this values file
# Note: Do not change this value
# Examples : "v2.6.0" , "nightly"
@@ -205,26 +208,26 @@ podmon:
# default value : None
# Example : "podman:latest", "pod:latest"
image: dellemc/podmon:v1.5.0
-# controller:
-# args:
-# - "--csisock=unix:/var/run/csi/csi.sock"
-# - "--labelvalue=csi-unity"
-# - "--driverPath=csi-unity.dellemc.com"
-# - "--mode=controller"
-# - "--skipArrayConnectionValidation=false"
-# - "--driver-config-params=/unity-config/driver-config-params.yaml"
-# - "--driverPodLabelValue=dell-storage"
-# - "--ignoreVolumelessPods=false"
-# node:
-# args:
-# - "--csisock=unix:/var/lib/kubelet/plugins/unity.emc.dell.com/csi_sock"
-# - "--labelvalue=csi-unity"
-# - "--driverPath=csi-unity.dellemc.com"
-# - "--mode=node"
-# - "--leaderelection=false"
-# - "--driver-config-params=/unity-config/driver-config-params.yaml"
-# - "--driverPodLabelValue=dell-storage"
-# - "--ignoreVolumelessPods=false"
+ controller:
+ args:
+ - "--csisock=unix:/var/run/csi/csi.sock"
+ - "--labelvalue=csi-unity"
+ - "--driverPath=csi-unity.dellemc.com"
+ - "--mode=controller"
+ - "--skipArrayConnectionValidation=false"
+ - "--driver-config-params=/unity-config/driver-config-params.yaml"
+ - "--driverPodLabelValue=dell-storage"
+ - "--ignoreVolumelessPods=false"
+ node:
+ args:
+ - "--csisock=unix:/var/lib/kubelet/plugins/unity.emc.dell.com/csi_sock"
+ - "--labelvalue=csi-unity"
+ - "--driverPath=csi-unity.dellemc.com"
+ - "--mode=node"
+ - "--leaderelection=false"
+ - "--driver-config-params=/unity-config/driver-config-params.yaml"
+ - "--driverPodLabelValue=dell-storage"
+ - "--ignoreVolumelessPods=false"
storageClasses:
--
2.25.1

View File

@ -0,0 +1,50 @@
From 2671c6bd3813dc4afc2aad7e513f52fc31c1e356 Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Tue, 27 Jun 2023 12:11:59 -0300
Subject: [PATCH] csi-unity: add label app.starlingx.io/component
This patch consists of changing the strategy from the Deployment resource and
add the app.starlingx.io/component label in all pods.
The strategy was needed changing because in the reapply the old replicasets
were not being deleted. The default value was rollingUpdate.
In this case, it doesn't effect functionality.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
helm/csi-unity/templates/controller.yaml | 3 +++
helm/csi-unity/templates/node.yaml | 1 +
2 files changed, 4 insertions(+)
diff --git a/helm/csi-unity/templates/controller.yaml b/helm/csi-unity/templates/controller.yaml
index 8898988..2a2e081 100644
--- a/helm/csi-unity/templates/controller.yaml
+++ b/helm/csi-unity/templates/controller.yaml
@@ -114,10 +114,13 @@ spec:
selector:
matchLabels:
app: {{ .Release.Name }}-controller
+ strategy:
+ type: Recreate
template:
metadata:
labels:
app: {{ .Release.Name }}-controller
+ app.starlingx.io/component: {{ index .Values "app.starlingx.io/component" }}
spec:
serviceAccountName: {{ .Release.Name }}-controller
affinity:
diff --git a/helm/csi-unity/templates/node.yaml b/helm/csi-unity/templates/node.yaml
index 872f6d8..fbc5bf4 100644
--- a/helm/csi-unity/templates/node.yaml
+++ b/helm/csi-unity/templates/node.yaml
@@ -74,6 +74,7 @@ spec:
metadata:
labels:
app: {{ .Release.Name }}-node
+ app.starlingx.io/component: {{ index .Values "app.starlingx.io/component" }}
{{- if .Values.csm.resiliency }}
driver.dellemc.com: dell-storage
{{- end }}
--
2.25.1

View File

@ -0,0 +1,9 @@
0001-csi-unity-add-apiVersion.patch
0002-csi-unity-add-secret-in-templates.patch
0003-csi-unity-add-storageclass-in-templates.patch
0004-csi-unity-add-default-values-for-templates.patch
0005-csi-unity-fix-image-path-for-templates.patch
0006-csi-unity-fix-pull-image-error.patch
0007-csi-unity-add-secretcert-in-templates.patch
0008-csi-unity-enabling-csm-resiliency.patch
0009-csi-unity-add-label-app.starlingx.io-component.patch

View File

@ -0,0 +1,20 @@
#!/usr/bin/make -f
export DH_VERBOSE = 1
export ROOT = debian/tmp
export APP_FOLDER = $(ROOT)/usr/lib/helm
%:
dh $@
override_dh_auto_build:
cp Makefile helm
cd helm && make csi-unity
override_dh_auto_install:
# Install the app tar file.
install -d -m 755 $(APP_FOLDER)
install -p -D -m 755 helm/csi-unity*.tgz $(APP_FOLDER)
override_dh_auto_test:

View File

@ -0,0 +1 @@
3.0 (quilt)

View File

@ -0,0 +1,14 @@
---
debname: csi-unity-helm
debver: 2.6-0
dl_path:
name: csi-unity-2.6.0.tar.gz
url: https://github.com/dell/csi-unity/archive/v2.6.0.tar.gz
sha256sum: 6096c0b62c3cb5764de5a00bf26627b74812c6caea68d3465604cc61b4b41fac
src_files:
- csi-unity-helm/files/Makefile
revision:
dist: $STX_DIST
GITREVCOUNT:
BASE_SRCREV: 8db8f63466df064069133380243443e3822fa8ce
SRC_DIR: ${MY_REPO}/stx/app-dell-storage/csi-unity-helm

View File

@ -0,0 +1,41 @@
#
# Copyright 2017 The Openstack-Helm Authors.
#
# Copyright (c) 2023 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
# It's necessary to set this because some environments don't link sh -> bash.
SHELL := /bin/bash
TASK := build
EXCLUDES := doc tests tools logs tmp
CHARTS := $(filter-out $(EXCLUDES), $(patsubst %/.,%,$(wildcard */.)))
.PHONY: $(EXCLUDES) $(CHARTS)
all: $(CHARTS)
$(CHARTS):
@if [ -d $@ ]; then \
echo; \
echo "===== Processing [$@] chart ====="; \
make $(TASK)-$@; \
fi
init-%:
if [ -f $*/Makefile ]; then make -B $*; fi
lint-%: init-%
if [ -d $* ]; then helm lint $*; fi
build-%: lint-%
if [ -d $* ]; then helm package $*; fi
clean:
rm -f */templates/_partials.tpl */templates/_globals.tpl
rm -f *tgz */charts/*tgz
rm -rf */charts */tmpcharts
%:
@:

View File

@ -0,0 +1,29 @@
From 437c02961287ebad6c1f10e0091003f467108a08 Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Fri, 19 May 2023 12:11:57 -0300
Subject: [PATCH] velero: fix pull velero image error
This patch consists of adding imagePullSecrets with name
default-registry-key only in ServiceAccounts.
It's necessary because without it the system can't use the
images from the registry local.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
.../charts/velero/templates/serviceaccount-server.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/charts/csm-application-mobility/charts/velero/templates/serviceaccount-server.yaml b/charts/csm-application-mobility/charts/velero/templates/serviceaccount-server.yaml
index c295364..03980ff 100644
--- a/charts/csm-application-mobility/charts/velero/templates/serviceaccount-server.yaml
+++ b/charts/csm-application-mobility/charts/velero/templates/serviceaccount-server.yaml
@@ -16,4 +16,6 @@ metadata:
{{- with .Values.serviceAccount.server.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
+imagePullSecrets:
+ - name: default-registry-key
{{- end }}
--
2.25.1

View File

@ -0,0 +1,27 @@
From 8578670b927b5b395c9dc60c3d3a20cbf6778241 Mon Sep 17 00:00:00 2001
From: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Date: Tue, 27 Jun 2023 18:38:53 -0300
Subject: [PATCH] velero: add label app.starlingx.io/component
This patch consists of adding the app.starlingx.io/component label in all pods.
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
---
.../charts/velero/templates/deployment.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/charts/csm-application-mobility/charts/velero/templates/deployment.yaml b/charts/csm-application-mobility/charts/velero/templates/deployment.yaml
index cf60d07..2a8fcb8 100644
--- a/charts/csm-application-mobility/charts/velero/templates/deployment.yaml
+++ b/charts/csm-application-mobility/charts/velero/templates/deployment.yaml
@@ -30,6 +30,7 @@ spec:
metadata:
labels:
name: velero
+ app.starlingx.io/component: {{ index .Values "app.starlingx.io/component" }}
app.kubernetes.io/name: {{ include "velero.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
--
2.25.1

View File

@ -0,0 +1,5 @@
csm-application-mobility-helm (0.3-0) unstable; urgency=medium
* Initial release.
-- Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com> Thu, 30 Mar 2023 15:15:00 +0000

View File

@ -0,0 +1,15 @@
Source: csm-application-mobility-helm
Section: libs
Priority: optional
Maintainer: StarlingX Developers <starlingx-discuss@lists.starlingx.io>
Build-Depends: debhelper-compat (= 13),
helm
Standards-Version: 4.5.1
Homepage: https://www.starlingx.io
Package: csm-application-mobility-helm
Section: libs
Architecture: any
Depends: ${misc:Depends}
Description: StarlingX Dell CSM Application Mobility Helm Charts
This package contains helm charts for the Dell CSM Application Mobility.

View File

@ -0,0 +1,41 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: csm-observability-helm
Source: https://opendev.org/starlingx/app-dell-storage/
Files: *
Copyright: (c) 2023 Wind River Systems, Inc
License: Apache-2
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
https://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian-based systems the full text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.
# If you want to use GPL v2 or later for the /debian/* files use
# the following clauses, or change it to suit. Delete these two lines
Files: debian/*
Copyright: 2022 Wind River Systems, Inc
License: Apache-2
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
https://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian-based systems the full text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.

View File

@ -0,0 +1,37 @@
From 96f514f9d92d22f5f8030926b5165db13a0739fc Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Mon, 15 May 2023 10:54:16 -0300
Subject: [PATCH] csm-application-mobility: update dependencies
This patch consists of removing the cert-manager dependency and
replacing the velero repository.
It was needed removing because cert-manager already exists
by default in the system avoiding a new install.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
charts/csm-application-mobility/Chart.yaml | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/charts/csm-application-mobility/Chart.yaml b/charts/csm-application-mobility/Chart.yaml
index f1f6267..71a5ff0 100644
--- a/charts/csm-application-mobility/Chart.yaml
+++ b/charts/csm-application-mobility/Chart.yaml
@@ -13,13 +13,7 @@ version: 0.3.0
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "0.3.0"
-
dependencies:
-- name: cert-manager
- version: 1.8.2
- repository: https://charts.jetstack.io
- condition: cert-manager.enabled
- name: velero
version: 2.29.8
- repository: https://vmware-tanzu.github.io/helm-charts
- condition: velero.enabled
+ repository: file://charts/velero
--
2.25.1

View File

@ -0,0 +1,28 @@
From 3f39fa1828adaed869bde71dfa5c36e196ac11ae Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Tue, 16 May 2023 09:09:12 -0300
Subject: [PATCH] csm-application-mobility: fix pull image error
This patch consists of adding imagePullSecrets with name
default-registry-key only in ServiceAccounts.
It's necessary because without it the system can't use the
images from the registry local.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
.../v1_serviceaccount_app-mobility-controller-manager.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/charts/csm-application-mobility/templates/v1_serviceaccount_app-mobility-controller-manager.yaml b/charts/csm-application-mobility/templates/v1_serviceaccount_app-mobility-controller-manager.yaml
index a9c5206..2d82da1 100644
--- a/charts/csm-application-mobility/templates/v1_serviceaccount_app-mobility-controller-manager.yaml
+++ b/charts/csm-application-mobility/templates/v1_serviceaccount_app-mobility-controller-manager.yaml
@@ -3,3 +3,5 @@ kind: ServiceAccount
metadata:
name: {{ .Release.Name }}-controller-manager
namespace: {{ include "custom.namespace" . }}
+imagePullSecrets:
+ - name: default-registry-key
--
2.25.1

View File

@ -0,0 +1,44 @@
From 92fa2850b5204482962740ec326a9ae938e3dd62 Mon Sep 17 00:00:00 2001
From: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Date: Tue, 16 May 2023 14:55:15 -0300
Subject: [PATCH] csm-application-mobility: support dynamic rbac value
This patch consists of changing the rbac image value from static to dynamic
allowing the system reads the image in values.yaml and add the registry local prefix.
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
---
.../apps_v1_deployment_app-mobility-controller-manager.yaml | 2 +-
charts/csm-application-mobility/values.yaml | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/charts/csm-application-mobility/templates/apps_v1_deployment_app-mobility-controller-manager.yaml b/charts/csm-application-mobility/templates/apps_v1_deployment_app-mobility-controller-manager.yaml
index ec4f9dd..b353fe2 100644
--- a/charts/csm-application-mobility/templates/apps_v1_deployment_app-mobility-controller-manager.yaml
+++ b/charts/csm-application-mobility/templates/apps_v1_deployment_app-mobility-controller-manager.yaml
@@ -23,7 +23,7 @@ spec:
- --upstream=http://127.0.0.1:8080/
- --logtostderr=true
- --v=10
- image: gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0
+ image: {{ .Values.rbac.image }}
name: kube-rbac-proxy
ports:
- containerPort: 8443
diff --git a/charts/csm-application-mobility/values.yaml b/charts/csm-application-mobility/values.yaml
index 5e091ed..40be3a6 100644
--- a/charts/csm-application-mobility/values.yaml
+++ b/charts/csm-application-mobility/values.yaml
@@ -10,6 +10,9 @@ image:
controller:
image: dellemc/csm-application-mobility-controller:v0.3.0
+rbac:
+ image: gcr.io/kubebuilder/kube-rbac-proxy:v0.11.0
+
# csm-application-mobility requires cert-manager. If cert-manager is not already present in cluster, set enabled to true to install it too.
cert-manager:
enabled: false
--
2.25.1

View File

@ -0,0 +1,39 @@
From d50feca9077e5edb57dcc9a5c672194a2d675228 Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Tue, 27 Jun 2023 12:20:55 -0300
Subject: [PATCH] csm-application-mobility: add label app.starlingx.io/component
This patch consists of changing the strategy from the Deployment resource and
add the app.starlingx.io/component label in all pods.
The strategy was needed changing because in the reapply the old replicasets
were not being deleted. The default value was rollingUpdate.
In this case, it doesn't effect functionality.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
.../apps_v1_deployment_app-mobility-controller-manager.yaml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/charts/csm-application-mobility/templates/apps_v1_deployment_app-mobility-controller-manager.yaml b/charts/csm-application-mobility/templates/apps_v1_deployment_app-mobility-controller-manager.yaml
index b353fe2..5150fac 100644
--- a/charts/csm-application-mobility/templates/apps_v1_deployment_app-mobility-controller-manager.yaml
+++ b/charts/csm-application-mobility/templates/apps_v1_deployment_app-mobility-controller-manager.yaml
@@ -10,12 +10,15 @@ spec:
selector:
matchLabels:
control-plane: controller-manager
+ strategy:
+ type: Recreate
template:
metadata:
annotations:
kubectl.kubernetes.io/default-container: manager
labels:
control-plane: controller-manager
+ app.starlingx.io/component: {{ index .Values "app.starlingx.io/component" }}
spec:
containers:
- args:
--
2.25.1

View File

@ -0,0 +1,4 @@
0001-csm-application-mobility-update-dependencies.patch
0002-csm-application-mobility-fix-pull-image-error.patch
0003-csm-application-mobility-support-dynamic-rbac-value.patch
0004-csm-application-mobility-add-label-app.starlingx.io-component.patch

View File

@ -0,0 +1,31 @@
#!/usr/bin/make -f
export DH_VERBOSE = 1
export ROOT = debian/tmp
export APP_FOLDER = $(ROOT)/usr/lib/helm
export VELERO_NAME_TGZ = velero-2.29.8.tgz
export VELERO_DIR = charts/csm-application-mobility/charts
%:
dh $@
override_dh_auto_build:
# including velero as a subchart
mkdir -p $(VELERO_DIR)
tar xzf $(VELERO_NAME_TGZ) -C $(VELERO_DIR)
# patching velero
patch --no-backup-if-mismatch --fuzz=0 -p1 < 0001-velero-fix-pull-velero-image-error.patch
patch --no-backup-if-mismatch --fuzz=0 -p1 < 0002-velero-add-label-app.starlingx.io-component.patch
# building csm
cp Makefile charts
cd charts && make csm-application-mobility
override_dh_auto_install:
# Install the app tar file.
install -d -m 755 $(APP_FOLDER)
install -p -D -m 755 charts/csm-application-mobility*.tgz $(APP_FOLDER)
override_dh_auto_test:

View File

@ -0,0 +1 @@
3.0 (quilt)

View File

@ -0,0 +1,21 @@
---
debname: csm-application-mobility-helm
debver: 0.3-0
dl_path:
name: csm-application-mobility-0.3.0.tar.gz
url: https://github.com/dell/helm-charts/archive/csm-application-mobility-0.3.0.tar.gz
sha256sum: 30b7852326d4e306d863d9d021acfe478d2d75f24ca7f68b3a46cec757d9b8d3
dl_files:
velero-2.29.8.tgz:
topdir: null
url: https://github.com/vmware-tanzu/helm-charts/releases/download/velero-2.29.8/velero-2.29.8.tgz
sha256sum: d555c869371b0cdeead55e7f21621b72ddc23c074b2ff90ecec5f3d5fdde1d46
src_files:
- csm-application-mobility-helm/files/Makefile
- csm-application-mobility-helm/files/velero/0001-velero-fix-pull-velero-image-error.patch
- csm-application-mobility-helm/files/velero/0002-velero-add-label-app.starlingx.io-component.patch
revision:
dist: $STX_DIST
GITREVCOUNT:
BASE_SRCREV: 8db8f63466df064069133380243443e3822fa8ce
SRC_DIR: ${MY_REPO}/stx/app-dell-storage/csm-application-mobility-helm

View File

@ -0,0 +1,42 @@
#
# Copyright 2017 The Openstack-Helm Authors.
#
# Copyright (c) 2023 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
# It's necessary to set this because some environments don't link sh -> bash.
SHELL := /bin/bash
TASK := build
EXCLUDES := doc tests tools logs tmp
CHARTS := $(filter-out $(EXCLUDES), $(patsubst %/.,%,$(wildcard */.)))
.PHONY: $(EXCLUDES) $(CHARTS)
all: $(CHARTS)
$(CHARTS):
@if [ -d $@ ]; then \
echo; \
echo "===== Processing [$@] chart ====="; \
make $(TASK)-$@; \
fi
init-%:
if [ -f $*/Makefile ]; then make -C $*; fi
lint-%: init-%
if [ -d $* ]; then helm lint $*; fi
build-%: lint-%
if [ -d $* ]; then helm package $*; fi
clean:
@echo "Clean all build artifacts"
rm -f */templates/_partials.tpl */templates/_globals.tpl
rm -f *tgz */charts/*tgz
rm -rf */charts */tmpcharts
%:
@:

View File

@ -0,0 +1,5 @@
csm-observability-helm (1.5-0) unstable; urgency=medium
* Initial release.
-- Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com> Thu, 30 Mar 2023 15:15:00 +0000

View File

@ -0,0 +1,15 @@
Source: csm-observability-helm
Section: libs
Priority: optional
Maintainer: StarlingX Developers <starlingx-discuss@lists.starlingx.io>
Build-Depends: debhelper-compat (= 13),
helm
Standards-Version: 4.5.1
Homepage: https://www.starlingx.io
Package: csm-observability-helm
Section: libs
Architecture: any
Depends: ${misc:Depends}
Description: StarlingX Dell CSM Observability Helm Charts
This package contains helm charts for the Dell CSM Observability.

View File

@ -0,0 +1,41 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: csm-observability-helm
Source: https://opendev.org/starlingx/app-dell-storage/
Files: *
Copyright: (c) 2023 Wind River Systems, Inc
License: Apache-2
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
https://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian-based systems the full text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.
# If you want to use GPL v2 or later for the /debian/* files use
# the following clauses, or change it to suit. Delete these two lines
Files: debian/*
Copyright: 2022 Wind River Systems, Inc
License: Apache-2
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
https://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian-based systems the full text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.

View File

@ -0,0 +1 @@
usr/lib/helm/*

View File

@ -0,0 +1,30 @@
From 97fbf27069955ca0a9140c4174d9b3ed93d85989 Mon Sep 17 00:00:00 2001
From: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Date: Thu, 4 May 2023 09:27:26 -0300
Subject: [PATCH] csm-observability: remove cert-manager dependency
This patch consists of removing the cert-manager dependency.
It was needed removing because cert-manager already exists
by default in the system avoiding a new install.
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
---
charts/karavi-observability/Chart.yaml | 5 -----
1 file changed, 5 deletions(-)
diff --git a/charts/karavi-observability/Chart.yaml b/charts/karavi-observability/Chart.yaml
index 12e90a1..e9b9041 100644
--- a/charts/karavi-observability/Chart.yaml
+++ b/charts/karavi-observability/Chart.yaml
@@ -4,8 +4,3 @@ name: karavi-observability
description: CSM for Observability is part of the [Container Storage Modules](https://github.com/dell/csm) open source suite of Kubernetes storage enablers for Dell EMC storage products. CSM for Observability provides Kubernetes administrators with visibility into metrics and topology data related to containerized storage.
type: application
version: 1.5.0
-dependencies:
-- name: cert-manager
- version: 1.10.0
- repository: https://charts.jetstack.io
- condition: cert-manager.enabled
--
2.25.1

View File

@ -0,0 +1,122 @@
From 415a9de635b0ec5aabc37d18d40c0ec57e60facf Mon Sep 17 00:00:00 2001
From: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Date: Mon, 8 May 2023 11:07:33 -0300
Subject: [PATCH] csm-observability: fix pull image error
This patch consists of adding imagePullSecrets with name
default-registry-key only in ServiceAccounts.
It's necessary because without it the system can't use the
images from the registry local.
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
---
.../karavi-metrics-powerflex-service-account.yaml | 3 ++-
.../karavi-metrics-powermax-service-account.yaml | 3 ++-
.../karavi-metrics-powerscale-service-account.yaml | 3 ++-
.../karavi-metrics-powerstore-service-account.yaml | 3 ++-
.../templates/karavi-topology-service-account.yaml | 3 ++-
.../templates/otel-collector.yaml | 11 +++++++++++
6 files changed, 21 insertions(+), 5 deletions(-)
diff --git a/charts/karavi-observability/templates/karavi-metrics-powerflex-service-account.yaml b/charts/karavi-observability/templates/karavi-metrics-powerflex-service-account.yaml
index fabcc2c..35df65e 100644
--- a/charts/karavi-observability/templates/karavi-metrics-powerflex-service-account.yaml
+++ b/charts/karavi-observability/templates/karavi-metrics-powerflex-service-account.yaml
@@ -6,7 +6,8 @@ kind: ServiceAccount
metadata:
name: {{ .Release.Name }}-metrics-powerflex-controller
namespace: {{ include "custom.namespace" . }}
-
+imagePullSecrets:
+ - name: default-registry-key
---
apiVersion: rbac.authorization.k8s.io/v1
diff --git a/charts/karavi-observability/templates/karavi-metrics-powermax-service-account.yaml b/charts/karavi-observability/templates/karavi-metrics-powermax-service-account.yaml
index 089ed25..4a66651 100644
--- a/charts/karavi-observability/templates/karavi-metrics-powermax-service-account.yaml
+++ b/charts/karavi-observability/templates/karavi-metrics-powermax-service-account.yaml
@@ -6,7 +6,8 @@ kind: ServiceAccount
metadata:
name: {{ .Release.Name }}-metrics-powermax-controller
namespace: {{ include "custom.namespace" . }}
-
+imagePullSecrets:
+ - name: default-registry-key
---
apiVersion: rbac.authorization.k8s.io/v1
diff --git a/charts/karavi-observability/templates/karavi-metrics-powerscale-service-account.yaml b/charts/karavi-observability/templates/karavi-metrics-powerscale-service-account.yaml
index b0b8999..e03e8b5 100644
--- a/charts/karavi-observability/templates/karavi-metrics-powerscale-service-account.yaml
+++ b/charts/karavi-observability/templates/karavi-metrics-powerscale-service-account.yaml
@@ -6,7 +6,8 @@ kind: ServiceAccount
metadata:
name: {{ .Release.Name }}-metrics-powerscale-controller
namespace: {{ include "custom.namespace" . }}
-
+imagePullSecrets:
+ - name: default-registry-key
---
apiVersion: rbac.authorization.k8s.io/v1
diff --git a/charts/karavi-observability/templates/karavi-metrics-powerstore-service-account.yaml b/charts/karavi-observability/templates/karavi-metrics-powerstore-service-account.yaml
index 7cf2a37..ecd0f05 100644
--- a/charts/karavi-observability/templates/karavi-metrics-powerstore-service-account.yaml
+++ b/charts/karavi-observability/templates/karavi-metrics-powerstore-service-account.yaml
@@ -6,7 +6,8 @@ kind: ServiceAccount
metadata:
name: {{ .Release.Name }}-metrics-powerstore-controller
namespace: {{ include "custom.namespace" . }}
-
+imagePullSecrets:
+ - name: default-registry-key
---
apiVersion: rbac.authorization.k8s.io/v1
diff --git a/charts/karavi-observability/templates/karavi-topology-service-account.yaml b/charts/karavi-observability/templates/karavi-topology-service-account.yaml
index cb1f4cf..9f33672 100644
--- a/charts/karavi-observability/templates/karavi-topology-service-account.yaml
+++ b/charts/karavi-observability/templates/karavi-topology-service-account.yaml
@@ -6,7 +6,8 @@ kind: ServiceAccount
metadata:
name: {{ .Release.Name }}-topology-controller
namespace: {{ include "custom.namespace" . }}
-
+imagePullSecrets:
+ - name: default-registry-key
---
apiVersion: rbac.authorization.k8s.io/v1
diff --git a/charts/karavi-observability/templates/otel-collector.yaml b/charts/karavi-observability/templates/otel-collector.yaml
index 3cd1a69..badbc98 100644
--- a/charts/karavi-observability/templates/otel-collector.yaml
+++ b/charts/karavi-observability/templates/otel-collector.yaml
@@ -21,6 +21,16 @@ metadata:
---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: otel-collector
+ namespace: {{ include "custom.namespace" . }}
+imagePullSecrets:
+ - name: default-registry-key
+
+---
+
apiVersion: v1
kind: Service
metadata:
@@ -65,6 +75,7 @@ spec:
app.kubernetes.io/name: otel-collector
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
+ serviceAccount: otel-collector
volumes:
- name: tls-secret
secret:
--
2.25.1

View File

@ -0,0 +1,30 @@
From fbc87969a23cb5a8f05d15337c587db9b79089ba Mon Sep 17 00:00:00 2001
From: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Date: Mon, 8 May 2023 14:50:11 -0300
Subject: [PATCH] csm-observability: change powerstore secret name
This patch consists of changing the secretName used from csi-powerstore.
It's needed because the secret of the powerstore is created based on
the default release name and it was used hard-coded here.
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
---
.../templates/karavi-metrics-powerstore.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/charts/karavi-observability/templates/karavi-metrics-powerstore.yaml b/charts/karavi-observability/templates/karavi-metrics-powerstore.yaml
index a54d1d5..8fcd046 100644
--- a/charts/karavi-observability/templates/karavi-metrics-powerstore.yaml
+++ b/charts/karavi-observability/templates/karavi-metrics-powerstore.yaml
@@ -76,7 +76,7 @@ spec:
path: localhost.key
- name: powerstore-config
secret:
- secretName: powerstore-config
+ secretName: csi-powerstore-config
- name: tls-secret
secret:
secretName: otel-collector-tls
--
2.25.1

View File

@ -0,0 +1,49 @@
From 44fd486de59fbfb0416dd69d6d9bc7715c23e9c5 Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Mon, 12 Jun 2023 14:14:23 -0300
Subject: [PATCH] csm-observability: remove unnecessary images
This patch consists of commenting the csm metrics images that
is not supported by the app yet.
This prevent the images are automatically downloaded
by the system.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
charts/karavi-observability/values.yaml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/charts/karavi-observability/values.yaml b/charts/karavi-observability/values.yaml
index 135c1db..4c9ebce 100644
--- a/charts/karavi-observability/values.yaml
+++ b/charts/karavi-observability/values.yaml
@@ -16,7 +16,7 @@ karaviTopology:
probability: 0.0
karaviMetricsPowerflex:
- image: dellemc/csm-metrics-powerflex:v1.5.0
+ #image: dellemc/csm-metrics-powerflex:v1.5.0
enabled: true
collectorAddr: otel-collector:55680
# comma separated list of provisioner names (ex: csi-vxflexos.dellemc.com)
@@ -82,7 +82,7 @@ karaviMetricsPowerstore:
probability: 0.0
karaviMetricsPowerscale:
- image: dellemc/csm-metrics-powerscale:v1.2.0
+ #image: dellemc/csm-metrics-powerscale:v1.2.0
enabled: true
collectorAddr: otel-collector:55680
# comma separated list of provisioner names (ex: csi-isilon.dellemc.com)
@@ -132,7 +132,7 @@ karaviMetricsPowerscale:
skipCertificateValidation: true
karaviMetricsPowermax:
- image: dellemc/csm-metrics-powermax:v1.0.0
+ #image: dellemc/csm-metrics-powermax:v1.0.0
enabled: true
collectorAddr: otel-collector:55680
# comma separated list of provisioner names (ex: csi-powermax.dellemc.com)
--
2.25.1

View File

@ -0,0 +1,91 @@
From 842f311821cddd59bff71b64126a3fd9c1b3d8de Mon Sep 17 00:00:00 2001
From: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Date: Tue, 27 Jun 2023 12:21:10 -0300
Subject: [PATCH] csm-observability: add label app.starlingx.io/component
This patch consists of adding the app.starlingx.io/component label in all pods.
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
---
.../karavi-observability/templates/karavi-metrics-powerflex.yaml | 1 +
.../karavi-observability/templates/karavi-metrics-powermax.yaml | 1 +
.../templates/karavi-metrics-powerscale.yaml | 1 +
.../templates/karavi-metrics-powerstore.yaml | 1 +
charts/karavi-observability/templates/karavi-topology.yaml | 1 +
charts/karavi-observability/templates/otel-collector.yaml | 1 +
6 files changed, 6 insertions(+)
diff --git a/charts/karavi-observability/templates/karavi-metrics-powerflex.yaml b/charts/karavi-observability/templates/karavi-metrics-powerflex.yaml
index 177b3d1..8b2baf3 100644
--- a/charts/karavi-observability/templates/karavi-metrics-powerflex.yaml
+++ b/charts/karavi-observability/templates/karavi-metrics-powerflex.yaml
@@ -46,6 +46,7 @@ spec:
labels:
app.kubernetes.io/name: karavi-metrics-powerflex
app.kubernetes.io/instance: {{ .Release.Name }}
+ app.starlingx.io/component: {{ index .Values "app.starlingx.io/component" }}
spec:
serviceAccount: {{ .Release.Name }}-metrics-powerflex-controller
containers:
diff --git a/charts/karavi-observability/templates/karavi-metrics-powermax.yaml b/charts/karavi-observability/templates/karavi-metrics-powermax.yaml
index 31891ab..acc9b35 100644
--- a/charts/karavi-observability/templates/karavi-metrics-powermax.yaml
+++ b/charts/karavi-observability/templates/karavi-metrics-powermax.yaml
@@ -46,6 +46,7 @@ spec:
labels:
app.kubernetes.io/name: karavi-metrics-powermax
app.kubernetes.io/instance: {{ .Release.Name }}
+ app.starlingx.io/component: {{ index .Values "app.starlingx.io/component" }}
spec:
serviceAccount: {{ .Release.Name }}-metrics-powermax-controller
containers:
diff --git a/charts/karavi-observability/templates/karavi-metrics-powerscale.yaml b/charts/karavi-observability/templates/karavi-metrics-powerscale.yaml
index 510e946..56a43c1 100644
--- a/charts/karavi-observability/templates/karavi-metrics-powerscale.yaml
+++ b/charts/karavi-observability/templates/karavi-metrics-powerscale.yaml
@@ -46,6 +46,7 @@ spec:
labels:
app.kubernetes.io/name: karavi-metrics-powerscale
app.kubernetes.io/instance: {{ .Release.Name }}
+ app.starlingx.io/component: {{ index .Values "app.starlingx.io/component" }}
spec:
serviceAccount: {{ .Release.Name }}-metrics-powerscale-controller
containers:
diff --git a/charts/karavi-observability/templates/karavi-metrics-powerstore.yaml b/charts/karavi-observability/templates/karavi-metrics-powerstore.yaml
index 8fcd046..0b593b7 100644
--- a/charts/karavi-observability/templates/karavi-metrics-powerstore.yaml
+++ b/charts/karavi-observability/templates/karavi-metrics-powerstore.yaml
@@ -40,6 +40,7 @@ spec:
labels:
app.kubernetes.io/name: karavi-metrics-powerstore
app.kubernetes.io/instance: {{ .Release.Name }}
+ app.starlingx.io/component: {{ index .Values "app.starlingx.io/component" }}
spec:
serviceAccount: {{ .Release.Name }}-metrics-powerstore-controller
containers:
diff --git a/charts/karavi-observability/templates/karavi-topology.yaml b/charts/karavi-observability/templates/karavi-topology.yaml
index 68b4b19..0056dc9 100644
--- a/charts/karavi-observability/templates/karavi-topology.yaml
+++ b/charts/karavi-observability/templates/karavi-topology.yaml
@@ -40,6 +40,7 @@ spec:
labels:
app.kubernetes.io/name: karavi-topology
app.kubernetes.io/instance: {{ .Release.Name }}
+ app.starlingx.io/component: {{ index .Values "app.starlingx.io/component" }}
spec:
volumes:
- name: karavi-topology-secret-volume
diff --git a/charts/karavi-observability/templates/otel-collector.yaml b/charts/karavi-observability/templates/otel-collector.yaml
index 316b88e..e9d1bc6 100644
--- a/charts/karavi-observability/templates/otel-collector.yaml
+++ b/charts/karavi-observability/templates/otel-collector.yaml
@@ -73,6 +73,7 @@ spec:
labels:
app.kubernetes.io/name: otel-collector
app.kubernetes.io/instance: {{ .Release.Name }}
+ app.starlingx.io/component: {{ index .Values "app.starlingx.io/component" }}
spec:
serviceAccount: otel-collector
volumes:
--
2.25.1

View File

@ -0,0 +1,5 @@
0001-csm-observability-remove-cert-manager-dependency.patch
0002-csm-observability-fix-pull-image-error.patch
0003-csm-observability-change-powerstore-secret-name.patch
0004-csm-observability-remove-unnecessary-images.patch
0005-csm-observability-add-label-app.starlingx.io-component.patch

View File

@ -0,0 +1,20 @@
#!/usr/bin/make -f
export DH_VERBOSE = 1
export ROOT = debian/tmp
export APP_FOLDER = $(ROOT)/usr/lib/helm
%:
dh $@
override_dh_auto_build:
cp Makefile charts
cd charts && make karavi-observability
override_dh_auto_install:
# Install the app tar file.
install -d -m 755 $(APP_FOLDER)
install -p -D -m 755 charts/karavi-observability*.tgz $(APP_FOLDER)
override_dh_auto_test:

View File

@ -0,0 +1 @@
3.0 (quilt)

View File

@ -0,0 +1,14 @@
---
debname: csm-observability-helm
debver: 1.5-0
dl_path:
name: karavi-observability-1.5.0.tar.gz
url: https://github.com/dell/helm-charts/archive/karavi-observability-1.5.0.tar.gz
sha256sum: 84bf5f25f137450f8fd15e7b637d35c569a2329a05b9c97bd1162859ed4bbcbb
src_files:
- csm-observability-helm/files/Makefile
revision:
dist: $STX_DIST
GITREVCOUNT:
BASE_SRCREV: 8db8f63466df064069133380243443e3822fa8ce
SRC_DIR: ${MY_REPO}/stx/app-dell-storage/csm-observability-helm

View File

@ -0,0 +1,44 @@
#
# Copyright 2017 The Openstack-Helm Authors.
#
# Copyright (c) 2019 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
# It's necessary to set this because some environments don't link sh -> bash.
SHELL := /bin/bash
TASK := build
EXCLUDES := helm-toolkit doc tests tools logs tmp
CHARTS := helm-toolkit $(filter-out $(EXCLUDES), $(patsubst %/.,%,$(wildcard */.)))
.PHONY: $(EXCLUDES) $(CHARTS)
all: $(CHARTS)
$(CHARTS):
@if [ -d $@ ]; then \
echo; \
echo "===== Processing [$@] chart ====="; \
make $(TASK)-$@; \
fi
init-%:
if [ -f $*/Makefile ]; then make -C $*; fi
if [ -f $*/requirements.yaml ]; then helm dep up $*; fi
lint-%: init-%
if [ -d $* ]; then helm lint $*; fi
rm -v -f $*/requirements.lock $*/requirements.yaml
build-%: lint-%
if [ -d $* ]; then helm package $*; fi
clean:
@echo "Clean all build artifacts"
rm -f */templates/_partials.tpl */templates/_globals.tpl
rm -f *tgz */charts/*tgz */requirements.lock
rm -rf */charts */tmpcharts
%:
@:

View File

@ -0,0 +1,5 @@
csm-replication-helm (1.4-0) unstable; urgency=medium
* Initial release.
-- Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com> Thu, 30 Mar 2023 15:15:00 +0000

View File

@ -0,0 +1,15 @@
Source: csm-replication-helm
Section: libs
Priority: optional
Maintainer: StarlingX Developers <starlingx-discuss@lists.starlingx.io>
Build-Depends: debhelper-compat (= 13),
helm
Standards-Version: 4.5.1
Homepage: https://www.starlingx.io
Package: csm-replication-helm
Section: libs
Architecture: any
Depends: ${misc:Depends}
Description: StarlingX Dell CSM Replication Helm Charts
This package contains helm charts for the Dell CSM Replication.

View File

@ -0,0 +1,41 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: csm-replication-helm
Source: https://opendev.org/starlingx/app-dell-storage/
Files: *
Copyright: (c) 2023 Wind River Systems, Inc
License: Apache-2
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
https://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian-based systems the full text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.
# If you want to use GPL v2 or later for the /debian/* files use
# the following clauses, or change it to suit. Delete these two lines
Files: debian/*
Copyright: 2022 Wind River Systems, Inc
License: Apache-2
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
https://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian-based systems the full text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.

View File

@ -0,0 +1 @@
usr/lib/helm/*

View File

@ -0,0 +1,43 @@
From ef603b1c87bd827dac112f19c7eaaab0b2978cd3 Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Fri, 2 Jun 2023 12:03:20 -0300
Subject: [PATCH] csm-replication: add default values for templates
This patch consists of adding the default values in the values.yaml of
the helm chart.
It's necessary because the images in templates were in unexpected format
for the system and because templates need default values to be able
to build the package.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
helm/csm-replication/values.yaml | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/helm/csm-replication/values.yaml b/helm/csm-replication/values.yaml
index d0022b4..27c2e64 100644
--- a/helm/csm-replication/values.yaml
+++ b/helm/csm-replication/values.yaml
@@ -9,7 +9,8 @@ image: dellemc/dell-replication-controller:v1.4.0
# image: Defines controller's init container image. This shouldn't be changed
# Allowed values: string
-initImage: dellemc/dell-replication-init:v1.0.0
+containerInit:
+ image: dellemc/dell-replication-init:v1.0.0
# logLevel: Defines initial log level for controller. This can be changed in runtime
# Allowed values: "debug", "info", "warn", "error", "panic"
@@ -39,3 +40,9 @@ retryIntervalMax: 5m
# - ip: "10.10.10.11"
# hostnames:
# - "foo.baz"
+
+config:
+ clusterId: ""
+
+replicationGroup:
+ create: false
--
2.25.1

View File

@ -0,0 +1,86 @@
From e2931f66cfe436960118e40fd6aaec8ae8c475dc Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Wed, 7 Jun 2023 09:40:42 -0300
Subject: [PATCH] csm-replication: change namespace from templates
This patch consists of changing the hard-coded namespace value for
using the release namespace.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
helm/csm-replication/templates/controller.yaml | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/helm/csm-replication/templates/controller.yaml b/helm/csm-replication/templates/controller.yaml
index d8b850d..23a9496 100644
--- a/helm/csm-replication/templates/controller.yaml
+++ b/helm/csm-replication/templates/controller.yaml
@@ -2,7 +2,7 @@ apiVersion: v1
kind: ServiceAccount
metadata:
name: dell-replication-controller-sa
- namespace: dell-replication-controller
+ namespace: {{ .Release.Namespace }}
secrets:
- name: replication-secret
---
@@ -179,10 +179,10 @@ apiVersion: v1
kind: Secret
metadata:
name: replication-secret
- namespace: dell-replication-controller
+ namespace: {{ .Release.Namespace }}
annotations:
kubernetes.io/service-account.name: dell-replication-controller-sa
- kubernetes.io/service-account.namespace: dell-replication-controller
+ kubernetes.io/service-account.namespace: {{ .Release.Namespace }}
type: kubernetes.io/service-account-token
---
apiVersion: rbac.authorization.k8s.io/v1
@@ -196,7 +196,7 @@ roleRef:
subjects:
- kind: ServiceAccount
name: dell-replication-controller-sa
- namespace: dell-replication-controller
+ namespace: {{ .Release.Namespace }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
@@ -209,14 +209,14 @@ roleRef:
subjects:
- kind: ServiceAccount
name: dell-replication-controller-sa
- namespace: dell-replication-controller
+ namespace: {{ .Release.Namespace }}
---
{{- $secret := (lookup "v1" "ConfigMap" "dell-replication-controller" "dell-replication-controller-config").data -}}
apiVersion: v1
kind: ConfigMap
metadata:
name: dell-replication-controller-config
- namespace: dell-replication-controller
+ namespace: {{ .Release.Namespace }}
{{ if $secret -}}
data:
{{- range $key, $value := $secret }}
@@ -236,7 +236,7 @@ metadata:
labels:
control-plane: controller-manager
name: dell-replication-controller-manager-metrics-service
- namespace: dell-replication-controller
+ namespace: {{ .Release.Namespace }}
spec:
ports:
- name: https
@@ -251,7 +251,7 @@ metadata:
labels:
control-plane: controller-manager
name: dell-replication-controller-manager
- namespace: dell-replication-controller
+ namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.replicas }}
selector:
--
2.25.1

View File

@ -0,0 +1,31 @@
From fac0f5c1c336824cd30edb109f2b51b9745bf517 Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Thu, 27 Apr 2023 12:17:45 -0300
Subject: [PATCH] csm-replication: fix pull image error
This patch consists of adding imagePullSecrets with name
default-registry-key only in ServiceAccounts.
It's necessary because without it the system can't use the
images from the registry local.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
helm/csm-replication/templates/controller.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/helm/csm-replication/templates/controller.yaml b/helm/csm-replication/templates/controller.yaml
index 0703f19..1f3bd1f 100644
--- a/helm/csm-replication/templates/controller.yaml
+++ b/helm/csm-replication/templates/controller.yaml
@@ -4,6 +4,8 @@ kind: ServiceAccount
metadata:
name: dell-replication-controller-sa
namespace: {{ .Release.Namespace }}
+imagePullSecrets:
+ - name: default-registry-key
secrets:
- name: replication-secret
---
--
2.25.1

View File

@ -0,0 +1,29 @@
From 81e1ac8fcb997f8deb46bfc63574fee7a6964c90 Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Wed, 7 Jun 2023 09:23:30 -0300
Subject: [PATCH] csm-replication: change image path for templates
This patch consists of changing the format to use the image path
following the expected format used by kube_app.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
helm/csm-replication/templates/controller.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/helm/csm-replication/templates/controller.yaml b/helm/csm-replication/templates/controller.yaml
index 6d90677..93bb999 100644
--- a/helm/csm-replication/templates/controller.yaml
+++ b/helm/csm-replication/templates/controller.yaml
@@ -273,7 +273,7 @@ spec:
initContainers:
- name: init-rg-migration
imagePullPolicy: Always
- image: {{ .Values.initImage }}
+ image: {{ .Values.containerInit.image }}
command:
- /upgrade/migrate_rg.sh
containers:
--
2.25.1

View File

@ -0,0 +1,35 @@
From 8e85e2b310b3de14be982af38f46ab087e6cdd8a Mon Sep 17 00:00:00 2001
From: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Date: Fri, 28 Apr 2023 14:18:33 -0300
Subject: [PATCH] csm-replication: support setting config values
This patch consists of changing the config.yaml that is hard-coded
on the controller template for support the dynamic values.
Before, we needed change the configmap manually before deploy.
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
---
helm/csm-replication/templates/controller.yaml | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/helm/csm-replication/templates/controller.yaml b/helm/csm-replication/templates/controller.yaml
index 93bb999..026fd12 100644
--- a/helm/csm-replication/templates/controller.yaml
+++ b/helm/csm-replication/templates/controller.yaml
@@ -228,8 +228,12 @@ data:
{{ else -}}
data:
config.yaml: |
- clusterId: ""
+ clusterId: {{ .Values.config.clusterId }}
+ {{- if .Values.config.targets }}
+ targets: {{- .Values.config.targets | toYaml | nindent 4 }}
+ {{- else }}
targets: []
+ {{- end }}
CSI_LOG_LEVEL: {{ .Values.logLevel }}
{{ end }}
---
--
2.25.1

View File

@ -0,0 +1,29 @@
From 78c89ce6d772d1e591672f72a48b2e8b88aab016 Mon Sep 17 00:00:00 2001
From: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Date: Thu, 15 Jun 2023 18:27:12 -0300
Subject: [PATCH] csm-replication: fix helm lint error
This patch consists of removing the dashes, because it didn't pass
by currently helm lint version in the system.
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
---
helm/csm-replication/templates/controller.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/helm/csm-replication/templates/controller.yaml b/helm/csm-replication/templates/controller.yaml
index bd33bd0..9fca1f5 100644
--- a/helm/csm-replication/templates/controller.yaml
+++ b/helm/csm-replication/templates/controller.yaml
@@ -213,7 +213,7 @@ subjects:
name: dell-replication-controller-sa
namespace: {{ .Release.Namespace }}
---
-{{- $secret := (lookup "v1" "ConfigMap" "dell-replication-controller" "dell-replication-controller-config").data -}}
+{{ $secret := (lookup "v1" "ConfigMap" "dell-replication-controller" "dell-replication-controller-config").data }}
apiVersion: v1
kind: ConfigMap
metadata:
--
2.25.1

View File

@ -0,0 +1,26 @@
From 7e63c20997978507d989e8691509adb777b9c1da Mon Sep 17 00:00:00 2001
From: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Date: Tue, 27 Jun 2023 12:13:34 -0300
Subject: [PATCH] csm-replication: add label app.starlingx.io/component
This patch consists of adding the app.starlingx.io/component label in all pods.
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
---
helm/csm-replication/templates/controller.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/helm/csm-replication/templates/controller.yaml b/helm/csm-replication/templates/controller.yaml
index 9fca1f5..4d86256 100644
--- a/helm/csm-replication/templates/controller.yaml
+++ b/helm/csm-replication/templates/controller.yaml
@@ -267,6 +267,7 @@ spec:
metadata:
labels:
control-plane: controller-manager
+ app.starlingx.io/component: {{ index .Values "app.starlingx.io/component" }}
spec:
{{- if hasKey .Values "hostAliases" }}
hostAliases:
--
2.25.1

View File

@ -0,0 +1,48 @@
From 54c301fd0288a766e6ff87f95ee9371992d4a050 Mon Sep 17 00:00:00 2001
From: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Date: Fri, 14 Jul 2023 18:39:33 -0300
Subject: [PATCH] csm-replication: add DellCSIReplicationGroup in templates
This patch consists of adding a DellCSIReplicationGroup in the helm chart
templates directory. It's needed because this helm chart needs that
DellCSIReplicationGroup should be created manually.
Signed-off-by: Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com>
Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
---
.../templates/replicationgroup.yaml | 24 +++++++++++++++++++
1 file changed, 24 insertions(+)
create mode 100644 helm/csm-replication/templates/replicationgroup.yaml
diff --git a/helm/csm-replication/templates/replicationgroup.yaml b/helm/csm-replication/templates/replicationgroup.yaml
new file mode 100644
index 0000000..80b8347
--- /dev/null
+++ b/helm/csm-replication/templates/replicationgroup.yaml
@@ -0,0 +1,24 @@
+{{- if .Values.replicationGroup.create }}
+kind: DellCSIReplicationGroup
+apiVersion: replication.storage.dell.com/v1
+metadata:
+ name: {{ .Values.replicationGroup.name | default ( print "rg-" .Values.config.clusterId | lower ) }}
+ namespace: {{ .Release.Namespace }}
+spec:
+ driverName: {{ .Values.replicationGroup.driverName }}
+ action: {{ .Values.replicationGroup.action }}
+{{- if.Values.replicationGroup.protectionGroupAttributes }}
+ protectionGroupAttributes:
+ localAttributeKey: {{ .Values.replicationGroup.protectionGroupAttributes.localAttributeKey }}
+{{- end }}
+ protectionGroupId: {{ .Values.replicationGroup.protectionGroupId }}
+ remoteClusterId: {{ .Values.replicationGroup.remoteClusterId }}
+{{- if.Values.replicationGroup.remoteProtectionGroupAttributes }}
+ remoteProtectionGroupAttributes:
+ remoteAttributeKey: {{ .Values.replicationGroup.remoteProtectionGroupAttributes.remoteAttributeKey }}
+{{- end }}
+ remoteProtectionGroupId: {{ .Values.replicationGroup.remoteProtectionGroupId }}
+{{- if.Values.replicationGroup.requestParametersClass }}
+ requestParametersClass: {{ .Values.replicationGroup.requestParametersClass }}
+{{- end }}
+{{- end }}
--
2.25.1

View File

@ -0,0 +1,8 @@
0001-csm-replication-add-default-values-for-templates.patch
0002-csm-replication-change-namespace-from-templates.patch
0003-csm-replication-fix-pull-image-error.patch
0004-csm-replication-change-image-path-for-templates.patch
0005-csm-replication-support-setting-config-values.patch
0006-csm-replication-fix-helm-lint-error.patch
0007-csm-replication-add-label-app.starlingx.io-component.patch
0008-csm-replication-add-replicationgroup-in-templates.patch

View File

@ -0,0 +1,20 @@
#!/usr/bin/make -f
export DH_VERBOSE = 1
export ROOT = debian/tmp
export APP_FOLDER = $(ROOT)/usr/lib/helm
%:
dh $@
override_dh_auto_build:
cp Makefile helm
cd helm && make csm-replication
override_dh_auto_install:
# Install the app tar file.
install -d -m 755 $(APP_FOLDER)
install -p -D -m 755 helm/csm-replication*.tgz $(APP_FOLDER)
override_dh_auto_test:

View File

@ -0,0 +1 @@
3.0 (quilt)

View File

@ -0,0 +1,14 @@
---
debname: csm-replication-helm
debver: 1.4-0
dl_path:
name: csm-replication-1.4.0.tar.gz
url: https://github.com/dell/csm-replication/archive/v1.4.0.tar.gz
sha256sum: ba3f90bc8936213115a0c181d9f193916143a109d264b232c33e0491b620d83b
src_files:
- csm-replication-helm/files/Makefile
revision:
dist: $STX_DIST
GITREVCOUNT:
BASE_SRCREV: 8db8f63466df064069133380243443e3822fa8ce
SRC_DIR: ${MY_REPO}/stx/app-dell-storage/csm-replication-helm

1
debian_build_layer.cfg Normal file
View File

@ -0,0 +1 @@
flock

1
debian_iso_image.inc Normal file
View File

@ -0,0 +1 @@
stx-dell-storage-helm

7
debian_pkg_dirs Normal file
View File

@ -0,0 +1,7 @@
csi-powerstore-helm
csi-unity-helm
csm-replication-helm
csm-observability-helm
csm-application-mobility-helm
python3-k8sapp-dell-storage
stx-dell-storage-helm

View File

@ -0,0 +1,5 @@
python3-k8sapp-dell-storage (1.0-1) unstable; urgency=medium
* Initial release.
-- Hediberto Cavalcante da Silva <hediberto.cavalcantedasilva@windriver.com> Wed, 5 Apr 2023 17:27:00 +0000

View File

@ -0,0 +1,28 @@
Source: python3-k8sapp-dell-storage
Section: libs
Priority: optional
Maintainer: StarlingX Developers <starlingx-discuss@lists.starlingx.io>
Build-Depends: debhelper-compat (= 13),
dh-python,
python3-all,
python3-pbr,
python3-setuptools,
python3-wheel
Standards-Version: 4.5.1
Homepage: https://www.starlingx.io
Package: python3-k8sapp-dell-storage
Section: libs
Architecture: any
Depends: ${misc:Depends}, ${python3:Depends}
Description: StarlingX Sysinv Dell Storage Extensions
This package contains sysinv plugins for the Dell Storage K8S
apps.
Package: python3-k8sapp-dell-storage-wheels
Section: libs
Architecture: any
Depends: ${misc:Depends}, ${python3:Depends}, python3-wheel
Description: StarlingX Sysinv Dell Storage Extension Wheels
This package contains python wheels for the Dell Storage K8S
app plugins.

View File

@ -0,0 +1,41 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: python3-k8sapp-dell-storage
Source: https://opendev.org/starlingx/app-dell-storage/
Files: *
Copyright: (c) 2023 Wind River Systems, Inc
License: Apache-2
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
https://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian-based systems the full text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.
# If you want to use GPL v2 or later for the /debian/* files use
# the following clauses, or change it to suit. Delete these two lines
Files: debian/*
Copyright: 2023 Wind River Systems, Inc
License: Apache-2
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
https://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian-based systems the full text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.

View File

@ -0,0 +1 @@
plugins/dell-storage/*.whl

View File

@ -0,0 +1,2 @@
usr/lib/python3/dist-packages/k8sapp_dell_storage-*.egg-info/*
usr/lib/python3/dist-packages/k8sapp_dell_storage/*

View File

@ -0,0 +1,31 @@
#!/usr/bin/make -f
# export DH_VERBOSE = 1
export APP_NAME=dell-storage
export DEB_VERSION = $(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ' ')
export MAJOR = $(shell echo $(DEB_VERSION) | cut -f 1 -d '-')
export MINOR_PATCH = $(shell echo $(DEB_VERSION) | cut -f 4 -d '.')
export PBR_VERSION=$(MAJOR).$(MINOR_PATCH)
export PYBUILD_NAME=k8sapp-dell-storage
export SKIP_PIP_INSTALL=1
export ROOT=debian/tmp
%:
dh $@ --with=python3 --buildsystem=pybuild
override_dh_auto_install:
python3 setup.py install --install-layout=deb --root $(ROOT)
python3 setup.py bdist_wheel \
--universal \
-d $(ROOT)/plugins/$(APP_NAME)
override_dh_python3:
dh_python3 --shebang=/usr/bin/python3
ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS)))
override_dh_auto_test:
# (tbogue) FIXME
PYTHONDIR=$(CURDIR) stestr run || true
endif

View File

@ -0,0 +1 @@
3.0 (quilt)

View File

@ -0,0 +1,9 @@
---
debname: python3-k8sapp-dell-storage
debver: 1.0-1
src_path: k8sapp_dell_storage
revision:
dist: $STX_DIST
GITREVCOUNT:
BASE_SRCREV: 8db8f63466df064069133380243443e3822fa8ce
SRC_DIR: ${MY_REPO}/stx/app-dell-storage

View File

@ -0,0 +1,35 @@
# Compiled files
*.py[co]
*.a
*.o
*.so
# Sphinx
_build
doc/source/api/
# Packages/installer info
*.egg
*.egg-info
dist
build
eggs
parts
var
sdist
develop-eggs
.installed.cfg
# Other
*.DS_Store
.stestr
.testrepository
.tox
.venv
.*.swp
.coverage
bandit.xml
cover
AUTHORS
ChangeLog
*.sqlite

View File

@ -0,0 +1,4 @@
[DEFAULT]
test_path=./k8sapp_dell_storage/tests
top_dir=./k8sapp_dell_storage
#parallel_class=True

View File

@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2019 Wind River Systems, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Some files were not shown because too many files have changed in this diff Show More