#!/bin/bash -e
set -o pipefail

function kapply() {
    for f in "$@"; do
        kubectl apply -f <(envsubst < "manifests/$f")
    done
}; export -f kapply

function kcreatesec() {
    kubectl create secret generic --dry-run=client -oyaml "$@" | kubectl replace -f-
}; export -f kcreatesec

function kcreatecm() {
    kubectl create configmap --dry-run=client -oyaml "$@" | kubectl replace -f-
}; export -f kcreatecm

function kgseckey() {
    local sec="$1"; shift
    local key="$1"; shift

    if ! kubectl get secret "$sec" -ojson | jq -re ".data.\"$key\" // empty" | base64 -d; then
        return 1
    fi
}; export -f kgseckey

function kgcmkey() {
    local cm="$1";  shift
    local key="$1"; shift

    if ! kubectl get configmap "$cm" -ojson | jq -re ".data.\"$key\" // empty"; then
        return 1
    fi
}; export -f kgcmkey


kapply common/app.yaml

kubectl rollout restart deployment app
