Helm デプロイの自動削除

Helm デプロイの自動削除

一定時間が経過した後、helmを介して配布されたすべてのポッドを削除したい要件があります。このプロセスは自動化する必要があります。既存にデプロイされた3つのhelmインスタンスの詳細は次のとおりです。

ubuntu@kops:~$ helm ls
NAME                    REVISION        UPDATED                         STATUS          CHART                   NAMESPACE
dandy-vulture           1               Mon May 14 07:21:17 2018        DEPLOYED        mak15-0.1.0             default
dapper-pig              1               Sun May 13 16:32:58 2018        DEPLOYED        naseer-0.1.0            default
eerie-dragonfly         1               Mon May 14 07:13:15 2018        DEPLOYED        mak12-0.1.0             default

少なくとも4時間を過ぎたすべての展開を削除したいと思います。 Helm展開を削除するための手動プロセス(以下の表示)は自動化する必要があります。

# helm delete dandy-vulture

ベストアンサー1

GNU日付を持つシステム(Linuxシステムなど)にいる場合は、awkで解析された出力を使用してから、helm lsGNU日付を使用してエポック以降の秒数を計算し、その展開が十分に古いかどうかを確認できます。

helm ls | awk -v now=$(date +%s) -f delete-old-deployments.awk

内容はdelete-old-deployments.awk次のとおりです。

BEGIN {
  # age cutoff, in seconds
  cutoff=4 * 60 * 60
}

NR > 1 {
        split($0, elements, /   */)
        "date -d '" elements[3] "' +%s" | getline elesecs
        if ((now - elesecs) > cutoff && elements[4] == "DEPLOYED") {
            system("helm delete '"elements[1]"'")

        }
}

次の情報源から収集した情報に基づいてhelm ls ソースコード、出力はスペースで区切られたさまざまな文字列のリストです。そのため、awkは、2つ以上のスペース(split()関数の3番目のパラメータに3つのスペース、2つ、0つ以上のスペースが続きます)に基づいて(ヘッダーをスキップした後)、各行を分割するように要求しました。

分割後の3番目のフィールドは日付文字列です。これをGNU日付に渡して、エポックの後の秒単位に変換するように要求します。 「now」と「then」の差がカットオフ値より大きい場合、helm deleteその名前に対してコマンドを呼び出します。

おすすめ記事