我正在尝试将IBM图表部署到kubernetes (牧场主)。我使用helmfile v.0.141.0 (helm 3,kubectl 1.22.2)来实现这一点。我想要实现的是在部署后以编程方式创建自定义队列。我试图使用helmfile挂钩来实现这一目标,但它们似乎不起作用(我认为它们执行得太早了)。我的档案:
repositories:
- name: ibm-stable-charts
url: https://raw.githubusercontent.com/IBM/charts/master/repo/stable
releases:
- name: ibm-mq
labels:
app: ibm-mq
namespace: user
chart: ibm-stable-charts/ibm-mqadvanced-server-dev
hooks:
- events: [ "cleanup" ]
showlogs: true
command: "./script.sh"
values:
- license: accept
image:
tag: latest
queueManager:
dev:
secret:
adminPasswordKey: secret
name: secret
如果需要更多关于如何重新创建这种情况的详细信息,可以阅读本指南。我的script.sh
看起来是这样的:
#!/bin/bash
runmqsc QM1 <<EOF
define qlocal (TEST);
end;
EOF
我看到在helmfile部署了IBM-MQ之后执行它,但是没有输出,甚至启用了tho loggin,如果您检查了吊舱的日志,您可以看到ibm-mq实际上需要一段时间才能启动,而且我假设脚本是在IBM-MQ还没有启动时执行的(如果它正在连接,当然如果您检查队列新队列不在这里)。我试图将这个字符串添加到文件的开头,用于连接ibm,但它也没有工作。
#!/bin/bash
kubectl exec -i -t -n user ibm-mq-0 -c qmgr "--" sh -c "clear; (bash || ash || sh)"
runmqsc QM1 <<EOF ...
那么,有没有办法在不创建新映像的情况下创建自定义队列,如在这里描述的?
发布于 2022-06-09 10:27:28
示例MQ容器映像将自动处理它在/etc/mqm
目录中找到的任何MQSC文件。因此,您可以更新Helm图表,以便将ConfigMap中的文件放在该位置。新的IBM MQ示例Helm图会为你这样做的。
在幕后,容器使用crtmqm -ic
选项执行此操作,该选项在启动时运行指定目录中的任何文件。
https://stackoverflow.com/questions/69913254
复制相似问题