背景:我在不同的位置有将近15个*.properties文件。我需要为每个属性文件创建configmap。
目前,我正在使用以下工具手动创建configmap yaml文件
kubectl create configmap app-properties --from-file= /path/app.properties.挂载后,一切都运行正常。
要求:只要我们将任何新的键/值添加到属性文件中,它就应该反映在configmap yaml文件中。我可以使用一些“包含文件”动态创建configmap yaml吗?
发布于 2019-12-06 15:02:15
您可以查看属性文件的修改情况,并在更改时重新创建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这将使用kubectl create生成更新的ConfigMap YAML清单,并在每次修改kubectl apply文件时将其应用于/path/app.properties。
您可以使用以下命令安装inotifywait:
sudo apt-get install inotify-toolsmacOS
在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这将使用kubectl create生成更新的ConfigMap YAML清单,并在每次修改kubectl apply文件时将其应用于/path/app.properties。
您可以使用以下命令安装fswatch:
brew install fswatch备注
在Linux (sudo apt-get install fswatch)上也可以使用fswatch,在这种情况下,您也可以在Linux上使用macOS的monitor.sh脚本。但是,您可能需要使用fswatch -o (带有-o选项)来确保只有一个输出行。
https://stackoverflow.com/questions/59207744
复制相似问题