forked from rook/rook
As per discussion, proposing a new layout for the charts/yaml/olm files.
./deploy
├── charts
│ ├── rook-ceph
│ │ └── templates
│ └── rook-ceph-cluster
│ └── templates
├── examples
│ ├── csi
│ │ ├── cephfs
│ │ └── rbd
│ ├── flex
│ ├── monitoring
│ ├── pre-k8s-1.16
└── olm
└── assemble
Signed-off-by: Sébastien Han <seb@redhat.com>
166 lines
4.9 KiB
Bash
166 lines
4.9 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
##############
|
|
# VARIABLES #
|
|
#############
|
|
MON_SECRET_NAME=rook-ceph-mon
|
|
CSI_RBD_NODE_SECRET_NAME=rook-csi-rbd-node
|
|
CSI_RBD_PROVISIONER_SECRET_NAME=rook-csi-rbd-provisioner
|
|
CSI_CEPHFS_NODE_SECRET_NAME=rook-csi-cephfs-node
|
|
CSI_CEPHFS_PROVISIONER_SECRET_NAME=rook-csi-cephfs-provisioner
|
|
RGW_ADMIN_OPS_USER_SECRET_NAME=rgw-admin-ops-user
|
|
MON_SECRET_CLUSTER_NAME_KEYNAME=cluster-name
|
|
MON_SECRET_FSID_KEYNAME=fsid
|
|
MON_SECRET_ADMIN_KEYRING_KEYNAME=admin-secret
|
|
MON_SECRET_MON_KEYRING_KEYNAME=mon-secret
|
|
MON_SECRET_CEPH_USERNAME_KEYNAME=ceph-username
|
|
MON_SECRET_CEPH_SECRET_KEYNAME=ceph-secret
|
|
MON_ENDPOINT_CONFIGMAP_NAME=rook-ceph-mon-endpoints
|
|
ROOK_EXTERNAL_CLUSTER_NAME=$NAMESPACE
|
|
ROOK_EXTERNAL_MAX_MON_ID=2
|
|
ROOK_EXTERNAL_MAPPING={}
|
|
ROOK_EXTERNAL_MONITOR_SECRET=mon-secret
|
|
: "${ROOK_EXTERNAL_ADMIN_SECRET:=admin-secret}"
|
|
|
|
#############
|
|
# FUNCTIONS #
|
|
#############
|
|
|
|
function checkEnvVars() {
|
|
if [ -z "$NAMESPACE" ]; then
|
|
echo "Please populate the environment variable NAMESPACE"
|
|
exit 1
|
|
fi
|
|
if [ -z "$ROOK_EXTERNAL_FSID" ]; then
|
|
echo "Please populate the environment variable ROOK_EXTERNAL_FSID"
|
|
exit 1
|
|
fi
|
|
if [ -z "$ROOK_EXTERNAL_CEPH_MON_DATA" ]; then
|
|
echo "Please populate the environment variable ROOK_EXTERNAL_CEPH_MON_DATA"
|
|
exit 1
|
|
fi
|
|
if [[ "$ROOK_EXTERNAL_ADMIN_SECRET" == "admin-secret" ]]; then
|
|
if [ -z "$ROOK_EXTERNAL_USER_SECRET" ]; then
|
|
echo "Please populate the environment variable ROOK_EXTERNAL_USER_SECRET"
|
|
exit 1
|
|
fi
|
|
if [ -z "$ROOK_EXTERNAL_USERNAME" ]; then
|
|
echo "Please populate the environment variable ROOK_EXTERNAL_USERNAME"
|
|
exit 1
|
|
fi
|
|
if [ -z "$CSI_RBD_NODE_SECRET" ]; then
|
|
echo "Please populate the environment variable CSI_RBD_NODE_SECRET"
|
|
exit 1
|
|
fi
|
|
if [ -z "$CSI_RBD_PROVISIONER_SECRET" ]; then
|
|
echo "Please populate the environment variable CSI_RBD_PROVISIONER_SECRET"
|
|
exit 1
|
|
fi
|
|
if [ -z "$CSI_CEPHFS_NODE_SECRET" ]; then
|
|
echo "Please populate the environment variable CSI_CEPHFS_NODE_SECRET"
|
|
exit 1
|
|
fi
|
|
if [ -z "$CSI_CEPHFS_PROVISIONER_SECRET" ]; then
|
|
echo "Please populate the environment variable CSI_CEPHFS_PROVISIONER_SECRET"
|
|
exit 1
|
|
fi
|
|
fi
|
|
if [[ "$ROOK_EXTERNAL_ADMIN_SECRET" != "admin-secret" ]] && [ -n "$ROOK_EXTERNAL_USER_SECRET" ] ; then
|
|
echo "Providing both ROOK_EXTERNAL_ADMIN_SECRET and ROOK_EXTERNAL_USER_SECRET is not supported, choose one only."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
function importSecret() {
|
|
kubectl -n "$NAMESPACE" \
|
|
create \
|
|
secret \
|
|
generic \
|
|
--type="kubernetes.io/rook" \
|
|
"$MON_SECRET_NAME" \
|
|
--from-literal="$MON_SECRET_CLUSTER_NAME_KEYNAME"="$ROOK_EXTERNAL_CLUSTER_NAME" \
|
|
--from-literal="$MON_SECRET_FSID_KEYNAME"="$ROOK_EXTERNAL_FSID" \
|
|
--from-literal="$MON_SECRET_ADMIN_KEYRING_KEYNAME"="$ROOK_EXTERNAL_ADMIN_SECRET" \
|
|
--from-literal="$MON_SECRET_MON_KEYRING_KEYNAME"="$ROOK_EXTERNAL_MONITOR_SECRET" \
|
|
--from-literal="$MON_SECRET_CEPH_USERNAME_KEYNAME"="$ROOK_EXTERNAL_USERNAME" \
|
|
--from-literal="$MON_SECRET_CEPH_SECRET_KEYNAME"="$ROOK_EXTERNAL_USER_SECRET"
|
|
}
|
|
|
|
function importConfigMap() {
|
|
kubectl -n "$NAMESPACE" \
|
|
create \
|
|
configmap \
|
|
"$MON_ENDPOINT_CONFIGMAP_NAME" \
|
|
--from-literal=data="$ROOK_EXTERNAL_CEPH_MON_DATA" \
|
|
--from-literal=mapping="$ROOK_EXTERNAL_MAPPING" \
|
|
--from-literal=maxMonId="$ROOK_EXTERNAL_MAX_MON_ID"
|
|
}
|
|
|
|
function importCsiRBDNodeSecret() {
|
|
kubectl -n "$NAMESPACE" \
|
|
create \
|
|
secret \
|
|
generic \
|
|
--type="kubernetes.io/rook" \
|
|
"$CSI_RBD_NODE_SECRET_NAME" \
|
|
--from-literal=userID=csi-rbd-node \
|
|
--from-literal=userKey="$CSI_RBD_NODE_SECRET"
|
|
}
|
|
|
|
function importCsiRBDProvisionerSecret() {
|
|
kubectl -n "$NAMESPACE" \
|
|
create \
|
|
secret \
|
|
generic \
|
|
--type="kubernetes.io/rook" \
|
|
"$CSI_RBD_PROVISIONER_SECRET_NAME" \
|
|
--from-literal=userID=csi-rbd-provisioner \
|
|
--from-literal=userKey="$CSI_RBD_PROVISIONER_SECRET"
|
|
}
|
|
|
|
function importCsiCephFSNodeSecret() {
|
|
kubectl -n "$NAMESPACE" \
|
|
create \
|
|
secret \
|
|
generic \
|
|
--type="kubernetes.io/rook" \
|
|
"$CSI_CEPHFS_NODE_SECRET_NAME" \
|
|
--from-literal=adminID=csi-cephfs-node \
|
|
--from-literal=adminKey="$CSI_CEPHFS_NODE_SECRET"
|
|
}
|
|
|
|
function importCsiCephFSProvisionerSecret() {
|
|
kubectl -n "$NAMESPACE" \
|
|
create \
|
|
secret \
|
|
generic \
|
|
--type="kubernetes.io/rook" \
|
|
"$CSI_CEPHFS_PROVISIONER_SECRET_NAME" \
|
|
--from-literal=adminID=csi-cephfs-provisioner \
|
|
--from-literal=adminKey="$CSI_CEPHFS_PROVISIONER_SECRET"
|
|
}
|
|
|
|
function importRGWAdminOpsUser() {
|
|
kubectl -n "$NAMESPACE" \
|
|
create \
|
|
secret \
|
|
generic \
|
|
--type="kubernetes.io/rook" \
|
|
"$RGW_ADMIN_OPS_USER_SECRET_NAME" \
|
|
--from-literal=accessKey="$RGW_ADMIN_OPS_USER_ACCESS_KEY" \
|
|
--from-literal=secretKey="$RGW_ADMIN_OPS_USER_SECRET_KEY"
|
|
}
|
|
|
|
########
|
|
# MAIN #
|
|
########
|
|
checkEnvVars
|
|
importSecret
|
|
importConfigMap
|
|
importCsiRBDNodeSecret
|
|
importCsiRBDProvisionerSecret
|
|
importCsiCephFSNodeSecret
|
|
importCsiCephFSProvisionerSecret
|
|
importRGWAdminOpsUser
|