我正在尝试从 Jenkins-X/jx 导入以自定义一些东西。
我真的很新来抬头
但试图go get ./...
失败。
我的 go.mod 文件
module github.com/my-org/my-project
go 1.13
require github.com/jenkins-x/jx v2.0.383
Run Code Online (Sandbox Code Playgroud)
我得到
... require github.com/jenkins-x/jx: version "v2.0.383" invalid: module contains a go.mod file, so major version must be compatible: should be v0 or v1, not v2
Run Code Online (Sandbox Code Playgroud)
这是因为 jx 在它的 mod 文件中有一些要求
但我不确定要实际下载模块我必须做什么。
背景
我在集群模式下安装了kubernetes。
所有节点都已启动并且正在运行,
我想使用jenkins-x来简化部署。
现在,jenkins-x使用Helm来完成这项工作;Helm提出了客户端和服务器体系结构。
可以通过以下两种方式实现头盔设置:
使用jenkins-x
jx install --username <username>
Run Code Online (Sandbox Code Playgroud)
独立头盔
helm init
Run Code Online (Sandbox Code Playgroud)
通过将其服务器放置在Kubernetes的pod中,这有助于设置其服务器(Tiller)。
有什么问题
问题是,当我使用第一种方法时,它会安装Tiller,后来却说“ Tiller可用,但无法启动并运行”而失败。
Created ClusterRoleBinding tiller
retrying after error:existing tiller deployment found but not running, please check the kube-system namespace and resolve any issues
Run Code Online (Sandbox Code Playgroud)
第二种方法也以类似的方式失败
它还可以安装Tiller,但在尝试列出Tiller时找不到。
helm ls
Run Code Online (Sandbox Code Playgroud)
错误:找不到分er
因此,问题的实质是:
它会安装Tiller,但以后找不到。
helm init
Run Code Online (Sandbox Code Playgroud)
警告:群集中已经安装了Tiller。
helm ls
Run Code Online (Sandbox Code Playgroud)
错误:找不到分er
I am using Jenkins X and attempting to set different variables via values.yaml
files based upon the environment that I am promoting to. For example, when promoting a release from staging to production, I would like the values.yaml
file in my environment-xxxx-production
repository to override values in my project repository.
According to https://github.com/jenkins-x/jx/issues/1667#issuecomment-420901836 this comment, this should work simply by placing variables in the environment-xxxx-production
repository.
Sample deployment.yaml
file inside of my project.
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: {{ …
Run Code Online (Sandbox Code Playgroud) 我在和jx,kubernetes和helm斗争。我在执行env目录中的命令的jx上运行Jenkinsfile:
sh 'jx step helm build'
sh 'jx step helm apply'
Run Code Online (Sandbox Code Playgroud)
它成功完成并部署了pods /创建了部署等。但是,头盔列表为空。
当我执行类似helm install ...
或的操作时,helm upgrade --install ...
它会创建一个发布,并且头盔列表显示了这一点。
这是正确的行为吗?
更多细节:
安装了以下软件的EKS:
eksctl create cluster --region eu-west-2 --name integration --version 1.12 \
--nodegroup-name integration-nodes \
--node-type t3.large \
--nodes 3 \
--nodes-min 1 \
--nodes-max 10 \
--node-ami auto \
--full-ecr-access \
--vpc-cidr "172.20.0.0/16"
Run Code Online (Sandbox Code Playgroud)
然后我用一些kubectly apply
命令(不共享文件)设置入口(外部和内部)。然后设置路由和与vpc相关的内容。
JX安装了:
jx install --provider=eks --ingress-namespace='internal-ingress-nginx' \
--ingress-class='internal-nginx' \
--ingress-deployment='nginx-internal-ingress-controller' \
--ingress-service='internal-ingress-nginx' --on-premise \
--external-ip='#########' \
--git-api-token=######### \
--git-username=######### …
Run Code Online (Sandbox Code Playgroud) 我在Jenkinsfile中有一个阶段,可根据与标签名称过滤器匹配的标签进行构建:
stage('Build Release from Tag') {
when {
tag '*RELEASE'
}
Run Code Online (Sandbox Code Playgroud)
为了使标签被发现,我必须添加标签发现和标签名称regex的匹配项,并添加到我的管道下Branch sources > GitHub
:
管道会发现我推送的与过滤器匹配的标签。如果我单击一个为其运行构建,则它会运行与条件标签匹配的构建阶段。但是我期望,根据对博客文章的解释,构建会像分支的构建一样自动开始。
在扫描存储库日志中,我看到如下输出:
Checking tag TEST0.1.3.RELEASE
‘Jenkinsfile’ found
Met criteria
Changes detected: TEST0.1.3.RELEASE (null ? 4aea4ec43c1daf8290ea438ce0bf1a14a6afbc46)
No automatic builds for TEST0.1.3.RELEASE
Run Code Online (Sandbox Code Playgroud)
我还可以在repository events
日志中看到输出,例如Received Push event for tag TEST.0.1.8.RELEASE in repository ryandawsonuk/activiti-build CREATED event
Jenkins知道正在创建的标签。(我想我已经知道了,因为它会发现它们并在UI中显示它们,除非我手动触发构建,否则它不会构建它们。)
我应该说我正在使用Jenkins-X。据我所知,这是一个詹金斯问题,与Jenkins-X无关,但我可能忽略了某些事情。
如果管道应该在创建标签时自动触发(似乎Jenkins支持该操作,但我不确定100%肯定),那么我想知道可以添加哪些其他配置来自动触发构建?
我正在尝试在现有的 Kubernetes 集群 (GKE) 上安装 Jenkins X,使用jx boot
,但它总是给我错误trying to execute 'jx boot' from a non requirements repo
事实上,我曾尝试使用jx install
,并且它有效,但此命令已被标记为已弃用,但我看到它仍然是在 Jenkins X 的 GitHub 页面上使用的方法。
然后是另一个细节……我实际上是在使用 Terraform 创建集群,因为我不喜欢 Jenkins X 为我创建集群的想法。我也想使用 Terraform 安装 Jenkins X,但这将是另一个问题。:)
那么如何安装使用jx boot
,什么是non requirements repo
?
谢谢
continuous-integration jenkins kubernetes google-kubernetes-engine jenkins-x
我在Jenkins工作了很多天,并将我的服务部署到Kubernetes.
我最近遇到了Jenkins X,我还找到了Jenkins的Helm图表,通过它我可以在Kubernetes主持Jenkins.现在我很困惑他们两个是否相同?