Skip to content

Instantly share code, notes, and snippets.

💭
Build systems for people, not for fun

Daniil Yaroslavtsev daniilyar

💭
Build systems for people, not for fun
Block or report user

Report or block daniilyar

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@daniilyar
daniilyar / check-aws-snapshots-not-attached-to-any-ami.sh
Last active Nov 16, 2019
AWS: check if there is no orphaned EBS snapshots (orphaned == not attached to any 'available' AMI)
View check-aws-snapshots-not-attached-to-any-ami.sh
#!/bin/bash
set -e
AWS_ACCOUNT_ID=<ENTER_YOUR_ACCOUNT_ID_HERE>
REGION=us-west-2
ORPHANED_SNAPSHOTS_COUNT_LIMIT=10
WORK_DIR=/tmp
@daniilyar
daniilyar / jenkins_total_build_status
Last active Sep 17, 2019
Script for Jenkins 'Total build status' job which displays all failed jobs with last changes, committers and links to job's console. It will fail if at least one other Jenkins job is failed. Usage: create Jenkins Freestyle job and add this script as "Execute system Groovy script" build step
View jenkins_total_build_status
import jenkins.*
import jenkins.model.*
import hudson.*
import hudson.model.*
import hudson.console.*
import groovy.time.*
import hudson.plugins.git.*
import java.text.SimpleDateFormat
import java.util.Date
@daniilyar
daniilyar / script.groovy
Last active Jul 16, 2019
Jenkins groovy script: get all builds started during a specific time
View script.groovy
// This example lists all job that were started on Jul 16, 2019 between 1:20 PM and 2:30 PM
String df = 'MMM dd, yyyy h:mm a'
long startTimestamp = Date.parse(df, 'Jul 16, 2019 1:20 PM').getTime()
long endTimestamp = Date.parse(df, 'Jul 16, 2019 2:30 PM').getTime()
Jenkins.instance.getAllItems(AbstractItem.class).each {
builds = it.getBuilds().byTimestamp(startTimestamp, endTimestamp)
if(!builds.isEmpty()) {
@daniilyar
daniilyar / ecr_secrets_refresher.sh
Last active Jun 1, 2019
Script for refreshing the ECR secret in all Kubernetes namespaces
View ecr_secrets_refresher.sh
#!/bin/bash
HELP_MSG="This script read the AWS credentials from the execution environment, get the docker-login scring by the AWS-CLI utility, creates the k8s secret with
this docker-login and add it as a a part of "imagePullSecrets" option to the 'default' serviceaccounts in all k8s namespaces.\n
Available arguments: '-s' for the name of the ECR secret will add, '-p' for the patchstring, '-h' for this message."
while getopts :r:p:s:a:h: option
do
case "${option}"
in
@daniilyar
daniilyar / ecr_secrets_refresher.sh
Created May 16, 2019
AWS ECR token refresh script
View ecr_secrets_refresher.sh
#!/bin/bash
HELP_MSG="This script read the AWS credentials from the execution environment and does the docker-login via the AWS-CLI utility.\n
Available arguments: '-s' for the name of the ECR secret will add, '-p' for the profile, '-h' for this message."
while getopts :r:p:h: option
do
case "${option}"
in
r) AWS_REGION="$OPTARG";;
@daniilyar
daniilyar / give-ssh.txt
Last active May 7, 2019
How to give me an SSH access to your Debian machine
View give-ssh.txt
sudo -i
apt-get -y install curl
useradd dyaroslavtsev -m -d /home/dyaroslavtsev -s /bin/bash
echo "dyaroslavtsev ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
mkdir -p /home/dyaroslavtsev/.ssh
curl -sL https://goo.gl/jS8729 > /home/dyaroslavtsev/.ssh/authorized_keys
chown -R dyaroslavtsev:dyaroslavtsev /home/dyaroslavtsev
@daniilyar
daniilyar / find_unused_jobs.groovy
Last active Apr 22, 2019
Jenkins Groovy script to find unused jobs. Unused means 'not built for more than X days'
View find_unused_jobs.groovy
import jenkins.model.Jenkins
import jenkins.model.JenkinsLocationConfiguration
String jobNameRegexp = ".*"
long maxThresholdDays = 30; // days
boolean ignoreDisabledJobs = true
def getLastBuildTime(Job job) {
def lastBuild = job.getLastBuild()
if(lastBuild == null) {
View spellchecker output
~/Desktop/Code/opensource/checkstyle/daniilyar/checkstyle (timestamper_and_retries|✔) $ ./.ci/test-spelling-unknown-words.sh
Clean up from previous run
Run w
Experimental keys on scalar is now forbidden at .ci/jsoref-spellchecker/spelling-unknown-word-splitter.pl line 37.
Experimental keys on scalar is now forbidden at .ci/jsoref-spellchecker/spelling-unknown-word-splitter.pl line 37.
xargs: .ci/jsoref-spellchecker/spelling-unknown-word-splitter.pl: exited with status 255; aborting
Review results
There are now fewer misspellings than before.
.ci/jsoref-spellchecker/whitelist.words could be updated:
@daniilyar
daniilyar / gist:6478af7683d25e664f96
Last active Jul 25, 2017
Packer config for provisioning AWS EBS AMIs
View gist:6478af7683d25e664f96
{
"variables": {
"vault_pass": "{{ env `VAULT_PASS` }}",
"aws_access_key": "{{ env `AWS_ACCESS_KEY` }}",
"aws_secret_key": "{{ env `AWS_SECRET_KEY` }}",
"source_ami_id": "{{ env `SOURCE_AMI_ID` }}",
"playbook": "{{ env `PLAYBOOK` }}",
"ami_description": "{{ env `AMI_DESCRIPTION` }}",
"roles_path": "{{ env `ROLES_PATH` }}"
},
View public key
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeh9PfEk8w+uEfw5Om4vkGVAaYG8G1NSDCwi13i8XYY8xlMFPHMtu+Wo9hmndvJmZAGEa2nMdhRZL0HxL+YQUWlScWnfz5CSh30di3vdojWBHPGbb4aTQm3UuxJHUuwoPeN79UUshW2RPcX7Mv+9RIU1sCc0YDYAsmbtpOrZ3YZMtQXxp87lv865voAbkoA+/SEDf6hVRFvOM8+qVajIrkCRGkXe2yEsJFNn2enTcxb3MveLGPZZeqiXGohDmn7JKl4NpMpmAGDeugeSWdJuzRtN/c8wKvxLZ6sPqp1sCctIvfsq85vKx3G5zcfjNvQ1xRyXDgtpfIngtkTmt5XZvV
You can’t perform that action at this time.