I have been working on a project of migrating Atlassian suites (Confluence/Jira/...) to AWS. This is not a simple lift and shift migration. We actually redesigned everything from ground up. Here is the CICD that I designed. The source codes are stored in on-premise BitBucket, the build tools is AWS Dev Tools (mainly CodeBuild). Development … Continue reading CICD Design for Atlassian Suites in AWS
Have you seen this error in your Jira log? If so, then you are in the right place to solve it 🙂 2019-10-10 02:03:34,970 Caesium-1-4 ERROR ServiceRunner [c.a.j.p.devstatus.provider.DefaultDevSummaryPollService] Refresh failurecom.atlassian.jira.plugin.devstatus.provider.DataProviderRefreshFailure: Data Provider refresh failed with error code 400 and message - HTTP status 400 ] at com.atlassian.jira.plugin.devstatus.provider.DefaultCachingProviderHelper.refreshProvider(DefaultCachingProviderHelper.java:79) at com.atlassian.jira.plugin.devstatus.provider.DefaultDevSummaryPollService.handlePollingSuccess(DefaultDevSummaryPollService.java:69) at com.atlassian.jira.plugin.devstatus.provider.DefaultDevSummaryPollService.lambda$performPull$1(DefaultDevSummaryPollService.java:51) at com.atlassian.jira.plugin.devstatus.provider.source.applink.PollResult$PollResultSuccess.fold(PollResult.java:51) at com.atlassian.jira.plugin.devstatus.provider.DefaultDevSummaryPollService.performPull(DefaultDevSummaryPollService.java:47) … Continue reading Refresh failure com.atlassian.jira.plugin.devstatus.provider.DataProviderRefreshFailure: Data Provider refresh failed with error code 400 and message – HTTP status 400
When building Confluence Data Center on AWS, I was wondering how Confluence Data Centre manages the index file. As we run Confluence cluster in auto-scaling group, the Confluence nodes come and go (not that frequent though, as Confluence is not good at dynamic scaling. It is more schedule based scaling). The newly launched instance gets … Continue reading How Confluence Data Center Manage the Index File?
The kubelet uses liveness probes to know when to restart a Container. For example, liveness probes could catch a deadlock, where an application is running, but unable to make progress. Restarting a Container in such a state can help to make the application more available despite bugs. The kubelet uses readiness probes to know when … Continue reading Configure readinessProbe and livenessProbe for Jira Container on Kubernetes
As wrote earlier, I have a Jira Data Center cluster running on Kubernetes. The cluster has three nodes, and traefik is the ingress controller. https://gist.github.com/jc1518/9f1e0da8d61a865de9eef305d3cb20e2 Sometimes when I create a new issue or open a setting, I got the following errors: The root cause of this is that the request goes to a Jira node … Continue reading Configure Traefik Sticky Session in Kubernetes
There are two ways to reindex Jira Data Center without downtime on Kubernetes. My Jira cluster runs a statefulSet in kubernetes. The configuration details: https://gist.github.com/jc1518/e6ec84f01e4fbe2e5517a02ed38b24ca DON'T use the following methods if you have livenessProbe to monitor the /status. As your pod may get killed when it is doing the re-indexing. You should monitor / for … Continue reading Reindex Jira Data Center without downtime on Kubernetes
Continue with the part one, let's do some configurations. As the folder /var/atlassian/application-data/jira/shared-home does not exist in the offical Jira image, we need to create it manually in the container or fork the repository and modify the Dockerfile to create it. You should have one pod called jira-0 running now if you did everything correctly … Continue reading Run Jira Data Center on Kubernetes Part Two