微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将外部 git 添加到正在运行的 Fabric 集合

如何解决如何将外部 git 添加到正在运行的 Fabric 集合

我们有一个保险丝/结构集合,我们希望使用外部 git,因为它有助于管理配置文件等。此外,我们想了解如何添加外部 git,以便我们可以将其应用于实际生产,因为前面提到的那个是分期的。

Fuse 文档只展示了如何使用外部 git 创建新的 ensemble,但没有提到如何让现有的 git 使用它(尽管原则上它似乎并不难)。我们尝试过 fabric:create --force 但它失败得很厉害(半成品配置文件等),我们设法以某种方式手动恢复它。

是否有一种已知的方法如何移动现有的集成以使用外部 git(例如,停止一切、更改原始 url、开始,但在哪里设置凭据?当然 fabric:create 确实将配置存储在某处所以它不仅是原始网址,或者在严重断开连接的情况下可能会丢失)?或者,有没有办法创建“新”集成并将所有现有容器“移动”到它上面?

解决方法

为了使用外部 git,您必须配置 io.fabric8.datastore PID,它是 default 配置文件的一部分(因此 - 可用于所有容器,因为所有配置文件都继承自 {{1} }).

因此,在您已经创建了集成 (default) 之后,您可以使用任一 Hawtio 控制台更改 fabric:create PID(只需导航到 Hawtio 的 wiki 中的相关 io.fabric8.datastore tab) 或使用如下命令:

io.fabric8.datastore.properties

在 Hawtio 控制台中,您可以事务性进行操作,避免部分更新 fabric:profile-edit --pid io.fabric8.datastore/gitRemoteUrl=https://github.com/my-org/my-repo.git default fabric:profile-edit --pid io.fabric8.datastore/gitRemoteUser=my-user default fabric:profile-edit --pid io.fabric8.datastore/gitRemotePassword=my-password default PID。

在切换 git 仓库之前,你必须将现有的仓库推送到其他地方

实际的fabric Git 存储库存储在 io.fabric8.datastore 中,因此您可以执行以下操作:

FUSE_HOME/data/git/local/fabric
,

看起来克隆包含所有分支和标签的存储库的正确步骤是:

cd /tmp
git clone --bare $FUSE_HOME/data/git/local/fabric/.git fabric-git
cd fabric-git
git remote add new-location https://github.com/my-org/my-repo.git
git push new-location --mirror
cd ..
rm -rf fabric-git # as you no longer need it

(见https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/duplicating-a-repository

,

我已经实施了 this 并且它似乎有效。它解决了我的问题(请参阅我在 Grzegorz 回答中的评论)新创建的容器无法从远程 git 存储库下载配置文件,因为 git 凭据存储在这些配置文件中(即在默认配置文件中)。

这个想法是将与远程 git 的通信限制到父容器。这些您无需重新创建,就我而言,它们是一个整体。

通过将 io.fabric8.datastore.propertiesfabric-git-server 功能一起从默认配置文件移动到新的 fabric-git-master 配置文件(基于结构配置文件)来解决该问题,该配置文件替换了父级中的结构配置文件容器。

这个动作是分几个步骤完成的,以保持整体的一致性。请务必在此更改之前注释掉 io.fabric8.datastore.properties 内容,并在所有内容到位后在最后启用它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?