|
Khaliq opened 6 months ago
|
New commits added 6 months ago
|
|
|
I have tested this chart with all the provided options and in terms of database i used internal and MySQL. Corresponding documentation update : https://code.onedev.io/onedev/docs/~pulls/14 |
|
|
![]() |
Thanks for your contribution. Really appreciated! I started a new gke cluster, and the initial installation gives me below error:
This is how I tested:
Also I noticed that letsencrypt setup has been removed. Any reason for that? |
![]() |
Some more findings:
|
New commits added 6 months ago
|
|
|
Issues are fixed now, it was an oversight on my part , the It makes sens to have separate ssh service based on the info pull request onedev/server#32 here. I have added the manifest for separate ssh service and config params in values.yaml to install ssh service separately if enabled. Following parameters have been removed from
|
|
In my opinion, it would be better if the Let's Encrypt issuer is not included in the chart deployment. The primary focus of the chart should be solely on OneDev. If a user has cert-manager set up, they can easily add an issuer manifest separately. It's important to note that the chart assumes the presence of cert-manager, if enabled in chart, it can cause installation failures for users without cert-manager. It would be more beneficial to add the issuer manifest to the documentation instead of embedding it in the chart. This way, users can refer to the documentation for guidance on how to apply the issuer manifest, and it ensures that the chart remains focused on OneDev installation. Installation docs have been updated with these instruction and issuer manifest. That is just my opinion , if still needed let me know i can add it back and push the changes. |
![]() |
I tested and now it works!
Totally agree with you. As long as there is a step by step guide for setting up letsencrypt, that will be fine. Thanks for adding guide for that. Will test it later. |
![]() |
Now I can deploy the chart into a brand new cluster and access OneDev via localhost through port forwarding, which is great. I continue to test with ingress setup following the guide. One problem I am encountering is that I maintain dns records out of k8s at godaddy. Currently there is no instructions on how to get the external ip for OneDev service. Some more suggestions:
|
|
Path specific settings are now part of ingress resources after version 1.18 Changelog of k8s. We are just providing option for users to change this settings from values if they have a different setup. Latest Ingress Docs. Lets say a user have setup in a subpath
The default settings are provided keeping majority of people like me who will setup the service at subdomain
Can you provide me a bit more details about this , We already have some instructions in NOTES.txt which will be displayed if you are using service type as Loadbalancer, i just need to understand if this is different then that
Yes sure, i will make the changes |
![]() |
One big concern is for existing k8s deployment. Following upgrade guide will certainly no longer works, as original version uses a mysql database. Any possiblity for a smooth upgrade? |
![]() |
It is not possible for OneDev to be accessed via a subpath like this, it only works for top level path like |
![]() |
This is because OneDev has some internal routing logic which does not play well with subpath. |
|
One option is to enable the external database options and provide the MySQL database details, this way users will continue to use that database after upgrade. This will work great for users who are using already using MySQL and deployed it separately. For the users who deployed it as part of the chart , have a couple of options
This can be provided in upgrade section of the docs. I am not sure how onedev handles db migrations or if that is even an option but if there is a way you can mention that |
|
I will make those changes for ingress |
New commits added 6 months ago
|
|
|
I have pushed new changes
|
![]() |
In original version, mysql runs in same pod as onedev server and this is the only option. It is reasonable to ask user to deploy mysql separately and have them providing db details to onedev. In case user just follow the old one-liner upgrade guide from original chart, can we print some warning in the chart refusing to upgrade and pointing them to the new upgrade guide? I am not a helm expert, so want to listen to your suggestions. Once onedev gets connected to mysql, it can handle data upgrade in place without any issues.
Any idea for this? |
|
Direct helm upgrade is not possible if users have older version installed in cluster before. They will run into install errors, this chart is greatly different then existing deployment. So the only option for users is to refer to documentation. Also this prevents users from doing accidental upgrades and losing data. We can can display warning in the install guide and point them to upgrade guide, i will add documentation for doing upgrades if users are coming from older versions of chart if they did install with one liner and mysql was installed as part of chart.
When you use service type as "LoadBalancer", upon install the chart will display information on how to get the loadbalancer IP I am doing local deployment and already know the IP of LoadBalancer which i provide in
Here SERVICE_IP is your loadbalancer IP, and this information is only displayed if service type is Loadbalancer. In the second scenario, if you are using the "ClusterIP" service type and planning to enable ingress in your deployment, Your DNS record is set up with providers like GoDaddy or Route53, You already know the IP of your existing loadbalancer and that is what you are adding in DNS A record. That is if i understood the question correctly |
|
Information about upgrading from an older version of chart is now a part of documentation, and note has also been added in deploy section with link to upgrades. |
![]() |
I am trying to change service type to
And GKE reports below error:
Nevertheless, the load balancer does get created, with an external ip |
|
I think you are trying to updated the deployment from older chart, as i mention it won't be possible to upgrade from older charts |
![]() |
No, I am not upgrading the old chart. Just installed the new chart, and then add a load balancer. |
|
I will test it and get back |
New commits added 6 months ago
|
|
|
The error is a known helm issue when no storageclass name is provided, its fixed now.
As for the loadbalancer it works for me, i am not using any cloud provider but it should work with provider as well.
Let me know how the tests goes.
|
![]() |
Works as expected now. One minor improvement: when I set service to LoadBalancer after chart is deployed, the welcome message tells me to access OneDev via url Another question: I am trying to use one-liner to achieve some typical use cases, for instance, to enable ingress and use custom host name I am using:
However it gives me error:
Seems that paths are not picked up from values.yaml for hosts[0], but I am only overriding the host part. Or I misunderstand things here? |
New commits added 6 months ago
|
|
|
Maybe you you have ingress enabled accidentally, as you can see from my screenshot above, when i changed to
You are right about this, when i hard-coded the path prefix there where some conditions which made it harder for this to work. The issue is now fixed and only one host is supported like current chart. Use below to test it
|
![]() |
I tested again and the message is displaying correctly. Guess I've enabled ingress unintentionally. Sorr for that. Now the problem is that when I enable LoadBalancer, it does allocate an external ip, but OneDev can only be accessed via |
![]() |
Works as expected now. Thx! Only problem is that it should be accessed via port 80 instead of 6610 (see above comment for LoadBalancer). |
|
Service is set to the default port of You can easily set to port
|
![]() |
This extra flexiblity is fine. I think the welcome message needs to be tuned according to current active port:
The same for message when ingress is not enabled |
New commits added 6 months ago
|
|
|
Yes , its has been changed to display the port which is set in values or use default. |
|
This is always going to be |
![]() |
I see. There is http port setting for ingress section. I think this is always the same as service port. Can we remove this setting and use service port directly in ingress template? |
|
Removing this setting does not offer any advantages or benefits. Firstly, it offers flexibility in configuration options. Secondly, our ingress generates a manifest for multiple Kubernetes versions, based on the user's installed version. The logic for generating the manifest relies on this specific settings to determine whether a port number or name is provided. |
![]() |
Every time you change the service port, you will need to change the port in ingress section also, which is not DRY. I hope that OneDev is easy to configure and maintain
Guess you may consult the service port instead? |
New commits added 6 months ago
|
|
|
For this reason we have port name , if you change the service port, the name of port is always same
Alright then, changed to service port |
![]() |
Thanks for making this change. I really like what the new helm chart looks like now. Flexible while still easy to configure for typical use cases. Will continue to test other usage scenarios, so bear with my verbosity. 😊 |
|
You're welcome! Indeed, it is good practice to thoroughly test everything at this stage to ensure comprehensive coverage and address all possible scenarios. |
![]() |
Robin Shen merged 6 months ago
|
Referenced from commit 6 months ago
|
|
![]() |
I merged ths pull request, and will make some adjustments based on your work. Will summarize my changes when done. |
|
Well noted |
![]() |
Changes made by me: Will continue to update docs to reflect the change. Let me know if you have any concerns. |
Submitter | Khaliq |
Target | main |
Source | kha7iq/server:add-new-helm-chart |
This pull request introduces a new Helm chart that installs and runs the OneDev server with an embedded database and persistence enabled.
The following changes have been made in this chart:
mysql
,mariadb
,postgresql
,mssql
,oracle
).ghcr
ordocker
etc.The corresponding documentation and README for the chart have been updated accordingly.