Deployment Using Helm
The Kubernetes deployment for MetaDefender Storage Security can be performed directly using the provided Helm chart, which is available in our public GitHub repository here.
Example configuration files for different environments are provided in the helm_charts
directory within the repository.
Using the helm repository
The GitHub repository can be used directly as a Helm repository:
helm repo add mdk8s https://opswat.github.io/metadefender-k8s/
helm repo update mdk8s
#Example installation command
helm install mdss mdk8s/metadefender_storage_security -f <CUSTOM_VALUES_FILE.yml>
Alternatively, the repository can be cloned locally:
git clone https://github.com/OPSWAT/metadefender-k8s.git metadefender
cd metadefender/helm_carts
#Example installation command
helm install mdss ./mdss -f <CUSTOM_VALUES_FILE.yml>
Storage
MDSS containers are stateless and do not require persistent storage.
However, if deploying the PostgreSQL database within the cluster, it is recommended to use persistent storage managed by your cloud provider.
An external database can be configured using the following values:
mdss-common-environment
POSTGRESQL_URL"Host=postgres;Port=5432;Username=user;Password=password;Database=dbName"
When using an external database not deployed via the MDSS chart, the deploy_with_mdss_db
value must be set to false
to prevent the chart from deploying an additional database.
Exposing MDSS
By default, the Helm chart deploys a ClusterIP
service for the MDSS deployment.
This can be changed to any service type supported by your Kubernetes cluster.
For example, to create a LoadBalancer
service, overwrite the service_type
value in the webclient
component:
mdss_components
webclient
service_type LoadBalancer
MDSS can also be exposed using an Ingress:
mdss_ingress
host <APP_NAMESPACE>-mdss.k8s # Hostname for the publicly accessible ingress, the `<APP_NAMESPACE>` string will be replaced with the namespace where the chart is deployed
enabled true # Enable or disable the ingress creation
class nginx # Sets the ingress class depending on the installed ingress controller
Flexible deployment
By default, the Helm chart deploys MDSS with support for the following storage units: azureblob
, amazonsdk
, googlecloud
, alibabacloud
, azurefiles
, and box
.
For more efficient resource utilization, you can specify only the required storage units by modifying the ENABLED_MODULES
value.
For instance, to enable support for only Azure, AWS, and GCP:
mdss-common-environment
ENABLED_MODULES"azureblob,azurefiles,amazonsdk,googlecloud"
Supported modules
Currently supported modules include:
azureblob
amazonsdk
googlecloud
alibabacloud
azurefiles
smb
box
graph