首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态创建configmap yaml文件

动态创建configmap yaml文件
EN

Stack Overflow用户
提问于 2019-12-06 14:07:23
回答 1查看 360关注 0票数 0

背景:我在不同的位置有将近15个*.properties文件。我需要为每个属性文件创建configmap。

目前,我正在使用以下工具手动创建configmap yaml文件

代码语言:javascript
复制
 kubectl create configmap app-properties --from-file= /path/app.properties.

挂载后,一切都运行正常。

要求:只要我们将任何新的键/值添加到属性文件中,它就应该反映在configmap yaml文件中。我可以使用一些“包含文件”动态创建configmap yaml吗?

EN

回答 1

Stack Overflow用户

发布于 2019-12-06 15:02:15

您可以查看属性文件的修改情况,并在更改时重新创建ConfigMap。

要做到这一点,macOS和Linux有不同的工具。

Linux

在Linux上,您可以使用inotifywait监视文件的更改。您可以按照以下方式做一些事情:

创建文件monitor.sh

代码语言:javascript
复制
#!/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

然后对每个属性文件执行该命令:

代码语言:javascript
复制
./monitor.sh /path/app.properties

这将使用kubectl create生成更新的ConfigMap YAML清单,并在每次修改kubectl apply文件时将其应用于/path/app.properties

您可以使用以下命令安装inotifywait

代码语言:javascript
复制
sudo apt-get install inotify-tools

macOS

在macOS上,您可以使用fswatch监视文件修改。

创建文件monitor.sh

代码语言:javascript
复制
#!/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

然后对每个属性文件执行该命令:

代码语言:javascript
复制
./monitor.sh /path/app.properties

这将使用kubectl create生成更新的ConfigMap YAML清单,并在每次修改kubectl apply文件时将其应用于/path/app.properties

您可以使用以下命令安装fswatch

代码语言:javascript
复制
brew install fswatch

备注

在Linux (sudo apt-get install fswatch)上也可以使用fswatch,在这种情况下,您也可以在Linux上使用macOS的monitor.sh脚本。但是,您可能需要使用fswatch -o (带有-o选项)来确保只有一个输出行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59207744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档