Installation Guide
This guide provides comprehensive instructions for installing the Scality S3 CSI Driver in a Kubernetes cluster with production-ready configurations and security best practices.
Prerequisites
Before starting, ensure all requirements outlined in the Prerequisites guide are met.
Installation Overview
The installation process consists of:
- Setting configuration variables
- Creating a namespace for the driver (recommended for production)
- Creating S3 credentials as a Kubernetes Secret
- Configuring and installing the Helm chart
- Checking the installation of the driver
Step 1. Set Configuration Variables
-
Set the namespace in which the s3 credentials secret will be created and the driver will be deployed. Replace
scality-s3-csi
with the preferred namespace name.1
export NAMESPACE="scality-s3-csi"
-
Set the secret name in which the s3 credentials will be stored. Replace
s3-secret
with the preferred secret name.1
export SECRET_NAME="s3-secret"
-
Set the access key ID. Replace
YOUR_ACCESS_KEY_ID
with the actual access key ID.1
export ACCESS_KEY_ID="YOUR_ACCESS_KEY_ID"
-
Set the secret access key. Replace
YOUR_SECRET_ACCESS_KEY
with the actual secret access key.Note
To avoid storing sensitive credentials in your shell history, history can be temporarily disabled before running commands with sensitive information:
1 2 3 4 5
set +o history # temporarily turn off history # export SECRET_ACCESS_KEY= set -o history # turn it back on
1
export SECRET_ACCESS_KEY="YOUR_SECRET_ACCESS_KEY"
-
Set the session token (optional). Replace
YOUR_SESSION_TOKEN
with the actual session token. The driver does not communicate with RING STS service to refresh the session token.1
# export SESSION_TOKEN="YOUR_SESSION_TOKEN"
Step 2. Create Namespace
Creating a dedicated namespace provides better security isolation and resource management:
1 |
|
Step 3. Create S3 Credentials Secret
1 2 3 4 |
|
Temporary Credentials
The driver does not communicate with RING S3 Connector's STS service. If session tokens are used, the credentials will not be refreshed automatically.
OR with session token (if needed):
1 2 3 4 5 |
|
Step 4. Install the Driver
Choose one of the following installation options:
Option A: Minimal Installation
S3 Endpoint URL
For S3 endpoint URL, port number can be added if needed; example: http://s3.example.com:8000
Port number can be omitted for default port 80
for HTTP or 443
for HTTPS
Set the S3 endpoint URL:
Replace https://s3.example.com
with the actual RING S3 endpoint URL.
1 |
|
Install the Helm Chart:
Deploy the driver with minimal configuration.
1 2 3 4 5 |
|
Option B: Advanced Installation
For environments requiring custom configuration:
Create Custom Values File:
Create a values-production.yaml
file with preferred configuration.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
|
For a complete list of configurable parameters, see the Helm Chart Configuration Reference reference.
Install the Helm Chart:
Deploy the driver using the custom values file.
1 2 3 4 |
|
Step 5. Verification
Check Driver Pods
Check that the driver pods are running:
1 |
|
Expected output: One s3-csi-node-*
pod per eligible worker node, all in Running
state.
Check CSI Driver Registration
1 |
|
Check Driver Logs (Optional)
To troubleshoot or check driver operation:
1 2 |
|
You should see the following output:
1 2 3 |
|
Uninstallation
If Volumes Were Provisioned
If any applications (Kubernetes pods) were using PersistentVolumes or PersistentVolumeClaims provisioned using the S3 CSI driver, follow the complete uninstallation guide to properly clean up all resources.
If no volumes were provisioned, you can uninstall the driver with these simple steps:
These steps assume that environment variables, NAMESPACE
and SECRET_NAME
are set per the installation steps above.
Step 1. Uninstall the Helm release:
1 |
|
Step 2. Delete the S3 credentials secret:
1 |
|
Step 3. Delete the namespace (if created):
1 |
|
Step 4. Check removal:
Check that CSI driver is removed:
1 |
|
Check that no driver pods remain:
1 |
|
Next Steps
Volume Provisioning: See the volume provisioning guides to learn how to use S3 buckets as volumes with kubernetes applications.