如何将音量附加到pod的后期开始生命周期挂钩?
问题描述:
试用的用例是,启动后初始化postgres数据库的方法。我在openshift
pod生命周期中看到post
开始挂钩。我无法使用here-document
或在命令行中输入sql语句(由于最大长度问题,Docker命令失败)。如何将音量附加到pod的后期开始生命周期挂钩?
所以寻找一个选项,通过ConfigMap
保存SQL
语句在一个文件中,并开始之前附加到post
容器,使psql
命令可以执行它。我看不到从官方文档的DeploymentConfig
附加卷的方法。有什么办法可以做到吗?
文件我称之为 - openshift-doc
答
我找到了一个解决办法,以度过漫漫SQL语句来post
生命周期吊舱。
设置DeploymentConfig
ENV变量中的SQL语句。这些ENV变量也可以在生命周期模块内部访问,所以我们可以轻松地执行下列命令:
post:
failurePolicy: Abort
execNewPod:
command:
- /bin/bash
- '-c'
- >-
echo $INIT_SQL_STATEMENTS | psql "sslmode=allow
host=postgres user=postgres password=postgres"
containerName: postgres
.....
env:
- name: POSTGRESQL_ADMIN_PASSWORD
value: postgres
- name: INIT_SQL_STATEMENTS
value: >-
create user haridas with encrypted password 'haridas';...
您是说这些命令太长而无法在后期部署execNewPod挂钩中使用? – luciddreamz
@luciddreamz是的。这就是我在这里把所有文件放在'psql'命令中的情况。所以现在试图把SQL语句放在一个文件中(通过Configmap)并使用'psql'来执行它。将该文件提供给后期生命周期吊舱是我面临的问题。 –