apioo / fusio

Open source API management platform
https://www.fusio-project.org
Apache License 2.0
1.82k stars 217 forks source link

Is there any project or plan to pack the Fusio into Helm Charts? #511

Open wdhwang opened 12 months ago

wdhwang commented 12 months ago

Hi. I am trying to manage all containers by Helm Charts. Is there any project or plan to pack the Fusio into Helm Charts? Thanks & regards

chriskapp commented 12 months ago

Hi @wdhwang currently we have no Helm chart but in general this is a good idea, we should add this to our docker repo s. https://github.com/apioo/fusio-docker

wdhwang commented 12 months ago

Thank you for your response, hope to see it soon.

wdhwang commented 11 months ago

Hi, I am trying run Fusio on K8s, so I modified 'docker-compose.yml' in the following steps.

  1. Change fusio image source to 'image: fusio/fusio:4.0.0' at line 5.
  2. Change 'api.fusio.cloud' to 'master1' for my testing purpose.
  3. Change '8080' port to '30080' for using NodePort.
  4. Change 'mysql_fusio, worker_java, worker_javascript, worker_php, worker_python' names' underscore to hyphen as 'mysql-fusio, worker-java, worker-javascript, worker-php, worker-python'.
  5. Add 'lable' in fusio section at line 33. labels: kompose.service.type: NodePort kompose.service.nodeport.port: "30080"
  6. Add 'expose' in mysql-fusio section. expose:
    • 3306

After docker-compose.yml modified, and use 'kompose' to create K8s resource files. kompose convert -f docker-compose.yml --with-kompose-annotation=false --out k8s/

And execute the following commands. _kubectl create ns fusio kubectl apply -n fusio -f k8s/worker-java-claim0-persistentvolumeclaim.yaml kubectl apply -n fusio -f k8s/worker-javascript-claim0-persistentvolumeclaim.yaml kubectl apply -n fusio -f k8s/worker-php-claim0-persistentvolumeclaim.yaml kubectl apply -n fusio -f k8s/worker-python-claim0-persistentvolumeclaim.yaml kubectl apply -n fusio -f k8s/mysql-fusio-claim0-persistentvolumeclaim.yaml

kubectl apply -n fusio -f k8s/fusio-service.yaml kubectl apply -n fusio -f k8s/mysql-fusio-service.yaml

kubectl apply -n fusio -f k8s/worker-java-deployment.yaml kubectl apply -n fusio -f k8s/worker-javascript-deployment.yaml kubectl apply -n fusio -f k8s/worker-php-deployment.yaml kubectl apply -n fusio -f k8s/worker-python-deployment.yaml kubectl apply -n fusio -f k8s/mysql-fusio-deployment.yaml kubectl apply -n fusio -f k8s/fusio-deployment.yaml

kubectl apply -n fusio -f k8s/fusio-default-networkpolicy.yaml_

Finally, I could let Fusio running on K8s. Fusio-on-K8s

I am not sure this is useful for the project or not. Just sharing with you. docker-compose.zip

wdhwang commented 11 months ago

Hi, I am trying to create helm chart from K8s resource files after Fusio could run on K8s. And I issued the following commands to create helm charts. sed -e "s,true,false,g" -i k8s/default-networkpolicy.yaml awk 'FNR==1 && NR!=1 {print "---"}{print}' k8s/.yaml | helmify fusio-helm helm install fusio --create-namespace -n fusio ./fusio-helm

But I found there were no files of Fusio under the directory of /var/lib/mysql/fusio in the Pod of MySQL. So there were no tables in database of fusio. And I still tried to figure out what happened.

wdhwang commented 11 months ago

I found the reason why the helm charts did not work. Because the service name in 'metadata' section was too long in the generated YAML file by helmify. So I removed all '{{ include "fusio-helm.fullname" . }}' from all YAML files. After testing, I think the attachment zip file worked. fusio-helm.zip

If you are free, you may test it.

chriskapp commented 11 months ago

Thanks for the feedback and testing, I will try it out and see whether everything works, in general would it be ok for you if I add this to our https://github.com/apioo/fusio-docker repository?

wdhwang commented 11 months ago

Of course, you can. I hope this is helpful.

mhemken-vts commented 2 months ago

Any update?