我们有配置庞大的应用程序(这只是一部分):
apiVersion: v1
kind: ConfigMap
metadata:
name: my-app
data:
application.yaml: |-
config:
app: MY-APP
my-custom-map:
KEY1: value1
KEY2: value2
KEY3: value3
KEY4: value4
something1: true
something2: 123
something3: string123
something4: null
subclass:
anotherMap:
"[AAA:0.0.1,BBB:CCC]": "DDD:EEEE"
subclass2:
something4: AAAA
anotherMap2:
0.0.3: 0.0.3
我遵循此示例将configmap与spring boot配置绑定,但仍存在一些问题,例如如何解决yaml中的null,spring yaml后处理器将其解析为空字符串:issue
第二个问题是如何处理此configmap。我知道我可以编辑然后使用apply,但这可能会导致一些错误。是否有一些工具可以用来编辑这个yaml并制作一些bash脚本进行编辑?类似:/我的脚本。sh-函数addMyCustomMapValue-args“KEY5:value5”。我试图探索yq,但我认为它有一些局限性,很难用于某些用例,然后kustomize,我认为它有利于创建configmap,但不利于编辑现有的配置地图。
这个用例已经有一些好的例子了吗?
这是在kubernetes env中编辑和更改的最佳工具
K9s:https://github.com/derailed/k9s
您可以在部署之前探索https://kubeval.instrumenta.dev/以捕获任何配置图错误
apiVersion: v1
kind: ConfigMap
metadata:
name: application-conf
data:
{{- if .Values.global.applicationConfiguration }}
application.properties: |
{{- .Values.global.applicationConfiguration | nindent 4 }}
{{- end }}
这就是我们指定配置映射的方式。在您的values.yaml中添加application ationConfiguration
如果指定了,那么只有它会在外部编写application.properties
。它不需要具有所有属性。
选项:1
您可以使用镜头:https://k8slens.dev/kubernetes.html
它UI监视和管理K8s集群。使用它,您还可以编辑配置图。
选项:2
您可以将所有键值管理到单个YAML文件中,并从文件创建configmap:
kubectl create configmap some-config \
--from-file=some-key=some-config.yaml \
-n some-namespace \
-o yaml \
--dry-run | kubectl apply -f -
选项:3
使用helm
和values.yaml
模板创建图表并进一步应用。
使用YAML头盔的配置图
apiVersion: v1
kind: ConfigMap
metadata:
name: jksconfig
data:
config.json: |-
{{ .Files.Get "config.json" | indent 4 }}
选项:4
如果使用configmap作为环境或将其注入文件路径,则还可以使用Hashi corp vault:https://www.vaultproject.io/
选项:5
正如您所建议的,您可以创建一个Bash脚本,该脚本将现有正在运行的Configmap导出到一个新的YAML文件,您可以手动编辑YAML。您可以将更改应用于K8s群集。
#bin/bash
kubectl get configmap <configmap-name> -o yaml > cofig.yaml
您还可以检查:https://github.com/Gallore/yaml_cli可能会有帮助。
我发现Atom编辑器是Sublime文本编辑器的免费替代品。无法找到在Atom编辑器中运行程序的简单方法。在我的例子中,我试图运行一个java程序。如果可能的话请告诉我如果是,请说明应采取的步骤。
我安装了一个脚本包,以便能够在Atom editor中运行Java程序。但我还是无法运行它。正在获取以下错误消息: “bash”不被识别为内部或外部命令、可操作程序或批处理文件 这里还缺什么? 我正在使用Windows 7。相同的编辑器和相同的包在Ubuntu上运行,没有任何问题。
Android Studio中我的应用程序的可以编辑,但编辑完文本后,退出窗口时将不会保存。怎么办?
我是kubernetes的新手,需要在openshift平台上使用k8s confimap将springboot应用程序的属性文件外部化。我已将属性文件保存在git repo中,作为“greeter.message=Spring Bootmyapplication.properties已在库伯内特斯上挂载为卷!”并使用“oc create confimap myconfig--from-file=
我希望我的 Quarkus 应用程序在默认端口以外的端口上运行。我怎样才能做到这一点?
我在Azure中构建了一个简单的函数,该函数从json主体中获取文件的位置,并读取第一行以从该文件中获取头部。我正在Visual Studio中构建函数,并使用打包部署发布它。 我可以在Azure Functions下测试门户上的函数,并有一个返回结果,但当我尝试和逻辑应用程序的函数时,我得到了404未找到的错误。 我已经创建了MS给出的示例HTTPRequest函数,该函数在相同的函数名下运行良