Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: update the documentation on MinIO configuration #14097

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 38 additions & 6 deletions docs/configure-artifact-repository.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,29 +32,61 @@ First, [install `helm`](https://helm.sh/docs/intro/install/). Then, install MinI
```bash
helm repo add minio https://charts.min.io/ # official minio Helm charts
helm repo update
helm install argo-artifacts minio/minio --set service.type=LoadBalancer --set fullnameOverride=argo-artifacts
```

Login to the MinIO UI using a web browser (port 9000) after obtaining the
By default, this chart deploys 16 replicas, each requiring 16 GiB of memory and 500 GiB of disk space on your cluster. You can modify these values to match your environment's capacities by declaring the `MEMORY_REQ`, `SPACE_REQ`, and `REPLICAS` variables:

```bash
export MEMORY_REQ=4Gi
export SPACE_REQ=20Gi
export REPLICAS=4
```

To access the MinIO UI from outside the cluster, configure the service as a `LoadBalancer` to expose port 9001 by using the following option:

```bash
--set consoleService.type=LoadBalancer
```

Finalize the install by installing the Helm release:

```bash
# If you already tried this install but it failed you should erase previous PVC with : kubectl delete pvc -l app=minio -l release=argo-artifact
helm install argo-artifacts minio/minio \
--set service.type=LoadBalancer \
--set consoleService.type=LoadBalancer \
--set fullnameOverride=argo-artifacts \
--set resources.requests.memory=$MEMORY_REQ \
--set replicas=$REPLICAS \
--set volumeClaimTemplates.spec.resources.requests.storage=$SPACE_REQ
```

Login to the MinIO UI using a web browser (port 9001) after obtaining the
external IP using `kubectl`.

```bash
kubectl get service argo-artifacts
kubectl get service argo-artifacts-console
```

On Minikube:

```bash
minikube service --url argo-artifacts
minikube service --url argo-artifacts-console
```

NOTE: When MinIO is installed via Helm, it generates
credentials, which you will use to login to the UI:
Use the commands shown below to see the credentials

- `AccessKey`: `kubectl get secret argo-artifacts -o jsonpath='{.data.accesskey}' | base64 --decode`
- `SecretKey`: `kubectl get secret argo-artifacts -o jsonpath='{.data.secretkey}' | base64 --decode`
```bash
# Retrieve MinIO credentials
rootUser=$(kubectl get secret argo-artifacts --namespace default -o jsonpath="{.data.rootUser}" | base64 --decode)
rootPassword=$(kubectl get secret argo-artifacts --namespace default -o jsonpath="{.data.rootPassword}" | base64 --decode)

echo "MinIO Root User: $rootUser"
echo "MinIO Root Password: $rootPassword"

```
Create a bucket named `my-bucket` from the MinIO UI.

If MinIO is configured to use TLS you need to set the parameter `insecure` to `false`. Additionally, if MinIO is protected by certificates generated by a custom CA, you first need to save the CA certificate in a Kubernetes secret, then set the `caSecret` parameter accordingly. This will allow Argo to correctly verify the server certificate presented by MinIO. For example:
Expand Down
Loading