Jenkins-X:如何在预览环境中 link 外部服务

Jenkins-X: How to link external service in preview environment

我想从预览环境访问一个位于暂存环境(在命名空间 jx-staging 中)的数据库。

我正在尝试遵循 Jenkins-X 文档中的 Service Linking,但没有成功。文档不是很清楚在哪里放置服务 link 定义。

我创建了一个包含以下内容的服务文件 charts/preview/resources/mysql.yaml,但没有创建服务 link。

kind: Service
apiVersion: v1
metadata:
  name: mysql
spec:
  type: ExternalName
  externalName: mysql.jx-staging.svc.cluster.local
  ports:
  - port: 3306

剑侠情缘环境:

jx version:
NAME               VERSION
jx                 1.3.688
jenkins x platform 0.0.3125
Kubernetes cluster v1.10.9-gke.5
kubectl            v1.10.7
helm client        v2.12.1+g02a47c7
helm server        v2.12.0+gd325d2a
git                git version 2.11.0
Operating System   Debian GNU/Linux 9.6 (stretch)

在哪里以及如何定义服务link?

GitHub 问题:How to link external service in preview environment

顺便说一句,还有一个 FAQ entry on adding more resources to a preview

我觉得你的 Service YAML 不错。您看到创建预览环境时创建的 Service 了吗?

您可以通过键入 jx get preview 找到命名空间,然后查看您的环境中是否有 Service 尝试 kubectl get service -n jx-myuser-myapp-pr-1

解决方案是将 mysql.yamlresources 移动到 templates 子文件夹:

charts/preview/templates/mysql.yaml

问题是由 Service Linking 文档中的拼写错误引起的,现已更正。