Here are the basic steps to getting a minio tenant deployed inot kubernetes. There are some pre-requisites tasks to be deployed (and will not be covered in this article) including
Add Helm Respository
Lets start by installing the helm repository
helm repo add minio-operator https://operator.min.io
helm repo update
Create the minio operator
Now lets create the minio operator that we will use later to create the tenant.
Create a file minio-operator.yaml
console:
ingress:
enabled: true
ingressClassName: "nginx"
annotations:
cert-manager.io/cluster-issuer: vault-issuer
tls:
- hosts:
- ui-operator-7f000101.nip.io
secretName: minio-console-tls
host: ui-operator-7f000101.nip.io
path: /
pathType: Prefix
number: 9090
and deploy it using
helm upgrade --install operator minio-operator/operator --namespace minio-operator --create-namespace -f minio-operator.yaml
Confirm it is running by checking the output of kubectl get pods -n minio-operator
which should be similair to
NAME READY STATUS RESTARTS AGE
console-7fcfdb8d98-8kwxd 1/1 Running 0 137m
minio-operator-69986bb674-8qdg6 1/1 Running 0 137m
minio-operator-69986bb674-pz8rc 1/1 Running 0 137m
we can get the jwt
required to access the console by using the following command.
kubectl get secret/console-sa-secret -n minio-operator -o go-template='{{.data.token | base64decode}}'
Open a web browser to ui-operator-7f000101.nip.io and use the jwt
collected before.
Congrats the minio operator has been deployed and lets create a tenant.
Add a tenant
Create a file minio-tenant.yaml
secrets:
name: fido-env-configuration
accessKey: admin
secretKey: passw0rd
tenant:
name: fido
configuration:
name: fido-env-configuration
pools:
- servers: 1
name: pool
size: 200Mi
volumesPerServer: 1
ingress:
api:
enabled: true
ingressClassName: "nginx"
annotations:
cert-manager.io/cluster-issuer: vault-issuer
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
tls:
- hosts:
- api-fido-7f000101.nip.io
secretName: fido-minio-api-tls
host: api-fido-7f000101.nip.io
path: /
pathType: Prefix
console:
enabled: true
ingressClassName: "nginx"
annotations:
cert-manager.io/cluster-issuer: vault-issuer
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
tls:
- hosts:
- ui-fido-7f000101.nip.io
secretName: fido-minio-console-tls
host: ui-fido-7f000101.nip.io
path: /
pathType: Prefix
and deploy it using
helm upgrade --install --namespace minio-fido --create-namespace minio-fido minio-operator/tenant -f minio-tenant.yaml
confirm it is running using kubectl get pods -n minio-fido
which should be similair to
NAME READY STATUS RESTARTS AGE
fido-pool-0 2/2 Running 0 68m
Open a web browser to ui-fido-7f000101.nip.io and use the credentials admin:password
defined in the secret fido-env-configuration
.
Congrats the minio tenant has been deployed and so lets configure the mc
command.
mc configuration
Download the mc
from the instructions here https://min.io/docs/minio/linux/reference/minio-mc.html#install-mc
open a command prompt / terminal and issue the following
mc alias set fido/ https://api-fido-7f000101.nip.io admin password
create a bucket and copy a test file to it
- Create a bucket
mc mb fido/backups
returns
Bucket created successfully `fido/backups`.
- Copy a file to it
# linux/mac touch test
# windows powershell echo $null >> filename
mc cp test fido/backups
returns
0 B / ? [ =]
- list contents of the bucket
mc ls fido/backups
returns
[2024-04-09 08:07:58 AEST] 0B STANDARD test
When completed check the operator and bucket ui to see similar to
Top comments (0)