• 0 Posts
  • 3 Comments
Joined 2 years ago
cake
Cake day: July 24th, 2023

help-circle

  • That would be block storage like glusterfs or ceph, or object storage like minio or rook.

    You could also use ZFS to provide PVCs for your Pods, with openebs.

    If the mini-servers don’t have hardware redundancy, I’d stick to Replicated Volumes only…

    If you go the openebs+ZFS route, you can make a kubernetes service (DaemonSet because it should run on every node) that makes and sends/exposes ZFS snapshots.


  • Here’s an article that does this: https://iridakos.com/programming/2018/03/01/bash-programmable-completion-tutorial

    I have done this for one of my own tools ta, which is a function that switches to a tmux session, or creates it if it doesn’t exist:

    # switch to existing tmux session, or create it.
    # overrides workdir if session name is "Work"
    function ta() {
            case "$1" in
                    Work) workdir="${HOME}/Work/" ;;
                    *) workdir="${HOME}" ;;
            esac
            if tmux has-session -t "$@" &>/dev/null; then
                    tmux switch-client -t "$@"
            else
                    tmux new-session -A -D -d -c "${workdir}" -s "$@"
                    tmux switch-client -t "$@"
            fi
    }
    
    # complete tmux sessions
    # exclude current session from completion
    function _ta_completion() {
            command="${1}"
            completing="${2}"
            previous="${3}"
            [[ "${command}" != 'ta' ]] && return
            current_session="$(tmux display-message -p '#S')"
            IFS=$'\a' COMPREPLY=( $(tmux list-sessions -F '#{session_name}' | grep -i "^${completing}" | grep -v "^${current_session}$"| tr '\n' '\a' ) )
    }
    # enable completion for ta function
    complete -F _ta_completion ta
    

    Usage

    $ tmux (starts session "0" by default)
    $ ta Personal # create session "Personal" because it doesn't exist
    $ ta Work # create session "Work" because it doesn't exist
    $ ta <tab> 
    0 Personal
    $ ta P<tab> -> $ta Personal
    $ ta <tab>
    0 Work