Spinnaker:如何将自定义 boms 带入 spinnaker pod 以便能够使用 hal 进行部署?
Spinnaker: How to bring custom boms into spinnaker pod to be able to deploy it with hal?
我想提供一个 custom BOM (Bill of Materials) 给 spinnaker,这样我就可以根据需要配置 repos。我是 k8s、helm 和 spinnaker 的新手,我想阅读文档,但有些事情并不完全清楚如何去做...
问题
我无法访问 gcs 商店,也无法直接访问外部存储库。所以我需要相应地配置artifactSources
根据 the docu,我想我应该提供一个自定义 bom,以便从文件系统中读取它们 - 所以在容器内 spinnaker-spinnaker-halyard-0
我的脚步
准备kubernetes集群
我使用 helm 进行初始部署,例如
helm install stable/spinnaker --name=spinnaker --namespace=spinnaker -f values.yml
在我连接到 spinnaker-spinnaker-halyard-0
pod 并且 运行
$ kubectl.exe exec -it spinnaker-spinnaker-halyard-0 -n spinnaker bash
部署 Spinnaker
$ hal config version edit --version local:1.11.6
$ hal deploy apply
这显然失败了,因为没有本地 bom 文件
Problems in Global:
! ERROR Unable to retrieve the Spinnaker bill of materials for
version "local:1.11.6": /home/spinnaker/.hal/.boms/bom/1.11.6.yml (No such file
or directory)
- Failed to prep Spinnaker deployment
问:如何提供自定义BOM?
根据文档,boms 应位于特定目录和结构中 ${HALCONFIG_DIR}/.boms/boms/${VERSION}.yml
那么我如何在那里获得我的自定义 POM?当我查看 helm-chart 时,我看不到(或理解)我该怎么做,例如通过 additional-config-maps
我找到了一种方法,但它是手动完成的,在 spinnaker-spinnaker-halyard
容器中工作。我相信有更好的方法...
我将自定义物料清单添加为 additionalConfigMap
到 values.yml
文件
...
additionalConfigMaps:
create: true
data:
# https://storage.googleapis.com/halconfig/bom
bom_1.12.4.yml: |
version: 1.12.4
timestamp: '2019-03-01 08:06:24'
services:
echo:
version: 2.3.1-20190214121429
commit: 5db9d437ca7f2fa374dcada17f77bbbb2965bd67
clouddriver:
version: 4.3.4-20190301030607
commit: b5539c47aad309e24428abb8f8303aff45323b43
deck:
version: 2.7.4-20190228030607
commit: dccdd730886a6beb0388e3622581d8da1ed8edbb
fiat:
version: 1.3.2-20190128153726
commit: daf21b24330a5f22866601559aa0f7ac99590274
front50:
version: 0.15.2-20190222161456
commit: 3105e86b8c084ad6ad78507e3a5e5a427f290b99
gate:
version: 1.5.2-20190301030607
commit: b238ab993ab25381ce907260879548ed74a4953f
igor:
version: 1.1.1-20190213190226
commit: 63d06a5c5d55f07443dd60a81035b35cf96238e7
kayenta:
version: 0.6.1-20190221030610
commit: 81d906bf8307143f40fe88f8554baa318de25ef1
orca:
version: 2.3.1-20190220030610
commit: bad45e78566449117b678a3317552cf53d0dd14e
rosco:
version: 0.9.0-20190123170846
commit: 42f81a2501de6d40676d47661579a6106b5c3e8a
defaultArtifact: {}
monitoring-third-party:
version: 0.11.2-20190222030609
commit: 232c84a8a87cecbc17f157dd180643a8b2e6067a
monitoring-daemon:
version: 0.11.2-20190222030609
commit: 232c84a8a87cecbc17f157dd180643a8b2e6067a
dependencies:
redis:
version: 2:2.8.4-2
consul:
version: 0.7.5
vault:
version: 0.7.0
artifactSources:
debianRepository: https://nexus.intra/repository/spinnaker-releases/
dockerRegistry: nexus.intra:5000/spinnaker-marketplace
googleImageProject: marketplace-spinnaker-release
gitPrefix: https://scm.intra/scm/SPIN/repos
然后link在halyard
容器中自定义bom,配置版本和运行部署
mkdir -p ~/.hal/.boms/bom
ln -s /opt/halyard/additionalConfigMaps/bom_1.12.4.yml ~/.hal/.boms/bom/1.12.4.yml
hal config version edit --version local:1.12.4
hal deploy apply
我想提供一个 custom BOM (Bill of Materials) 给 spinnaker,这样我就可以根据需要配置 repos。我是 k8s、helm 和 spinnaker 的新手,我想阅读文档,但有些事情并不完全清楚如何去做...
问题
我无法访问 gcs 商店,也无法直接访问外部存储库。所以我需要相应地配置artifactSources
根据 the docu,我想我应该提供一个自定义 bom,以便从文件系统中读取它们 - 所以在容器内 spinnaker-spinnaker-halyard-0
我的脚步
准备kubernetes集群
我使用 helm 进行初始部署,例如
helm install stable/spinnaker --name=spinnaker --namespace=spinnaker -f values.yml
在我连接到 spinnaker-spinnaker-halyard-0
pod 并且 运行
$ kubectl.exe exec -it spinnaker-spinnaker-halyard-0 -n spinnaker bash
部署 Spinnaker
$ hal config version edit --version local:1.11.6
$ hal deploy apply
这显然失败了,因为没有本地 bom 文件
Problems in Global:
! ERROR Unable to retrieve the Spinnaker bill of materials for
version "local:1.11.6": /home/spinnaker/.hal/.boms/bom/1.11.6.yml (No such file
or directory)
- Failed to prep Spinnaker deployment
问:如何提供自定义BOM?
根据文档,boms 应位于特定目录和结构中 ${HALCONFIG_DIR}/.boms/boms/${VERSION}.yml
那么我如何在那里获得我的自定义 POM?当我查看 helm-chart 时,我看不到(或理解)我该怎么做,例如通过 additional-config-maps
我找到了一种方法,但它是手动完成的,在 spinnaker-spinnaker-halyard
容器中工作。我相信有更好的方法...
我将自定义物料清单添加为 additionalConfigMap
到 values.yml
文件
...
additionalConfigMaps:
create: true
data:
# https://storage.googleapis.com/halconfig/bom
bom_1.12.4.yml: |
version: 1.12.4
timestamp: '2019-03-01 08:06:24'
services:
echo:
version: 2.3.1-20190214121429
commit: 5db9d437ca7f2fa374dcada17f77bbbb2965bd67
clouddriver:
version: 4.3.4-20190301030607
commit: b5539c47aad309e24428abb8f8303aff45323b43
deck:
version: 2.7.4-20190228030607
commit: dccdd730886a6beb0388e3622581d8da1ed8edbb
fiat:
version: 1.3.2-20190128153726
commit: daf21b24330a5f22866601559aa0f7ac99590274
front50:
version: 0.15.2-20190222161456
commit: 3105e86b8c084ad6ad78507e3a5e5a427f290b99
gate:
version: 1.5.2-20190301030607
commit: b238ab993ab25381ce907260879548ed74a4953f
igor:
version: 1.1.1-20190213190226
commit: 63d06a5c5d55f07443dd60a81035b35cf96238e7
kayenta:
version: 0.6.1-20190221030610
commit: 81d906bf8307143f40fe88f8554baa318de25ef1
orca:
version: 2.3.1-20190220030610
commit: bad45e78566449117b678a3317552cf53d0dd14e
rosco:
version: 0.9.0-20190123170846
commit: 42f81a2501de6d40676d47661579a6106b5c3e8a
defaultArtifact: {}
monitoring-third-party:
version: 0.11.2-20190222030609
commit: 232c84a8a87cecbc17f157dd180643a8b2e6067a
monitoring-daemon:
version: 0.11.2-20190222030609
commit: 232c84a8a87cecbc17f157dd180643a8b2e6067a
dependencies:
redis:
version: 2:2.8.4-2
consul:
version: 0.7.5
vault:
version: 0.7.0
artifactSources:
debianRepository: https://nexus.intra/repository/spinnaker-releases/
dockerRegistry: nexus.intra:5000/spinnaker-marketplace
googleImageProject: marketplace-spinnaker-release
gitPrefix: https://scm.intra/scm/SPIN/repos
然后link在halyard
容器中自定义bom,配置版本和运行部署
mkdir -p ~/.hal/.boms/bom
ln -s /opt/halyard/additionalConfigMaps/bom_1.12.4.yml ~/.hal/.boms/bom/1.12.4.yml
hal config version edit --version local:1.12.4
hal deploy apply