Skip to content

Instantly share code, notes, and snippets.

Avatar

Jackie Chen jc1518

View GitHub Profile
@jc1518
jc1518 / on_prem_instance_profile.py
Last active Dec 10, 2020
Rotate AWS credential for on-prem servers which has tag on-prem:bamboo-agent
View on_prem_instance_profile.py
import os
import json
import logging
import time
import boto3
logger = logging.getLogger()
logger.setLevel(logging.INFO)
sts_client = boto3.client("sts")
@jc1518
jc1518 / jira_remove_old_operations.yaml
Created Oct 29, 2020
jira_remove_old_operations.yaml
View jira_remove_old_operations.yaml
---
- name: Delete old jira node operation records from replicatedindexoperation table
postgresql_query:
login_host: "{{ atl_db_host }}"
port: "{{ atl_db_port }}"
login_user: "{{ atl_db_root_user }}"
login_password: "{{ atl_db_root_password }}"
db: "{{ atl_jdbc_db_name }}"
query: DELETE FROM replicatedindexoperation AS Rep WHERE Rep.node_id NOT IN (SELECT node_id from clusternode)
@jc1518
jc1518 / jira_restore_index_from_snapshot.yaml
Last active Oct 29, 2020
Code snippet for restoring Jira index files from snapshot
View jira_restore_index_from_snapshot.yaml
---
- name: Wait for index files folder ready
wait_for:
path: "{{ atl_product_home }}/caches/indexesV1"
delay: 60
sleep: 10
timeout: 120
ignore_errors: yes
@jc1518
jc1518 / jira_ami_snappy.yaml
Created Sep 24, 2020
Code snippet for adding snappy support in Jira AMI
View jira_ami_snappy.yaml
- name: Install dependencies for snappy
yum:
name:
- gcc
- gcc-c++
- automake
- snappy
- snappy-devel
- git
when: atl_product_family == "jira"
View s3_endpoint_policy_sample.json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "MyTestDataBucketReadAccess",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
@jc1518
jc1518 / a3.py
Created Jul 30, 2020
Automate Atlassian Addons POC
View a3.py
# a3 = Automate Atlassian Addons
def get_server_info(server, auth):
''' Check application version on the server '''
print("\n>>> Checking server information")
server_application = server.split('.')[0].split('-')[0]
url = "https://{}/rest/applinks/1.0/manifest".format(server)
headers = {'content-type': 'application/xml'}
response = requests.get(url, auth=auth, headers=headers)
response.raise_for_status()
View jira_remove_stale_node.yml
---
- name: Check if this is a new cluster that has not been initialized
stat:
path: "{{ atl_product_home_shared }}/export/indexsnapshots"
register: snapshotfolder
- name: Remove offline jira nodes from clusternode table
postgresql_query:
login_host: "{{ atl_db_host }}"
View jira_remove_stale_node-default-main.yml
---
atl_db_root_password: "{{ (lookup('aws_secret', '/jira/database/master', region='ap-southeast-2')| from_json).get('password') }}"
current_epoch_time_sec: "{{ ansible_date_time.epoch }}"
delete_threshold_hours: '24'
@jc1518
jc1518 / accounts.yaml
Created Jan 17, 2020
Ansbile playbook sample - get dictionary value
View accounts.yaml
---
- hosts: localhost
vars:
accounts:
dev:
account: 123
contact: Jackie@123.com
uat:
account: 456
@jc1518
jc1518 / k8s_jira_service_sticky_session.yaml
Created Nov 6, 2019
Jira service with stick sessions config file on k8s
View k8s_jira_service_sticky_session.yaml
---
apiVersion: v1
kind: Service
metadata:
name: jira
labels:
app: jira
annotations:
traefik.ingress.kubernetes.io/affinity: "true"
traefik.ingress.kubernetes.io/session-cookie-name: "sticky"