您可以查看属性文件的修改,并在它们更改时重新创建 ConfigMap。
为此,macOS 和 Linux 有不同的工具。
Linux
在 Linux 上,您可以使用inotifywait
. 您可以按照以下方式进行操作:
创建文件monitor.sh
:
#!/bin/bash
FILE=$1
inotifywait -m -e modify "$FILE" |
while read; do
kubectl create configmap "$(basename $FILE)" --from-file="$FILE" --dry-run -o yaml | kubectl apply -f -
done
然后为每个属性文件执行它:
./monitor.sh /path/app.properties
这将生成一个更新的 ConfigMap YAML 清单,并在每次修改文件时kubectl create
应用它。kubectl apply
/path/app.properties
您可以安装inotifywait
:
sudo apt-get install inotify-tools
苹果系统
在 macOS 上,您可以使用fswatch
来监视文件修改。
创建文件monitor.sh
:
#!/bin/bash
FILE=$1
fswatch "$FILE" |
while read; do
kubectl create configmap "$(basename $FILE)" --from-file="$FILE" --dry-run -o yaml | kubectl apply -f -
done
然后为每个属性文件执行它:
./monitor.sh /path/app.properties
这将生成一个更新的 ConfigMap YAML 清单,并在每次修改文件时kubectl create
应用它。kubectl apply
/path/app.properties
您可以安装fswatch
:
brew install fswatch
笔记
fswatch
也可能在 Linux ( sudo apt-get install fswatch
) 上可用,在这种情况下,您也可以monitor.sh
在 Linux 上使用 macOS 的脚本。但是,您可能需要使用fswatch -o
(带有-o
选项)来确保只有一个输出行。