如何将现有的 git 项目导入到具有多个微服务的 Jenkins X 中?
How to import existing git project into Jenkins X that has multiple micro services?
我有一个 github 存储库,其中包含多个微服务项目。这些项目中的每一个都在单独的文件夹中,连同相应的 Dockerfile 和构建配置。这些项目中的每一个都是使用不同的语言实现的,包括 Java、Go、Javascript 和 C#。我有一个 kubernates 清单文件,负责在 kubernates 集群上部署这些微服务。我使用 skaffold 拼接镜像构建和部署。
当我使用 jx 命令导入此存储库时,Jenkins X 生成的配置文件(Dockerfile、Jenkinsfile 和 skaffold.yaml)顺序不正确,构建中断。
当我将每个项目分离到自己的存储库时,它工作正常。
skaffold.yaml
- 图片:服务1
上下文:src/service1
部署:
kubectl:
表现:
- ./kub-manifests/**.yaml
./kub-manifests/service1.yaml
apiVersion: v1
kind: Deployment
metadata:
name: service1
spec:
template:
metadata:
labels:
app: service1
spec:
terminationGracePeriodSeconds: 10
containers:
- name: server
image: service1
ports:
- containerPort: 9000
env:
- name: PORT
value: "9000"
resources:
requests:
cpu: 150m
memory: 150Mi
limits:
cpu: 300m
memory: 300Mi
---
apiVersion: v1
kind: Service
metadata:
name: service1
spec:
type: ClusterIP
selector:
app: service1
ports:
- name: grpc
port: 9000
targetPort: 9000
我应该如何将此类项目导入 Jenkins X,以便它能够构建每个项目并将其部署到同一集群?
请参阅 this 常见问题解答条目
您需要创建自己的自定义管道。拆分起来会更容易,这样每个存储库就有 1 个微服务,那么您就不必创建自定义管道
我有一个 github 存储库,其中包含多个微服务项目。这些项目中的每一个都在单独的文件夹中,连同相应的 Dockerfile 和构建配置。这些项目中的每一个都是使用不同的语言实现的,包括 Java、Go、Javascript 和 C#。我有一个 kubernates 清单文件,负责在 kubernates 集群上部署这些微服务。我使用 skaffold 拼接镜像构建和部署。
当我使用 jx 命令导入此存储库时,Jenkins X 生成的配置文件(Dockerfile、Jenkinsfile 和 skaffold.yaml)顺序不正确,构建中断。
当我将每个项目分离到自己的存储库时,它工作正常。
skaffold.yaml
- 图片:服务1
上下文:src/service1
部署:
kubectl:
表现:
- ./kub-manifests/**.yaml
./kub-manifests/service1.yaml
apiVersion: v1
kind: Deployment
metadata:
name: service1
spec:
template:
metadata:
labels:
app: service1
spec:
terminationGracePeriodSeconds: 10
containers:
- name: server
image: service1
ports:
- containerPort: 9000
env:
- name: PORT
value: "9000"
resources:
requests:
cpu: 150m
memory: 150Mi
limits:
cpu: 300m
memory: 300Mi
---
apiVersion: v1
kind: Service
metadata:
name: service1
spec:
type: ClusterIP
selector:
app: service1
ports:
- name: grpc
port: 9000
targetPort: 9000
我应该如何将此类项目导入 Jenkins X,以便它能够构建每个项目并将其部署到同一集群?
请参阅 this 常见问题解答条目
您需要创建自己的自定义管道。拆分起来会更容易,这样每个存储库就有 1 个微服务,那么您就不必创建自定义管道