在存储库的源代码中找不到profile.properties文件?
是否可以在openshift中使用环境变量?
如果是,如何在Openshift环境中设置-Dkeycloak.profile.feature.scripts=enabled
?
答案 0 :(得分:0)
环境变量是Openshift中的一流概念。有很多使用它们的方法:
经常看到开发人员使用.env
命名的.gitignore
文件,而不是git。过去,我曾编写脚本将其加载到openshift中的Secret中,然后使用envFrom
在部署中设置该Secret。然后有一个.env.staging
和.env.live
,我们git secret
加密成git。
.env
文件的问题在于,它们有时会变得凌乱,并且一段时间后会出现未使用的垃圾。因此,我们将文件分为一个Secret(秘密)作为数据库凭据,为每个api凭据分别设置Secrets(秘密),针对应用程序特定设置的ConfigMap。用于共享设置的ConfigMap。
这些天,我们使用Helmfile基于git webhooks从git加载所有配置。所有配置都是git repo中的yaml(已加密秘密yaml)。如果将对git git repo的更改合并,则Webhook处理程序将解密该配置并运行Helmfile以更新openshift中的设置。我正在开源所有内容,包括使用聊天机器人来管理GitHub
上的发布(可选)我还应该说openshift自动创建许多环境变量来帮助您配置应用程序。在每个项目中,每个窗格中都设置了许多变量,这些变量告诉您在该项目中设置的所有服务的详细信息。
Openshift还会为您的服务设置内部dns条目。这意味着,如果应用程序A使用应用程序B,则无需自己为B配置URL。而是会有一个B的dns条目,您可以使用openshift在A上设置的env var来计算该dns条目和要使用的端口号(例如dns条目包括项目名称,并自动设置为env var通过openshift)。因此,我们的应用程序可以使用该技术找到在同一项目中运行的redis服务。