Solvio Private Cloud Setup
Requirements
- Kubernetes cluster: To install Solvio Private Cloud, you need a standard compliant Kubernetes cluster. You can run this cluster in any cloud, on-premise or edge environment, with distributions that range from AWS EKS to VMWare vSphere. See Deployment Platforms for more information.
- Storage: For storage, you need to set up the Kubernetes cluster with a Container Storage Interface (CSI) driver that provides block storage. For vertical scaling, the CSI driver needs to support volume expansion. For backups and restores, the driver needs to support CSI snapshots and restores.
- Permissions: To install the Solvio Kubernetes Operator you need to have
cluster-admin
access in your Kubernetes cluster. - Locations: By default, the Solvio Operator Helm charts and container images are served from
registry.cloud.solvio.io
.
Note: You can also mirror these images and charts into your own registry and pull them from there.
CLI tools
During the onboarding, you will need to deploy the Solvio Kubernetes Operator using Helm. Make sure you have the following tools installed:
You will need to have access to the Kubernetes cluster with kubectl
and helm
configured to connect to it. Please refer the documentation of your Kubernetes distribution for more information.
Required artifacts
Container images:
registry.cloud.solvio.io/solvio/solvio
registry.cloud.solvio.io/solvio/operator
registry.cloud.solvio.io/solvio/cluster-manager
Open Containers Initiative (OCI) Helm charts:
registry.cloud.solvio.io/solvio-charts/solvio-private-cloud
registry.cloud.solvio.io/library/solvio-kubernetes-api
Mirroring images and charts
To mirror all necessary container images and Helm charts into your own registry, you can either use a replication feature that your registry provides, or you can manually sync the images with Skopeo:
First login to the source registry:
skopeo login registry.cloud.solvio.io
Then login to your own registry:
skopeo login your-registry.example.com
To sync all container images:
skopeo sync --all --src docker --dest docker registry.cloud.solvio.io/solvio/solvio your-registry.example.com/solvio/solvio
skopeo sync --all --src docker --dest docker registry.cloud.solvio.io/solvio/cluster-manager your-registry.example.com/solvio/cluster-manager
skopeo sync --all --src docker --dest docker registry.cloud.solvio.io/solvio/operator your-registry.example.com/solvio/operator
To sync all helm charts:
skopeo sync --all --src docker --dest docker registry.cloud.solvio.io/solvio-charts/solvio-private-cloud your-registry.example.com/solvio-charts/solvio-private-cloud
skopeo sync --all --src docker --dest docker registry.cloud.solvio.io/solvio-charts/solvio-kubernetes-api your-registry.example.com/solvio-charts/solvio-kubernetes-api
During the installation or upgrade, you will need to adapt the repository information in the Helm chart values. See Private Cloud Configuration for details.
Installation and Upgrades
Once you are onboarded to Solvio Private Cloud, you will receive credentials to access the Solvio Cloud Registry. You can use these credentials to install the Solvio Private Cloud solution using the following commands. You can choose the Kubernetes namespace freely.
kubectl create namespace solvio-private-cloud
kubectl create secret docker-registry solvio-registry-creds --docker-server=registry.cloud.solvio.io --docker-username='your-username' --docker-password='your-password' --namespace solvio-private-cloud
helm registry login 'registry.cloud.solvio.io' --username 'your-username' --password 'your-password'
helm upgrade --install solvio-private-cloud-crds oci://registry.cloud.solvio.io/solvio-charts/solvio-kubernetes-api --namespace solvio-private-cloud --version v1.16.3 --wait
helm upgrade --install solvio-private-cloud oci://registry.cloud.solvio.io/solvio-charts/solvio-private-cloud --namespace solvio-private-cloud --version 1.7.0
For a list of available versions consult the Private Cloud Changelog.
Current default versions are:
- solvio-kubernetes-api v1.16.3
- solvio-private-cloud 1.7.0
Especially ensure, that the default values to reference StorageClasses
and the corresponding VolumeSnapshotClass
are set correctly in your environment.
Scope of the operator
By default, the Solvio Operator will only manage Solvio clusters in the same Kubernetes namespace, where it is already deployed. The RoleBindings are also limited to this specific namespace. This default is chosen to limit the operator to the least amount of permissions necessary within a Kubernetes cluster.
If you want to manage Solvio clusters in multiple namespaces with the same operator, you can either configure a list of namespaces that the operator should watch:
operator:
watch:
# If true, watches only the namespace where the Solvio operator is deployed, otherwise watches the namespaces in watch.namespaces
onlyReleaseNamespace: false
# an empty list watches all namespaces.
namespaces:
- solvio-private-cloud
- some-other-namespase
limitRBAC: true
Or you can configure the operator to watch all namespaces:
operator:
watch:
# If true, watches only the namespace where the Solvio operator is deployed, otherwise watches the namespaces in watch.namespaces
onlyReleaseNamespace: false
# an empty list watches all namespaces.
namespaces: []
limitRBAC: false
Uninstallation
To uninstall the Solvio Private Cloud solution, you can use the following command:
helm uninstall solvio-private-cloud --namespace solvio-private-cloud
helm uninstall solvio-private-cloud-crds --namespace solvio-private-cloud
kubectl delete namespace solvio-private-cloud
Note that uninstalling the solvio-private-cloud-crds
Helm chart will remove all Custom Resource Definitions (CRDs) will also remove all Solvio clusters that were managed by the operator.