我想在Jenkins中强制执行以下场景:
要启用/禁用作业A,我使用了Groovy插件:Groovy插件
Groovy插件提供了两种可能性:执行Groovy脚本和执行系统Groovy脚本.
我在作业B的执行开始时添加了以下代码片段:
Jenkins.instance.getItem("job_A").disable()
Run Code Online (Sandbox Code Playgroud)
并在执行工作B后:
Jenkins.instance.getItem("job_A").enable()
Run Code Online (Sandbox Code Playgroud)
当我运行作业B时,它失败并出现以下异常:
Caught: groovy.lang.MissingPropertyException: No such property: Jenkins for class: hudson7198966217090520732
at hudson7198966217090520732.run(hudson7198966217090520732.groovy:1)
Run Code Online (Sandbox Code Playgroud)
当我运行作业B时,它失败并出现以下异常:
FATAL: No such property: Jenkins for class: Script1
groovy.lang.MissingPropertyException: No such property: Jenkins for class: Script1
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)
at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231)
at Script1.run(Script1.groovy:1)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:682)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:666)
at hudson.plugins.groovy.SystemGroovy.perform(SystemGroovy.java:80)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:804)
at hudson.model.Build$BuildExecution.build(Build.java:199)
at hudson.model.Build$BuildExecution.doRun(Build.java:160)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:586)
at hudson.model.Run.execute(Run.java:1576)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88) …Run Code Online (Sandbox Code Playgroud) 我知道应该有一种方法可以使用aws ruby sdk为AWS Lambda创建触发器(就像可以使用AWS管理控制台一样).
*更新,我能够找到一种创建触发器的方法.我正在使用以下代码来做到这一点:
@cloudwatchlogs = Aws::CloudWatchLogs::Client.new(region: region, credentials: Aws::Credentials.new(aws_access_key_id, aws_secret_access_key))
@cloudwatchlogs.put_subscription_filter({
log_group_name: "RDSOSMetrics",
filter_name: "RDS metrics filter",
filter_pattern: "RDS metrics filter pattern",
destination_arn: function_arn
})
Run Code Online (Sandbox Code Playgroud)
我在尝试这样做时遇到以下错误:
*** Aws::CloudWatchLogs::Errors::InvalidParameterException Exception: Could not execute the lambda function. Make sure you have given CloudWatch Logs permission to execute your function
Run Code Online (Sandbox Code Playgroud)
只是为了测试它,我有角色X附加到Lambda函数,并且该角色添加了AWSLambdaFullAccess策略,但我仍然收到此错误.
我还缺少别人的东西
谢谢,巴基尔
我在尝试从HDFS文件系统"下载"文件到我的本地系统时遇到问题.(即使相反的操作没有问题).*注意:文件存在于指定路径上的HDFS文件系统上
这是一段代码:
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "${NAMENODE_URI}");
FileSystem hdfsFileSystem = FileSystem.get(conf);
String result = "";
Path local = new Path("${SOME_LOCAL_PATH}");
Path hdfs = new Path("${SOME_HDFS_PATH}");
String fileName = hdfs.getName();
if (hdfsFileSystem.exists(hdfs))
{
hdfsFileSystem.copyToLocalFile(hdfs, local);
result = "File " + fileName + " copied to local machine on location: " + localPath;
}
else
{
result = "File " + fileName + " does not exist on HDFS on location: " + localPath;
}
return result;
Run Code Online (Sandbox Code Playgroud)
我得到的例外情况如下:
12/07/13 14:57:46 …Run Code Online (Sandbox Code Playgroud) 我有一个执行shell部分的Jenkins作业,其中我有一些动态填充的变量BUILD.
构建执行后,我想将此变量传递给email-ext插件默认内容,以便能够显示它的值.
我尝试了几种方法却没有成功:
有关如何做到这一点的任何想法?
我有一个 EKS 集群,我添加了对在混合模式下工作的支持(换句话说,我向它添加了 Fargate 配置文件)。我的目的是只在 AWS Fargate 上运行特定的工作负载,同时为其他类型的工作负载保留 EKS 工作节点。
为了测试这一点,我的 Fargate 配置文件定义为:
为了测试 k8s 资源,我正在尝试部署简单的 nginx 部署,如下所示:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
namespace: mynamespace
labels:
fargate: myvalue
spec:
selector:
matchLabels:
app: nginx
version: 1.7.9
fargate: myvalue
replicas: 1
template:
metadata:
labels:
app: nginx
version: 1.7.9
fargate: myvalue
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
Run Code Online (Sandbox Code Playgroud)
当我尝试应用此资源时,我得到以下信息:
$ kubectl get pods -n mynamespace -o …Run Code Online (Sandbox Code Playgroud) 我使用 Typescript 编写 AWS Lambda 代码(处理程序和共享代码),然后转换代码,将 node_modules 添加到转换代码所在的目录并发布 Lambda。这工作正常。
\n现在,如果我想添加共享代码作为 AWS Lambda 层的一部分,这就是 Typescript 变得棘手的地方。\n请考虑我拥有的以下代码结构:
\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 index.ts\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 lib\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 userData.ts\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 node_modules\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 package-lock.json\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 package.json\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 tsconfig.json\nRun Code Online (Sandbox Code Playgroud)\n我想要一个包含以下内容的层:
\nnode_modules\nuserData.ts\nRun Code Online (Sandbox Code Playgroud)\n我知道发布图层时需要存在的结构以及如何在index.ts(处理程序方法)代码中引用它。
\n在层之前,我的 index.ts 代码如下所示:
\nimport { UserData } from "./lib/userData";\n\nexport const handler = async (event: any = {}): Promise<any> => {\n # some code here\n}\nRun Code Online (Sandbox Code Playgroud)\n因为我想从图层导入 UserData,所以导入需要如下所示:
\nimport { UserData } from "./opt/nodejs/userData";\nRun Code Online (Sandbox Code Playgroud)\n但是,如果我指定这一点,并尝试转译代码(在创建 aws lambda 包之前),我将收到一个明显的错误:
\nindex.ts:1:26 - error TS2307: Cannot find …Run Code Online (Sandbox Code Playgroud) 我正在尝试为这个看起来很常见的问题找到解决方案。
这适用于在 8088 端口上公开一项服务:
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: myingress
namespace: myns
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/healthcheck-path: /ping
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/tags: Environment=dev,Team=test
alb.ingress.kubernetes.io/target-type: ip
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 8088}]'
spec:
rules:
- host: myhost
http:
paths:
- path: /*
backend:
serviceName: firstservice
servicePort: 8088
Run Code Online (Sandbox Code Playgroud)
如何使用 ONE Ingress 为两种服务实现相同的目标?
提前致谢。
我正在尝试将 Artillery 配置设置为能够发送嵌套的 JSON 正文。这是我的配置的样子:
config:
target: <URL>
phases:
- duration: 10
arrivalRate: 20
processor: "./input-parser.js"
scenarios:
- flow:
- function: "parseJsonFile"
- post:
url: /workflow-instance
headers:
Content-Type: "application/json"
json:
name: "{{ name }}"
namespace: "{{ namespace }}"
template_name: "{{ template_name }}"
attributes: "{{ attributes }}"
- get:
url: "/workflow-instance/status?name={{ template_name }}&namespace={{ namespace }}"
Run Code Online (Sandbox Code Playgroud)
我对“属性”有疑问,因为属性的内容是:
{ pod_name: 'POD_NAME', port: 'PORT_NUMBER' }
Run Code Online (Sandbox Code Playgroud)
所以基本上,这行不通:
attributes: "{ pod_name: 'POD_NAME', port: 'PORT_NUMBER' }"
Run Code Online (Sandbox Code Playgroud)
还有这个:
attributes:
pod_name: 'POD_NAME'
port: 'PORT_NUMBER'
Run Code Online (Sandbox Code Playgroud)
我没有在 Artillery 文档中找到这个特殊案例的好例子。
我想知道在 rspec 中的多个上下文(或多个它的)之间传递变量但不使用全局变量的最佳方法是什么?
例如,我有这个:
describe "My test" do
let(:myvar) { @myvar = 0 }
context "First test pass" do
it "passes" do
myvar = 20
expect(myvar).to eq(20)
end
end
context "Second test pass" do
it "passes" do
expect(myvar).to eq(20)
end
end
end
Run Code Online (Sandbox Code Playgroud)
现在,显然,这不适用于 let 因为有了新的上下文,myvar 变量将回到初始状态,即 = 0。我需要在两个上下文之间“缓存状态”的机制,这反过来又会给我 myvar = 的值20 在第二种情况下
欢迎任何意见、建议和改进。谢谢
是否有某种编程方式可以强制rspec测试在首次失败时停止?
例如,
如果这些测试中的任何一个发生故障,我想在失败的特定测试步骤上进一步停止执行该特定测试,但不要停止执行我正在运行的整个测试套件。
我知道有以下几种方法:
RSpec.configure do |c|
c.fail_fast = true
end
Run Code Online (Sandbox Code Playgroud)
但是在我在测试套件中运行的任何规范文件中定义它会导致套件的所有执行失败。
有什么办法可以处理这种情况?
提前致谢
我正在尝试在kubernetes上运行私有恒星区块链基础设施(不加入现有的公共或测试恒星网络),但我的问题可以概括为在kubernetes上运行任何对等服务的场景。因此,我将尝试以一种概括的方式来解释我的问题(希望它可以产生适用于kubernetes上运行的任何类似拓扑的答案)。
这是场景:
我想运行3个对等点(以kube术语表示:pod),它们能够以分散的方式相互通信,但是问题在于每个对等点的配置都略有不同。通常,配置如下所示(这是pod0的示例):
NETWORK_PASSPHRASE="my private network"
NODE_SEED=<pod0_private_key>
KNOWN_PEERS=[
"stellar-0",
"stellar-1",
"stellar-2"]
[QUORUM_SET]
VALIDATORS=[ <pod1_pub_key>, <pod2_pub_key> ]
Run Code Online (Sandbox Code Playgroud)
问题在于每个吊舱都有不同的事实:
我的第一个想法(在意识到这个问题之前)是:
另一个想法(在意识到此问题之后)将是:
我想知道是否有更好的解决方案/模式可用于此目的,而不是运行配置完全相同的服务,而配置与作为单独实体(statefulset,deploy ..)的单独实体略有不同,它们可以通过这些对等实体使用(但是这种破坏了使用kubernetes高级资源来实现复制的目的)?
谢谢
我在具有 3 个节点的 k8s 集群上有一个 Fluentd 守护进程集。我想获得一个代表百分比的值,它可以让我了解 fluidd pod 目前在每个节点上占用了多少 CPU(以%为单位)。
在普罗米修斯中该怎么做?
谢谢。
kubernetes ×4
ruby ×3
jenkins ×2
rspec ×2
amazon-eks ×1
artillery ×1
aws-alb ×1
aws-fargate ×1
aws-lambda ×1
aws-sdk ×1
groovy ×1
hadoop ×1
hdfs ×1
java ×1
load-testing ×1
node.js ×1
peer ×1
prometheus ×1
promql ×1
rspec2 ×1
stellar ×1
testing ×1
typescript ×1