add truenas ci jobs
Signed-off-by: Travis Glenn Hansen <travisghansen@yahoo.com>
This commit is contained in:
parent
9b107de721
commit
55e1c89be1
|
|
@ -21,28 +21,15 @@ jobs:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
config:
|
config:
|
||||||
- synlogy-iscsi/default.yaml
|
- synlogy/iscsi.yaml
|
||||||
runs-on:
|
runs-on:
|
||||||
- self-hosted
|
- self-hosted
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: csi-sanity
|
- name: csi-sanity
|
||||||
run: |
|
run: |
|
||||||
export PATH="/usr/local/lib/nodejs/bin:${PATH}"
|
# run tests
|
||||||
# install deps
|
ci/bin/run.sh
|
||||||
npm i
|
|
||||||
|
|
||||||
# generate key for paths etc
|
|
||||||
export CI_BUILD_KEY=$(uuidgen)
|
|
||||||
|
|
||||||
# launch the server
|
|
||||||
sudo -E ci/bin/launch-server.sh &
|
|
||||||
|
|
||||||
# wait for server to launch
|
|
||||||
sleep 10
|
|
||||||
|
|
||||||
# launch csi-sanity
|
|
||||||
sudo -E ci/bin/launch-csi-sanity.sh
|
|
||||||
env:
|
env:
|
||||||
TEMPLATE_CONFIG_FILE: "./ci/configs/${{ matrix.config }}"
|
TEMPLATE_CONFIG_FILE: "./ci/configs/${{ matrix.config }}"
|
||||||
SYNOLOGY_HOST: ${{ secrets.SANITY_SYNOLOGY_HOST }}
|
SYNOLOGY_HOST: ${{ secrets.SANITY_SYNOLOGY_HOST }}
|
||||||
|
|
@ -50,11 +37,56 @@ jobs:
|
||||||
SYNOLOGY_USERNAME: ${{ secrets.SANITY_SYNOLOGY_USERNAME }}
|
SYNOLOGY_USERNAME: ${{ secrets.SANITY_SYNOLOGY_USERNAME }}
|
||||||
SYNOLOGY_PASSWORD: ${{ secrets.SANITY_SYNOLOGY_PASSWORD }}
|
SYNOLOGY_PASSWORD: ${{ secrets.SANITY_SYNOLOGY_PASSWORD }}
|
||||||
SYNOLOGY_VOLUME: ${{ secrets.SANITY_SYNOLOGY_VOLUME }}
|
SYNOLOGY_VOLUME: ${{ secrets.SANITY_SYNOLOGY_VOLUME }}
|
||||||
TARGET_PORTAL: ${{ secrets.SANITY_SYNOLOGY_TARGET_PORTAL }}
|
|
||||||
|
# api-based drivers
|
||||||
|
csi-sanity-truenas-scale:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
config:
|
||||||
|
- truenas/scale-iscsi.yaml
|
||||||
|
- truenas/scale-nfs.yaml
|
||||||
|
- truenas/scale-smb.yaml
|
||||||
|
runs-on:
|
||||||
|
- self-hosted
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: csi-sanity
|
||||||
|
run: |
|
||||||
|
# run tests
|
||||||
|
ci/bin/run.sh
|
||||||
|
env:
|
||||||
|
TEMPLATE_CONFIG_FILE: "./ci/configs/${{ matrix.config }}"
|
||||||
|
TRUENAS_HOST: ${{ secrets.SANITY_TRUENAS_SCALE_HOST }}
|
||||||
|
TRUENAS_USERNAME: ${{ secrets.SANITY_TRUENAS_SCALE_USERNAME }}
|
||||||
|
TRUENAS_PASSWORD: ${{ secrets.SANITY_TRUENAS_SCALE_PASSWORD }}
|
||||||
|
|
||||||
|
# ssh-based drivers
|
||||||
|
csi-sanity-truenas-core:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
config:
|
||||||
|
- truenas/core-iscsi.yaml
|
||||||
|
- truenas/core-nfs.yaml
|
||||||
|
- truenas/core-smb.yaml
|
||||||
|
runs-on:
|
||||||
|
- self-hosted
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: csi-sanity
|
||||||
|
run: |
|
||||||
|
# run tests
|
||||||
|
ci/bin/run.sh
|
||||||
|
env:
|
||||||
|
TEMPLATE_CONFIG_FILE: "./ci/configs/${{ matrix.config }}"
|
||||||
|
TRUENAS_HOST: ${{ secrets.SANITY_TRUENAS_CORE_HOST }}
|
||||||
|
TRUENAS_USERNAME: ${{ secrets.SANITY_TRUENAS_CORE_USERNAME }}
|
||||||
|
TRUENAS_PASSWORD: ${{ secrets.SANITY_TRUENAS_CORE_PASSWORD }}
|
||||||
|
|
||||||
build:
|
build:
|
||||||
needs:
|
needs:
|
||||||
- csi-sanity-synology
|
- csi-sanity-synology
|
||||||
|
- csi-sanity-truenas-scale
|
||||||
|
- csi-sanity-truenas-core
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,10 @@ set -x
|
||||||
: ${CSI_MODE:=""}
|
: ${CSI_MODE:=""}
|
||||||
: ${CSI_VERSION:="1.5.0"}
|
: ${CSI_VERSION:="1.5.0"}
|
||||||
: ${CSI_ENDPOINT:=/tmp/csi-${CI_BUILD_KEY}.sock}
|
: ${CSI_ENDPOINT:=/tmp/csi-${CI_BUILD_KEY}.sock}
|
||||||
|
: ${LOG_PATH:=/tmp/csi-${CI_BUILD_KEY}.log}
|
||||||
|
|
||||||
if [[ "x${CONFIG_FILE}" == "x" ]];then
|
if [[ "x${CONFIG_FILE}" == "x" ]];then
|
||||||
: ${CONFIG_FILE:=$(mktemp -t ci-csi-config-XXXXXXXX)}
|
: ${CONFIG_FILE:=/tmp/csi-config-${CI_BUILD_KEY}.yaml}
|
||||||
|
|
||||||
if [[ "x${TEMPLATE_CONFIG_FILE}" != "x" ]];then
|
if [[ "x${TEMPLATE_CONFIG_FILE}" != "x" ]];then
|
||||||
envsubst < "${TEMPLATE_CONFIG_FILE}" > "${CONFIG_FILE}"
|
envsubst < "${TEMPLATE_CONFIG_FILE}" > "${CONFIG_FILE}"
|
||||||
|
|
@ -21,4 +22,5 @@ if [[ "x${CSI_MODE}" != "x" ]];then
|
||||||
EXTRA_ARGS="--csi-mode ${CSI_MODE} ${EXTRA_ARGS}"
|
EXTRA_ARGS="--csi-mode ${CSI_MODE} ${EXTRA_ARGS}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# > "${LOG_PATH}" 2>&1
|
||||||
./bin/democratic-csi --log-level debug --driver-config-file "${CONFIG_FILE}" --csi-version "${CSI_VERSION}" --csi-name "driver-test" --server-socket "${CSI_ENDPOINT}" ${EXTRA_ARGS}
|
./bin/democratic-csi --log-level debug --driver-config-file "${CONFIG_FILE}" --csi-version "${CSI_VERSION}" --csi-name "driver-test" --server-socket "${CSI_ENDPOINT}" ${EXTRA_ARGS}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
export PATH="/usr/local/lib/nodejs/bin:${PATH}"
|
||||||
|
# install deps
|
||||||
|
npm i
|
||||||
|
|
||||||
|
# generate key for paths etc
|
||||||
|
export CI_BUILD_KEY=$(uuidgen | cut -d "-" -f 1)
|
||||||
|
|
||||||
|
# launch the server
|
||||||
|
sudo -E ci/bin/launch-server.sh &
|
||||||
|
|
||||||
|
# wait for server to launch
|
||||||
|
sleep 10
|
||||||
|
|
||||||
|
# launch csi-sanity
|
||||||
|
sudo -E ci/bin/launch-csi-sanity.sh
|
||||||
|
|
@ -13,10 +13,10 @@ synology:
|
||||||
volume: ${SYNOLOGY_VOLUME}
|
volume: ${SYNOLOGY_VOLUME}
|
||||||
|
|
||||||
iscsi:
|
iscsi:
|
||||||
targetPortal: ${TARGET_PORTAL}
|
targetPortal: ${SYNOLOGY_HOST}
|
||||||
targetPortals: []
|
targetPortals: []
|
||||||
baseiqn: "iqn.2000-01.com.synology:XpenoDsm62x."
|
baseiqn: "iqn.2000-01.com.synology:XpenoDsm62x."
|
||||||
namePrefix: "csi-${CI_BUILD_KEY}"
|
namePrefix: "csi-${CI_BUILD_KEY}-"
|
||||||
nameSuffix: "-ci"
|
nameSuffix: "-ci"
|
||||||
|
|
||||||
lunTemplate:
|
lunTemplate:
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
driver: freenas-api-iscsi
|
||||||
|
|
||||||
|
httpConnection:
|
||||||
|
protocol: http
|
||||||
|
host: ${TRUENAS_HOST}
|
||||||
|
port: 80
|
||||||
|
#apiKey:
|
||||||
|
username: ${TRUENAS_USERNAME}
|
||||||
|
password: ${TRUENAS_PASSWORD}
|
||||||
|
|
||||||
|
zfs:
|
||||||
|
datasetParentName: tank/ci/${CI_BUILD_KEY}/v
|
||||||
|
detachedSnapshotsDatasetParentName: tank/ci/${CI_BUILD_KEY}/s
|
||||||
|
|
||||||
|
zvolCompression:
|
||||||
|
zvolDedup:
|
||||||
|
zvolEnableReservation: false
|
||||||
|
zvolBlocksize:
|
||||||
|
|
||||||
|
iscsi:
|
||||||
|
targetPortal: ${TRUENAS_HOST}
|
||||||
|
interface: ""
|
||||||
|
namePrefix: "csi-ci-${CI_BUILD_KEY}"
|
||||||
|
nameSuffix: ""
|
||||||
|
targetGroups:
|
||||||
|
- targetGroupPortalGroup: 1
|
||||||
|
targetGroupInitiatorGroup: 1
|
||||||
|
targetGroupAuthType: None
|
||||||
|
targetGroupAuthGroup:
|
||||||
|
# 0-100 (0 == ignore)
|
||||||
|
extentAvailThreshold: 0
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
driver: freenas-api-nfs
|
||||||
|
|
||||||
|
httpConnection:
|
||||||
|
protocol: http
|
||||||
|
host: ${TRUENAS_HOST}
|
||||||
|
port: 80
|
||||||
|
#apiKey:
|
||||||
|
username: ${TRUENAS_USERNAME}
|
||||||
|
password: ${TRUENAS_PASSWORD}
|
||||||
|
|
||||||
|
zfs:
|
||||||
|
datasetParentName: tank/ci/${CI_BUILD_KEY}/v
|
||||||
|
detachedSnapshotsDatasetParentName: tank/ci/${CI_BUILD_KEY}/s
|
||||||
|
|
||||||
|
datasetEnableQuotas: true
|
||||||
|
datasetEnableReservation: true
|
||||||
|
datasetPermissionsMode: "0777"
|
||||||
|
datasetPermissionsUser: 0
|
||||||
|
datasetPermissionsGroup: 0
|
||||||
|
|
||||||
|
nfs:
|
||||||
|
shareHost: ${TRUENAS_HOST}
|
||||||
|
shareAlldirs: false
|
||||||
|
shareAllowedHosts: []
|
||||||
|
shareAllowedNetworks: []
|
||||||
|
shareMaprootUser: root
|
||||||
|
shareMaprootGroup: wheel
|
||||||
|
shareMapallUser: ""
|
||||||
|
shareMapallGroup: ""
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
driver: freenas-api-smb
|
||||||
|
|
||||||
|
httpConnection:
|
||||||
|
protocol: http
|
||||||
|
host: ${TRUENAS_HOST}
|
||||||
|
port: 80
|
||||||
|
#apiKey:
|
||||||
|
username: ${TRUENAS_USERNAME}
|
||||||
|
password: ${TRUENAS_PASSWORD}
|
||||||
|
|
||||||
|
zfs:
|
||||||
|
datasetProperties:
|
||||||
|
# smb options
|
||||||
|
#aclmode: restricted
|
||||||
|
#casesensitivity: mixed
|
||||||
|
|
||||||
|
datasetParentName: tank/ci/${CI_BUILD_KEY}/v
|
||||||
|
detachedSnapshotsDatasetParentName: tank/ci/${CI_BUILD_KEY}/s
|
||||||
|
|
||||||
|
datasetEnableQuotas: true
|
||||||
|
datasetEnableReservation: true
|
||||||
|
datasetPermissionsMode: "0777"
|
||||||
|
datasetPermissionsUser: 0
|
||||||
|
datasetPermissionsGroup: 0
|
||||||
|
|
||||||
|
# for smb with guest
|
||||||
|
#datasetPermissionsUser: nobody
|
||||||
|
#datasetPermissionsGroup: nobody
|
||||||
|
|
||||||
|
#datasetPermissionsGroup: root
|
||||||
|
#datasetPermissionsAcls:
|
||||||
|
#- "-m everyone@:full_set:allow"
|
||||||
|
|
||||||
|
#datasetPermissionsAcls:
|
||||||
|
#- "-m u:kube:full_set:allow"
|
||||||
|
|
||||||
|
smb:
|
||||||
|
shareHost: ${TRUENAS_HOST}
|
||||||
|
#nameTemplate: ""
|
||||||
|
namePrefix: "csi-ci-${CI_BUILD_KEY}"
|
||||||
|
nameSuffix: ""
|
||||||
|
shareAuxiliaryConfigurationTemplate: |
|
||||||
|
#guest ok = yes
|
||||||
|
#guest only = yes
|
||||||
|
shareHome: false
|
||||||
|
shareAllowedHosts: []
|
||||||
|
shareDeniedHosts: []
|
||||||
|
#shareDefaultPermissions: true
|
||||||
|
shareGuestOk: true
|
||||||
|
#shareGuestOnly: true
|
||||||
|
#shareShowHiddenFiles: true
|
||||||
|
shareRecycleBin: true
|
||||||
|
shareBrowsable: false
|
||||||
|
shareAccessBasedEnumeration: true
|
||||||
|
shareTimeMachine: false
|
||||||
|
#shareStorageTask:
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
driver: freenas-api-iscsi
|
||||||
|
|
||||||
|
httpConnection:
|
||||||
|
protocol: http
|
||||||
|
host: ${TRUENAS_HOST}
|
||||||
|
port: 80
|
||||||
|
#apiKey:
|
||||||
|
username: ${TRUENAS_USERNAME}
|
||||||
|
password: ${TRUENAS_PASSWORD}
|
||||||
|
|
||||||
|
zfs:
|
||||||
|
datasetParentName: tank/ci/${CI_BUILD_KEY}/v
|
||||||
|
detachedSnapshotsDatasetParentName: tank/ci/${CI_BUILD_KEY}/s
|
||||||
|
|
||||||
|
zvolCompression:
|
||||||
|
zvolDedup:
|
||||||
|
zvolEnableReservation: false
|
||||||
|
zvolBlocksize:
|
||||||
|
|
||||||
|
iscsi:
|
||||||
|
targetPortal: ${TRUENAS_HOST}
|
||||||
|
interface: ""
|
||||||
|
namePrefix: "csi-ci-${CI_BUILD_KEY}"
|
||||||
|
nameSuffix: ""
|
||||||
|
targetGroups:
|
||||||
|
- targetGroupPortalGroup: 1
|
||||||
|
targetGroupInitiatorGroup: 1
|
||||||
|
targetGroupAuthType: None
|
||||||
|
targetGroupAuthGroup:
|
||||||
|
# 0-100 (0 == ignore)
|
||||||
|
extentAvailThreshold: 0
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
driver: freenas-api-nfs
|
||||||
|
|
||||||
|
httpConnection:
|
||||||
|
protocol: http
|
||||||
|
host: ${TRUENAS_HOST}
|
||||||
|
port: 80
|
||||||
|
#apiKey:
|
||||||
|
username: ${TRUENAS_USERNAME}
|
||||||
|
password: ${TRUENAS_PASSWORD}
|
||||||
|
|
||||||
|
zfs:
|
||||||
|
datasetParentName: tank/ci/${CI_BUILD_KEY}/v
|
||||||
|
detachedSnapshotsDatasetParentName: tank/ci/${CI_BUILD_KEY}/s
|
||||||
|
|
||||||
|
datasetEnableQuotas: true
|
||||||
|
datasetEnableReservation: true
|
||||||
|
datasetPermissionsMode: "0777"
|
||||||
|
datasetPermissionsUser: 0
|
||||||
|
datasetPermissionsGroup: 0
|
||||||
|
|
||||||
|
nfs:
|
||||||
|
shareHost: ${TRUENAS_HOST}
|
||||||
|
shareAlldirs: false
|
||||||
|
shareAllowedHosts: []
|
||||||
|
shareAllowedNetworks: []
|
||||||
|
shareMaprootUser: root
|
||||||
|
shareMaprootGroup: root
|
||||||
|
shareMapallUser: ""
|
||||||
|
shareMapallGroup: ""
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
driver: freenas-api-smb
|
||||||
|
|
||||||
|
httpConnection:
|
||||||
|
protocol: http
|
||||||
|
host: ${TRUENAS_HOST}
|
||||||
|
port: 80
|
||||||
|
#apiKey:
|
||||||
|
username: ${TRUENAS_USERNAME}
|
||||||
|
password: ${TRUENAS_PASSWORD}
|
||||||
|
|
||||||
|
zfs:
|
||||||
|
datasetProperties:
|
||||||
|
# smb options
|
||||||
|
#aclmode: restricted
|
||||||
|
#casesensitivity: mixed
|
||||||
|
|
||||||
|
datasetParentName: tank/ci/${CI_BUILD_KEY}/v
|
||||||
|
detachedSnapshotsDatasetParentName: tank/ci/${CI_BUILD_KEY}/s
|
||||||
|
|
||||||
|
datasetEnableQuotas: true
|
||||||
|
datasetEnableReservation: true
|
||||||
|
datasetPermissionsMode: "0777"
|
||||||
|
datasetPermissionsUser: 0
|
||||||
|
datasetPermissionsGroup: 0
|
||||||
|
|
||||||
|
# for smb with guest
|
||||||
|
#datasetPermissionsUser: nobody
|
||||||
|
#datasetPermissionsGroup: nobody
|
||||||
|
|
||||||
|
#datasetPermissionsGroup: root
|
||||||
|
#datasetPermissionsAcls:
|
||||||
|
#- "-m everyone@:full_set:allow"
|
||||||
|
|
||||||
|
#datasetPermissionsAcls:
|
||||||
|
#- "-m u:kube:full_set:allow"
|
||||||
|
|
||||||
|
smb:
|
||||||
|
shareHost: ${TRUENAS_HOST}
|
||||||
|
#nameTemplate: ""
|
||||||
|
namePrefix: "csi-ci-${CI_BUILD_KEY}"
|
||||||
|
nameSuffix: ""
|
||||||
|
shareAuxiliaryConfigurationTemplate: |
|
||||||
|
#guest ok = yes
|
||||||
|
#guest only = yes
|
||||||
|
shareHome: false
|
||||||
|
shareAllowedHosts: []
|
||||||
|
shareDeniedHosts: []
|
||||||
|
#shareDefaultPermissions: true
|
||||||
|
shareGuestOk: true
|
||||||
|
#shareGuestOnly: true
|
||||||
|
#shareShowHiddenFiles: true
|
||||||
|
shareRecycleBin: true
|
||||||
|
shareBrowsable: false
|
||||||
|
shareAccessBasedEnumeration: true
|
||||||
|
shareTimeMachine: false
|
||||||
|
#shareStorageTask:
|
||||||
Loading…
Reference in New Issue