Add the kubernetes role.
This commit is contained in:
parent
3637dcdfcc
commit
80083ff0cc
@ -29,3 +29,4 @@
|
||||
- exfat
|
||||
- bhyve
|
||||
- media
|
||||
- kubernetes
|
||||
|
7
ansible/roles/kubernetes/files/decrypt_k8s_secret
Normal file
7
ansible/roles/kubernetes/files/decrypt_k8s_secret
Normal file
@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
kubectl get secret -o json "${@}" | jq '.data[] |= @base64d | .data'
|
7
ansible/roles/kubernetes/files/k
Normal file
7
ansible/roles/kubernetes/files/k
Normal file
@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
exec kubectl "$@"
|
7
ansible/roles/kubernetes/files/ka
Normal file
7
ansible/roles/kubernetes/files/ka
Normal file
@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
exec kubectl "$@" --all-namespaces
|
8
ansible/roles/kubernetes/files/kd
Normal file
8
ansible/roles/kubernetes/files/kd
Normal file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
export KUBECTL_EXTERNAL_DIFF="colordiff -N -u"
|
||||
exec kubectl diff "$@"
|
7
ansible/roles/kubernetes/files/kdel
Normal file
7
ansible/roles/kubernetes/files/kdel
Normal file
@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
exec kubectl delete --all "$@"
|
7
ansible/roles/kubernetes/files/klog
Normal file
7
ansible/roles/kubernetes/files/klog
Normal file
@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
exec kubectl logs --all-containers "$@"
|
7
ansible/roles/kubernetes/files/ks
Normal file
7
ansible/roles/kubernetes/files/ks
Normal file
@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
exec kubens "$@"
|
30
ansible/roles/kubernetes/files/kshell
Normal file
30
ansible/roles/kubernetes/files/kshell
Normal file
@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
: ${cpu:="500m"}
|
||||
: ${memory:="2Gi"}
|
||||
|
||||
overrides=""
|
||||
if [ ! -z "${highmem:-}" ]; then
|
||||
overrides=$(jq --compact-output '.' <<EOF
|
||||
{
|
||||
"spec": {
|
||||
"tolerations": [
|
||||
{
|
||||
"key": "dedicated",
|
||||
"operator": "Equal",
|
||||
"value": "background-highmem",
|
||||
"effect": "NoSchedule"
|
||||
}
|
||||
],
|
||||
"nodeSelector": {"dedicated": "background-highmem"}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
)
|
||||
fi
|
||||
|
||||
exec kubectl run --rm -i -t --image alpine:3.13 --overrides="$overrides" --requests "cpu=$cpu,memory=$memory" --limits "cpu=$cpu,memory=$memory" --pod-running-timeout 10m "tom-$(uuidgen | cut -d '-' -f 1)" -- /bin/sh "$@"
|
7
ansible/roles/kubernetes/files/kx
Normal file
7
ansible/roles/kubernetes/files/kx
Normal file
@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
exec kubectx "$@"
|
2
ansible/roles/kubernetes/meta/main.yaml
Normal file
2
ansible/roles/kubernetes/meta/main.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
dependencies:
|
||||
- build
|
53
ansible/roles/kubernetes/tasks/common.yaml
Normal file
53
ansible/roles/kubernetes/tasks/common.yaml
Normal file
@ -0,0 +1,53 @@
|
||||
- name: Install packages
|
||||
package:
|
||||
name:
|
||||
- kubectl
|
||||
- jq # for decrypt_k8s_secret
|
||||
- helm
|
||||
- sops # Encrypt secrets
|
||||
state: present
|
||||
|
||||
# TODO: Make a FreeBSD package for kubeswitch or kubectx
|
||||
# TODO: Make a FreeBSD package for stern
|
||||
|
||||
- name: Install scripts
|
||||
copy:
|
||||
src: "files/{{ item.src }}"
|
||||
dest: "{{ item.dest }}"
|
||||
mode: 0755
|
||||
owner: root
|
||||
group: wheel
|
||||
loop:
|
||||
- src: k
|
||||
dest: /usr/local/bin/k
|
||||
- src: ka
|
||||
dest: /usr/local/bin/ka
|
||||
- src: kd
|
||||
dest: /usr/local/bin/kd
|
||||
- src: kdel
|
||||
dest: /usr/local/bin/kdel
|
||||
- src: klog
|
||||
dest: /usr/local/bin/klog
|
||||
- src: ks
|
||||
dest: /usr/local/bin/ks
|
||||
- src: kshell
|
||||
dest: /usr/local/bin/kshell
|
||||
- src: kx
|
||||
dest: /usr/local/bin/kx
|
||||
- src: decrypt_k8s_secret
|
||||
dest: /usr/local/bin/decrypt_k8s_secret
|
||||
|
||||
- import_tasks: tasks/freebsd.yaml
|
||||
when: 'os_flavor == "freebsd"'
|
||||
|
||||
- import_tasks: tasks/linux.yaml
|
||||
when: 'os_flavor == "linux"'
|
||||
|
||||
- include_tasks:
|
||||
file: tasks/peruser.yaml
|
||||
apply:
|
||||
become: yes
|
||||
become_user: "{{ initialize_user }}"
|
||||
loop: "{{ users | dict2items | community.general.json_query('[?value.initialize==`true`].key') }}"
|
||||
loop_control:
|
||||
loop_var: initialize_user
|
5
ansible/roles/kubernetes/tasks/freebsd.yaml
Normal file
5
ansible/roles/kubernetes/tasks/freebsd.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
- name: Install packages
|
||||
package:
|
||||
name:
|
||||
- py39-yamllint
|
||||
state: present
|
24
ansible/roles/kubernetes/tasks/linux.yaml
Normal file
24
ansible/roles/kubernetes/tasks/linux.yaml
Normal file
@ -0,0 +1,24 @@
|
||||
- name: Build aur packages
|
||||
register: buildaur
|
||||
become_user: "{{ build_user.name }}"
|
||||
command: "aurutils-sync --no-view {{ item }}"
|
||||
args:
|
||||
creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*"
|
||||
loop:
|
||||
- kubeswitch
|
||||
|
||||
- name: Update cache
|
||||
when: buildaur.changed
|
||||
pacman:
|
||||
name: []
|
||||
state: present
|
||||
update_cache: true
|
||||
|
||||
- name: Install packages
|
||||
package:
|
||||
name:
|
||||
- yamllint
|
||||
- stern
|
||||
- kubectx
|
||||
- kubeswitch
|
||||
state: present
|
1
ansible/roles/kubernetes/tasks/main.yaml
Normal file
1
ansible/roles/kubernetes/tasks/main.yaml
Normal file
@ -0,0 +1 @@
|
||||
- import_tasks: tasks/common.yaml
|
29
ansible/roles/kubernetes/tasks/peruser.yaml
Normal file
29
ansible/roles/kubernetes/tasks/peruser.yaml
Normal file
@ -0,0 +1,29 @@
|
||||
- include_role:
|
||||
name: per_user
|
||||
|
||||
# - name: Create directories
|
||||
# file:
|
||||
# name: "{{ account_homedir.stdout }}/{{ item }}"
|
||||
# state: directory
|
||||
# mode: 0700
|
||||
# owner: "{{ account_name.stdout }}"
|
||||
# group: "{{ group_name.stdout }}"
|
||||
# loop:
|
||||
# - ".config/foo"
|
||||
|
||||
# - name: Copy files
|
||||
# copy:
|
||||
# src: "files/{{ item.src }}"
|
||||
# dest: "{{ account_homedir.stdout }}/{{ item.dest }}"
|
||||
# mode: 0600
|
||||
# owner: "{{ account_name.stdout }}"
|
||||
# group: "{{ group_name.stdout }}"
|
||||
# loop:
|
||||
# - src: foo.conf
|
||||
# dest: .config/foo/foo.conf
|
||||
|
||||
- import_tasks: tasks/peruser_freebsd.yaml
|
||||
when: 'os_flavor == "freebsd"'
|
||||
|
||||
- import_tasks: tasks/peruser_linux.yaml
|
||||
when: 'os_flavor == "linux"'
|
0
ansible/roles/kubernetes/tasks/peruser_freebsd.yaml
Normal file
0
ansible/roles/kubernetes/tasks/peruser_freebsd.yaml
Normal file
0
ansible/roles/kubernetes/tasks/peruser_linux.yaml
Normal file
0
ansible/roles/kubernetes/tasks/peruser_linux.yaml
Normal file
Loading…
x
Reference in New Issue
Block a user