Closed zeddit closed 12 months ago
hi @zeddit server.xml is generated from a template each time the container starts, and indeed, it does not support additional resources in the context. What you can do though is to:
kubectl create configmap custom-server-xml --from-file=server.xml -n <namespace>
additionalFiles:
- name: custom-server-xml
type: configMap
key: server.xml
mountPath: /opt/atlassian/jira/conf
Once done, run helm upgrade, and you should have server.xml mounted into conf.
@bianchi2 really appreciate for your reply. I have come up with this idea, however, it will break things if I change some other configurations or environment variables some day. Will the chart support inserting JNDI resources in the futures, because the crowd app could load xml files under conf/Catalina/localhost correctly.
@zeddit have you tried mounting xml from configmap to conf/Catalina/localhost
? Did it work for you? Or you edited the file manually from within the container and then restarted?
Supporting any resources in server.xml context isn't easy, and adding just support of smtp is unlikely something that we'll be doing (as I said before, server.xml is generated in container entrypoint, so it's not even a Helm thing)
@bianchi2 I have tried to mount xml to conf/Catalina/localhost
as mentioned in Crowd here. It works for Crowd, however not worked for Jira.
I am not familiar with Tomcat, so I am not sure If I make the configuration code correctly, and there lacks documents about mounting xml to conf/Catalina/localhost
for jira.
I tried to change some attributes from Crowd template, e.g. Path, baseDoc etc. However, the JNDI still cannot be found in Jira UI.
Thanks for explaining. Yeah, it looks like for now the only way to achieve that is to mount server.xml as configmap and not forget to change it when you change some envs that are used to generate it (like proxy host, https etc).
@bianchi2 - if I were to mount via configMap, do I need to change generateByHelm
to true
in values.yaml? or no? And why would I do this vs using customServerXml
?
@BryanGuffeySonos customServerXml is a field for your to define your own server.xml. If you set generateByHelm to true then server.xml will be generated from helm template (i.e. you won't be able to add any custom elements)
@bianchi2 so do you think it’s better to use customServerXml or a config map with additional files if I’m adding a connector and modifying the engine for Application tunnels?
Thanks!
On Sun, Sep 3, 2023 at 13:35 yivantsov-atlassian @.***> wrote:
@BryanGuffeySonos https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_BryanGuffeySonos&d=DwMCaQ&c=rs51NVPNx2acMvSlALPpNg&r=EB4s-BECsd0aGLHH9zo9OKcnjbPHE5x6s8SDDdF97oA&m=-th3jSHwDVfQ7VJBwkrBdQNbUZeeASUgAsifx6zrUns-v7NmJgDUYUfAj2eYDySQ&s=4dta-XM_Ir6VBsh45jTmCegVRFN0Paq8lqPcxev1vxc&e= customServerXml is a field for your to define your own server.xml. If you set generateByHelm to true then server.xml will be generated from helm template (i.e. you won't be able to add any custom elements)
— Reply to this email directly, view it on GitHub https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_atlassian_data-2Dcenter-2Dhelm-2Dcharts_issues_540-23issuecomment-2D1704395699&d=DwMCaQ&c=rs51NVPNx2acMvSlALPpNg&r=EB4s-BECsd0aGLHH9zo9OKcnjbPHE5x6s8SDDdF97oA&m=-th3jSHwDVfQ7VJBwkrBdQNbUZeeASUgAsifx6zrUns-v7NmJgDUYUfAj2eYDySQ&s=QOBwk7Sxo1ItVk0fcgVADufJSUq1z2rXo3NycLE5100&e=, or unsubscribe https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_A2KRJTZWQK2BYXDLGKKYOBDXYTS2BANCNFSM6AAAAAAWEZBBGU&d=DwMCaQ&c=rs51NVPNx2acMvSlALPpNg&r=EB4s-BECsd0aGLHH9zo9OKcnjbPHE5x6s8SDDdF97oA&m=-th3jSHwDVfQ7VJBwkrBdQNbUZeeASUgAsifx6zrUns-v7NmJgDUYUfAj2eYDySQ&s=0rVrS-NY7xdacH0uq23hM8ItZOIK04fgIaa63rms8_k&e= . You are receiving this because you were mentioned.Message ID: @.***>
@BryanGuffeySonos both additionalConfigMaps and customServerXml will let you define your own server.xml and keep it with helm chart values. Historically, these two props were added after additionalFiles to server different usecases.
Got it. so no preference between them - can we define specific values to be added vs the entire server.xml being overwritten?
Yes, no preference.
Also yes to being able to use one or the other to only override specific things or insert additional items, or will either one create a wholly custom server.xml. I promise, last question, and thanks for all your time!
@BryanGuffeySonos tomcatConfig
was introduced mainly for OpenShift where container runs as a non privileged user and server.xml generation (that happens in the image entrypoint) fails due to permission issues. So, we added this option to do generation on helm side and let users override what's possible to override in the template packaged into the image.
In your case I suggest you define additionalConfigMaps
with your desired server.xml content. In this case, dynamic generation of server.xml will not take effect in the image entrypoint, and a configmap with your server.xml will be mounted to tomcat's conf dir.
@bianchi2 - I tried using additionalConfigMaps
and was unsuccessful. In the examples provided in the documentation, it is recommended to define the ConfigMap in the Pod spec, but according to the Kubernetes documentation,
You must create the ConfigMap object before you reference it in a Pod specification. Alternatively, mark the ConfigMap reference as optional in the Pod spec (see Optional ConfigMaps). If you reference a ConfigMap that doesn't exist and you don't mark the reference as optional, the Pod won't start. Similarly, references to keys that don't exist in the ConfigMap will also prevent the Pod from starting, unless you mark the key references as optional.
Can you help me understand this?
In additionalCofnigMaps you define the keys and content of configmaps that you want Helm to create for you:
additionalConfigMaps:
- name: server-xml
keys:
- fileName: server.xml
mountPath: /opt/atlassian/jira/conf
content: |
<xml>YOUR_SERVER_XML</xml>
Close this one since a workaround is available - mount server.xml using additionalConfigMaps or additionalFiles (if you want to create the CM outside Helm)
Suggestion
the official guide says it could add smtp servers by Configuring a JNDI location, e.g. the jira one 's documentation is located at here, https://confluence.atlassian.com/adminjiraserver0904/configuring-an-smtp-mail-server-to-send-notifications-1188768602.html#ConfiguringanSMTPmailservertosendnotifications-ConfiguringaJNDIlocation
However, I found it hard to code the into the server.xml.
I found another solution that may add a new xml file, e.g. 'jira.xml', to the path of '/opt/atlassian/jira/conf/Catalina/localhost', which contain Context and Resources.
But I still cannot make it succeed. the frontend UI still pops me out with
NameNotFoundException: Name [mail/JiraMailServer] is not bound in this Context. Unable to find [mail].
What should I do to add some JNDI resources to jira deployed in kubernetes
thanks.
Product
Jira
Code of Conduct