My cluster doesn’t have a
default storageClass defined, and I don’t have access to cluster-admin privileges to create one - how can I install KOTS and specify an alternative storageClassName for KOTS’ PVCs?
We can use the
kots admin-console generate-manifests subcommand to generate the YAML manifests for the admin console and edit KOTS’ PVC definition. However, the
kots upgrade command will erase the modification since it expects the storageClassName to be
default. To upgrade effectively, repeat the process of using
kots admin-console generate-manifests to create the manifest YAML files, edit the PVC definition, and apply the updated manifests to the cluster.
After generating the manifests, add a PersistentVolumeClaim for the
kotsadm-postgres volume that uses the alternative StorageClass:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: kotsadm-postgres spec: accessModes: - ReadWriteOnce storageClassName: my-storageclass resources: requests: storage: 2Gi
and if you are using MinIO, add a second PVC for
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: kotsadm-minio spec: accessModes: - ReadWriteOnce storageClassName: my-storageclass resources: requests: storage: 10Gi
After writing the additional PVCs, deploy these to the cluster prior to deploying KOTS itself.