diff --git a/minio-doc/README.md b/minio-doc/README.md new file mode 100644 index 0000000..51d1b67 --- /dev/null +++ b/minio-doc/README.md @@ -0,0 +1,66 @@ +# Goal + +We want to be able to instantiate a service that allows to store file located on a `processing` pod onto it. + +We have already tested it with a static `Argo` yaml file, a MinIO running on the same kubernetes node, the minio service is reached because it is the only associated to the `serviceAccount`. + +We have established three otpions that need to be available to the user for the feature to be implemented: + +- Use a MinIO running constantly on the node that executes the argo workflow +- Use a MinIO +- A MinIO is instanciated when a new workflow is launched + +# Requirements + +- Helm : `https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3` +- Helm GO client : `$ go get github.com/mittwald/go-helm-client` +- MinIO chart : `https://charts.min.io/` + + +# Ressources + +We need to create several ressources in order for the pods to communicate with the MinIO + +## MinIO Auth Secrets + +## Bucket ConfigMap + +With the name `artifact-repositories` this configMap will be used by default. It contains the URL to the MinIO server and the key to the authentication data held in a `secret` ressource. + +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + # If you want to use this config map by default, name it "artifact-repositories". + name: artifact-repositories + # annotations: + # # v3.0 and after - if you want to use a specific key, put that key into this annotation. + # workflows.argoproj.io/default-artifact-repository: oc-s3-artifact-repository +data: + oc-s3-artifact-repository: | + s3: + bucket: oc-bucket + endpoint: [ retrieve cluster with kubectl get service argo-artifacts -o jsonpath="{.spec.clusterIP}" ]:9000 + insecure: true + accessKeySecret: + name: argo-artifact-secret + key: access-key + secretKeySecret: + name: argo-artifact-secret + key: secret-key + +``` + + +# Code modifications + +Rajouter un attribut "isDataLink" + - true/false + +Rajouter un attribut DataPath ou un truc comme ca + + - liste de map[string]string permet de n'avoir qu'une copie par fichier) + - éditable uniquement a travers la méthode addDataPath + - clé : path du fichier / value : nom de la copie dans minio + +===> on a besoin du meme attribut pour Processing -> Data et Data -> Processing \ No newline at end of file