Openshift 应用程序生命周期事件 - 应用程序创建事件?



我正在尝试挂接到OpenShift中应用程序创建的事件 - 如果存在这样的事件。

原因是,我想运行一个命令(最好在新 pod 中),以创建数据库模式。在应用程序映像中包含此功能是没有意义的,因为我只需要运行一次 - 创建应用程序时。 我已经研究了 pod 生命周期钩子 (https://docs.openshift.com/enterprise/3.1/dev_guide/deployments.html#pod-based-lifecycle-hook),但是每次有新部署时都会发生这些事件。因此,对于我的用例来说,这也太常见了。

有没有办法在创建 Openshift 应用程序时只运行一次映像?

您在此处的评论中走在正确的轨道上。在 OpenShift v2 的日子里,生命周期挂钩也存在相同的场景。

例如,对于OpenShift v2中的WordPress快速入门,我们将检查数据库是否在每个新部署上创建。如果没有,我们初始化了一个与应用程序同名的空数据库(在这种情况下,让WordPress在之后创建模式,但这里需要的想法相同): OpenShift v2 WordPress 部署操作钩

子在 OpenShift v3 中,有几种方法可以实现类似的生命周期挂钩,但我们现在在模板中使用的常见模式是利用执行新 Pod 的能力在部署阶段之前运行数据库设置步骤: OpenShift v3 CakePHP 预部署生命周期挂钩

遵循此模式,您将添加代码以在源存储库中的 v3 CakePHP migrate-database.sh 文件中生成数据库架构,并使用预部署生命周期挂钩(通过 execNewPod)执行脚本,首先检查数据库/模式是否存在(从某个已知表限制 1 中选择 *)在加载架构之前。

最新更新