Installation

Minio installation and provider configuration are managed via the component. This setup consists of several key parts:

  • Provider

  • Composition Functions

  • Deployments via Composition Functions

Provider

The appcat.provider.minio section supports multiple types of provider configurations:

  • Referencing an existing provider config by name

  • Creating additional configs using the additionalProviderConfigs field

  • Automatically injecting configs from the appcat.services.vshn.minio.instance field

Composition Functions

This setup uses a minimal composition approach—compositions are entirely generated via functions. Each composition handles exactly one provider config, allowing users to select between different Minio instances.

This mechanism is already used to select between various cloud providers for ObjectBuckets. A default composition can be specified to define which instance should be used by default.

Deployment

You can deploy any number of Minio instances to a cluster via the appcat.services.vshn.minio.instance field. As described above, provider configs are injected automatically, and new compositions are generated accordingly.

Example Configuration

appcat:
  providers:
    minio:
      enabled: true
  services:
    generic:
      objectstorage:
        enabled: true
        defaultComposition: my-minio (1)
        compositions:
          minio:
            enabled: true
    vshn:
      minio:
        enabled: true
        instances:
          - name: my-minio
            namespace: myns
            spec:
              parameters:
                service:
                  mode: standalone (2)
                size:
                  disk: 1Gi
              writeConnectionSecretToRef:
                name: my-minio-creds
1 Name of the default composition reference. Use the name of any instance listed in appcat.services.vshn.minio.instances. NOTE: Do not use the fully qualified composition name (FQDN); the component automatically resolves it.
2 Deploys a single Minio instance in standalone mode.