如何将自定义配置文件/设置应用到 Spinnaker 以使其通过一个命令进行部署?

问题描述 投票:0回答:1

我正在尝试使用在 Docker 容器中运行的 Halyard 将 Spinnaker 部署到 k8s 集群。问题是,我已经使用

hal
命令配置了所有内容,但官方文档说有一种方法可以使用自定义配置文件来完成此操作。

因此,我尝试创建自定义配置文件,将它们放入

.hal/${DEPLOYMENT}/profiles
中,但是当我使用
hal deploy apply --deployment ...
时 - 它只是复制我的配置文件而不应用它们。 这是第一个问题。

其次,我尝试在这些配置文件中配置所有内容,并运行

hal deploy apply --deployment ...
,期望 Halyard 会看到这些文件已经存在,并且他可以使用它们,但它总是失败告诉我
Persistant storage type is not configured!

我不明白如何只准备自定义文件,以及将它们放在哪里,所以我只能使用

hal deploy apply
,噗!配置的所有内容均已部署!

您能否描述一下将这些文件放在哪里,以及如何使用它们来运行部署?或者也许我做错了什么?

例如这个,我已经放入了

.hal/${DEPLOYMENT}/profiles/gate-local.yml

security:
  basic:
    enabled: true
  apiSecurity:
    overrideBaseUrl: https://<domain-api>
  uiSecurity:
    overrideBaseUrl: https://<domain-ui>
  authn:
    oauth2:
      enabled: true
      client:
        clientId: XXXXXXXXXXXXXXXX
        clientSecret: XXXXXXXXXXXXXXXX
        accessTokenUri: https://XXXXXXXXXXXXXXXX/token
        userAuthorizationUri: https://XXXXXXXXXXXXXXXX/auth
        scope: openid,email,profile,groups
      resource:
        userInfoUri: https://XXXXXXXXXXXXXXXX/userinfo
      userInfoMapping:
        email: email
        firstName: given_name
        lastName: family_name
        username: preferred_username

这是我的

front50-local.yml
总是失败的例子:

persistentStorage:
  persistentStoreType: s3
  s3:
    bucket: XXXXXXXXXXXXXX
    rootFolder: front50
    pathStyleAccess: true
    endpoint: https://XXXXXXXXXXXXXX
    accessKeyId: XXXXXXXXXXXXXX
    secretAccessKey: XXXXXXXXXXXXXX
    enabled: true

等等。如果我使用 Hal 命令来配置,它就可以工作,但我想再次:

  1. 用 Halyard 启动容器
  2. 给他准备好的配置
  3. hal deploy apply
  • 繁荣。欢迎来到三角帆。有什么想法吗?
kubernetes deployment configuration customization spinnaker
1个回答
0
投票

现在,我找到了解决我问题的办法。 我不使用

front50-local.yml
进行配置,它显然与主
config
文件中的配置一起使用。 但是,通过OpenId遇到了
roles
的问题。 找到了一种用
gate-local.yml
覆盖它的方法,它对某人可能有用:

我已经在 main 中通过了这一部分

config
:

security:
  apiSecurity:
    overrideBaseUrl: https://domain-api.example
  uiSecurity:
    overrideBaseUrl: https://domain-deck.example
  authn:
    oauth2:
      enabled: true
      client:
        clientId: XXXXXXXX
        clientSecret: XXXXXXXX
        accessTokenUri: XXXXXXXX
        userAuthorizationUri: XXXXXXXX
      resource:
        userInfoUri: XXXXXXXX
      userInfoMapping: {}
      provider: OTHER

这部分在

gate-local.yml

security:
  oauth2:
    userInfoMapping:
      email: email
      firstName: given_name
      lastName: family_name
      username: username
      roles: groups
    client:
      scope: openid,email,profile,groups,roles

请注意,该映射可能与上面描述的不同。 最后,这个配置成功通过了,现在我可以看到我的角色从Keycloak传递过来了

https://domain-api.example/auth/user

关于提供商。主要部分

config
:

providers:
   kubernetes:
      enabled: true

其余设置在

clouddriver-local.yml

kubernetes
   accounts:
   - name: XXXXX
     context: XXXX
     providerVersion: V2
     kubeconfigContents: encrypted:k8s!n:secret_name!k:secret_value
     namespaces: [] #Access to ALL namespaces
     permissions:
        READ:
        - everyone
        WRITE:
        - group1
        - group2
        - group3
        EXECUTE:
        - the-same-way
        CREATE:
        - the-same-way
     requiredGroupMembership: [] #Empty yet
     configureImagePullSecrets: true
     cacheThreads: 1
     dockerRegistries: []
   primaryAccount: XXXXXX

尽管如此,我确实使用 Spinnaker-operator 在 k8s 中进行部署。使用它进行部署会更容易一些,而不是面对

hal
命令本身。 似乎是我的问题的解决方案!希望它能帮助别人!

© www.soinside.com 2019 - 2024. All rights reserved.