GithubHelp home page GithubHelp logo

Comments (12)

stevehipwell avatar stevehipwell commented on August 26, 2024 1

I'll look at updating my Jira and Confluence charts to use tcpSocket for liveness.

from helm-charts.

stevehipwell avatar stevehipwell commented on August 26, 2024

Thanks for opening this issue @ppuiseux, this is a result of Jira not having K8s compatible status endpoint(s). The ideal solution would be for Jira to provided a /live and a /ready endpoint and only returned the 503 on /ready. In the meanwhile you can either customise the httpGet probe to wait longer or you can set httpGet: {} and provide a tcpSocket probe instead from the chart values. You should only have to do this for liveness as a failing readiness check will not cause a pod restart.

If you can test the tcpSocket behaviour for the liveness check I will consider adding it as default to the chart.

from helm-charts.

ppuiseux avatar ppuiseux commented on August 26, 2024

Thank you @stevehipwell .
I totally agree with you about the endpoints.

I set my livenessProbe like that:

livenessProbe:
  failureThreshold: 10
  initialDelaySeconds: 360
  periodSeconds: 30
  successThreshold: 1
  httpGet: null
  tcpSocket:
    port: http
  timeoutSeconds: 1

and it works.
However, during re-indexation I have an nginx error and not the Jira Error page but for final user it is the same, he doesn't have application access.

from helm-charts.

stevehipwell avatar stevehipwell commented on August 26, 2024

@ppuiseux that's because the pod isn't ready during this period. The actual issue is that Jira doesn't have a K8s compatible principal of ready, it's either conservative ready (/status is 200) or it's always ready (tcpSocket available). For me conservative ready is the most correct of the two, but it sounds like I could switch to use tcpSocket for liveness checks.

I'm pretty sure that with Nginx you could use a custom backend when the pod isn't ready to show a maintenance page.

from helm-charts.

ppuiseux avatar ppuiseux commented on August 26, 2024

Thank you @stevehipwell .
I raised a ticket on Atlassian Support and I am trying to find the right channel to transmit your solution of /live and /ready endpoints which are the most appropriate ways to solve this problem in my opinion too.
I close the issue here but I keep the link of this page to give it to the appropriate person..

from helm-charts.

stevehipwell avatar stevehipwell commented on August 26, 2024

Thank you @ppuiseux. What are your thoughts on using tcpSocket for liveness so at least the container doesn't restart while running maintenance?

from helm-charts.

ppuiseux avatar ppuiseux commented on August 26, 2024

Sorry @stevehipwell I believed I had answer that in this message.
It works well, the application stays alive while running re-indexation.
The configuration I used is in the same message.

from helm-charts.

stevehipwell avatar stevehipwell commented on August 26, 2024

@ppuiseux did you also test any other http paths for liveness such as /?

from helm-charts.

ppuiseux avatar ppuiseux commented on August 26, 2024

No.
I've just tested it and I've got a 302 on /
I try this edit and I come back to you.

from helm-charts.

stevehipwell avatar stevehipwell commented on August 26, 2024

@ppuiseux codes from 200 to 399 are considered a success for http probes.

from helm-charts.

ppuiseux avatar ppuiseux commented on August 26, 2024

I launched two re-index and both failed at the same moment (9%) with liveness on /.
I have a third running right now with liveness on tcpSocket and is reaches 25% and it continues.

I have a clue. When I run wget http://localhost:80800/ I get a 302 which redirects me to a 503.
I think that Kubernetes follows redirect and keep 503 and not 302.

from helm-charts.

ppuiseux avatar ppuiseux commented on August 26, 2024

I opened a ticket on https://jira.atlassian.com/browse/JRASERVER-72508 to ask for these two new endpoints.

from helm-charts.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.