Add the kubernetes role.
This commit is contained in:
parent
3637dcdfcc
commit
80083ff0cc
@ -29,3 +29,4 @@
|
|||||||
- exfat
|
- exfat
|
||||||
- bhyve
|
- bhyve
|
||||||
- media
|
- 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