diff --git a/snippets/aws.fish b/snippets/aws.fish new file mode 100644 index 0000000..4839f1b --- /dev/null +++ b/snippets/aws.fish @@ -0,0 +1,27 @@ +#!fish + +alias aws-caller-info 'aws sts get-caller-identity' +alias aws-ssm 'aws ssm start-session --target' + +function aws-assume-role-by-name + set current_caller (aws-caller-info --output json | jq -r '.UserId' -) + aws-iam-role-arn-from-name "$argv[1]" \ + | xargs -I {} \ + aws sts assume-role \ + --role-arn "{}" \ + --role-session-name "$current_caller-as-$argv[1]-stsSession" \ + && echo "Assumed role $argv[1]; Session name: '$current_caller-as-$argv[1]-stsSession'" +end + +function aws-iam-role-arn-from-name + aws iam list-roles --output 'text' \ + --query "Roles[?RoleName == '$argv[1]'].Arn" +end + +alias aws-ssm-gitlabAutoscalingManager-ita-b "aws ec2 describe-instances --output text \ + --filters \ + 'Name=availability-zone,Values=eu-south-1b' \ + 'Name=instance-state-name,Values=running' \ + 'Name=tag:Name,Values=Gitlab Autoscaling Manager' \ + --query 'Reservations[].Instances[0].InstanceId' \ +| xargs -ot aws ssm start-session --target" diff --git a/snippets/functions.sh b/snippets/functions.sh new file mode 100644 index 0000000..6d80252 --- /dev/null +++ b/snippets/functions.sh @@ -0,0 +1,19 @@ +#!sh + +is_strictly_false () { + if [[ "$1" =~ '0|^[Ff][Aa][Ll][Ss][Ee]$|^[Nn][Oo]?$|^$' ]] + then + true + else + false + fi +} +is_strictly_true () { + if [[ "$1" =~ '1|^[Tt][Rr][Uu][Ee]$|^[Yy]([Ee][Ss])?$' ]] + then + # 0 as in "function ended successfully" + true + else + false + fi +} diff --git a/snippets/gitlab-runner.sh b/snippets/gitlab-runner.sh new file mode 100644 index 0000000..4de7fa4 --- /dev/null +++ b/snippets/gitlab-runner.sh @@ -0,0 +1,7 @@ +#!sh + +gitlab-runner exec docker \ + --env 'AWS_ACCESS_KEY_ID=AKIA…' --env 'AWS_SECRET_ACCESS_KEY=FsN4…' --env 'AWS_REGION=eu-west-1' \ + --env 'DOCKER_AUTH_CONFIG={ "credsStore": "ecr-login" }' \ + --docker-volumes "$HOME/.aws/credentials:/root/.aws/credentials:ro" \ + 'pulumi preview' diff --git a/snippets/gitlab.sh b/snippets/gitlab.sh new file mode 100644 index 0000000..6b3615d --- /dev/null +++ b/snippets/gitlab.sh @@ -0,0 +1,6 @@ +#!sh + +sudo yum check-update +sudo yum info 'gitlab-ee' +sudo rpm -qa | grep 'gitlab-ee' +tmux new-session -A -s 'gitlab-upgrade' "sudo yum update 'gitlab-ee'" diff --git a/snippets/gpg.fish b/snippets/gpg.fish new file mode 100644 index 0000000..e4702c6 --- /dev/null +++ b/snippets/gpg.fish @@ -0,0 +1,7 @@ +#!fish + +gpg-connect-agent reloadagent '/bye' + +gpg-connect-agent updatestartuptty '/bye' \ +&& set -x 'SSH_AUTH_SOCK' (gpgconf --list-dirs 'agent-ssh-socket') \ +&& set -x 'GPG_TTY' (tty) diff --git a/snippets/k3s.install.bash b/snippets/k3s.install.bash index 4a9d2d3..fdee901 100755 --- a/snippets/k3s.install.bash +++ b/snippets/k3s.install.bash @@ -5,8 +5,7 @@ set -e curl "https://github.com/k3s-io/k3s/releases/download/v1.19.7%2Bk3s1/k3s" \ - --location \ - --remote-name + --location --remote-name sudo k3s server & # Kubeconfig is written to /etc/rancher/k3s/k3s.yaml diff --git a/snippets/osx.sh b/snippets/osx.sh new file mode 100644 index 0000000..f66ee92 --- /dev/null +++ b/snippets/osx.sh @@ -0,0 +1,5 @@ +#!sh + +scutil --set 'ComputerName' "$(defaults read '/Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName')" +scutil --set 'HostName' "$(defaults read '/Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName')" +scutil --set 'LocalHostName' "$(defaults read '/Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName')" diff --git a/snippets/pulumi.fish b/snippets/pulumi.fish new file mode 100644 index 0000000..2fa6999 --- /dev/null +++ b/snippets/pulumi.fish @@ -0,0 +1,32 @@ +#!fish + +function pulumi-all-of-type + pulumi stack export \ + | jq -r --arg type "$argv[1]" '.deployment.resources[]|select(.type==$type).urn' +end + +# Examples: +# - $ pulumi-all-of-typeRegex 'Endpoint$' +# urn:pulumi:dev::ds::aws:sagemaker/endpoint:Endpoint::ml-endpoint +function pulumi-all-of-typeRegex + pulumi stack export \ + | jq -r --arg regex "$argv[1]" '.deployment.resources[]|select(.type|test($regex)).urn' +end + +function pulumi-id2urn + pulumi stack export \ + | jq -r --arg id "$argv[1]" '.deployment.resources[]|select(.id==$id).urn' +end + +function pulumi-urn2id + pulumi stack export \ + | jq -r --arg urn "$argv[1]" '.deployment.resources[]|select(.urn==$urn).id' +end + +# Examples: +# - $ pulumi-urnRegex2urn 'gitlab_ee_main_instance$' +# urn:pulumi:dev::start::aws:ec2/instance:Instance::monitoring-instance +function pulumi-urnRegex2urn + pulumi stack export \ + | jq -r --arg regex "$argv[1]" '.deployment.resources[]|select(.urn|test($regex)).urn' +end