Concourse CI无法找到kubernetes的秘密

时间:2018-03-22 15:04:54

标签: kubernetes concourse kubernetes-secrets

当跑步者尝试检索资源时,我收到以下错误:

checking failed -
Expected to find variables: git

我的资源类似于:

- name: resource-repo
  type: git
  source:
    uri: https://[url]
    branch: master
    tag_filter: '*'
    username: ((git.username))
    password: ((git.password))

我的values.yaml for helm chart包括:

rbac:
  create: false

credentialManager:
  kubernetes:
    namespacePrefix: concourse

(无论如何,发布名称都是大厅)

命名空间concourse-main下的

我有秘密:

Details
Name: git
Namespace: concourse-main
Type: Opaque

Data
password:  bytes
username:  bytes 

进一步的信息:

  • k8s 1.8.6
  • kops 1.8.1
  • weavenet
  • Concourse 3.9.1

1 个答案:

答案 0 :(得分:3)

基于documentation

的信息
  

默认情况下,此图表将使用Kubernetes Secrets作为凭据管理器。对于给定的Concourse团队,管道将在名为[namespacePrefix] [teamName]的命名空间中查找秘密。名称空间前缀默认为发布名称连字符,可以使用值credentialManager.kubernetes.namespacePrefix覆盖。

在您的配置中,我发现您concourse-main的秘密namespace中的秘密是namespacePrefix,但默认concourseconcourse

所以,Concourse试图从错误的命名空间中获取你的秘密。

您可以通过两种方式修复它:

  1. 在命名空间namespacePrefix中创建一个秘密。
  2. concourse-main更改为public string Get(string id) { string html = string.Empty; string url = @"https://company.atlassian.net/rest/api/latest/issue/" + id; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) using (Stream stream = response.GetResponseStream()) using (StreamReader reader = new StreamReader(stream)) { html = reader.ReadToEnd(); } return html; }