我正在尝试打印一个名称空间列表:
(doseq [x (all-ns)] (println x))
Run Code Online (Sandbox Code Playgroud)
这将打印每个命名空间#<Namespace xxxxx>.我想得到每个名称空间xxxxx (没有#<Namespace>.我试过(name x),(symbol x)但我得到了ClassCastException clojure.lang.Namespace cannnot be cast to java.lang.Named,等等.
(doseq [x (all-ns)] (println (name x)))
(doseq [x (all-ns)] (println (str x)))
(doseq [x (all-ns)] (println (namespace x)))
Run Code Online (Sandbox Code Playgroud)
如何将命名空间作为字符串?
我已在命名空间下的 kubernetes 集群上安装了 GitLab 运行程序gitlab-runner。像这样
# cat <<EOF | kubectl create -f -
{
"apiVersion": "v1",
"kind": "Namespace",
"metadata": {
"name": "gitlab-runner",
"labels": {
"name": "gitlab-runner"
}
}
}
# helm repo add gitlab https://charts.gitlab.io
# cat <<EOF|helm install --namespace gitlab-runner gitlab-runner -f - gitlab/gitlab-runner
gitlabUrl: https://gitlab.mycompany.com
runnerRegistrationToken: "c................Z"
Run Code Online (Sandbox Code Playgroud)
GitLab 运行程序已正确注册到 GitLab 项目,但所有作业都会失败。
快速查看 GitLab 运行程序日志告诉我,GitLab 运行程序使用的服务帐户缺乏适当的权限:
# kubectl logs --namespace gitlabrunner gitlab-runner-gitlab-runner-xxxxxxxxx
ERROR: Job failed (system failure): pods is forbidden: User "system:serviceaccount:gitlabrunner:default" cannot create resource "pods" in …Run Code Online (Sandbox Code Playgroud) 我已从 Azure 门户 > Active Directory > 企业应用程序 > 新应用程序 > 创建您自己的应用程序 > 集成您在库中找不到的任何其他应用程序创建了一个企业应用程序“Test1”。此企业应用程序允许我配置单点登录 > SAML > 用户属性和声明。
但是,当我通过 Azure 门户 > Active Directory > 应用程序注册 > 新注册创建应用程序“Test2”时,我无法配置 SSO SAML。如果我转到相应的企业应用程序“Test2”> 单点登录,我会收到一条消息:“单点登录配置在企业应用程序体验中不可用。Test2 是使用应用程序注册体验创建的”。
但我在应用程序注册体验中找不到任何修改“用户属性和声明”的方法。应用程序注册 > 测试 2 > 令牌配置允许从一组有限的选项中添加可选声明,但它并不等同于企业应用程序 SAML SSO。
有没有办法为应用程序注册启用 SAML SSO(具有自定义用户属性和声明)?
有没有办法用OpenSSL/ 计算AES CMAC libcrypto?
优选地,以利用AES-NI(或任何其他硬件加速)的方式.
假设你有一个字符串"Hello",你想要一个字符数组作为回报["H", "e", "l", "l", "o"].
虽然这是一个简单的问题,但我找不到直接的答案.
我确实要检查一个Instant是否在其他两个瞬时之间:
目前,我使用:
import java.time.format.DateTimeFormatter;
import java.time.Instant;
Instant start = Instant.from(DateTimeFormatter.ISO_DATE_TIME.parse("2016-10-25T12:31:39.084726218Z"));
Instant end = Instant.from(DateTimeFormatter.ISO_DATE_TIME.parse("2016-10-25T13:31:39.084726218Z"));
// for exclusive range
Instant testSubject1 = Instant.from(DateTimeFormatter.ISO_DATE_TIME.parse("2016-10-25T12:31:40Z"));
boolean isInRange1 = testSubject1.isAfter(start) && testSubject1.isBefore(end); // this works as exclusive range
//for inclusive range
Instant testSubject2 = Instant.from(DateTimeFormatter.ISO_DATE_TIME.parse("2016-10-25T12:31:39.084726218Z"));
boolean isInRange2 = (testSubject2.equals(start) || testSubject2.isAfter(start)) && (testSubject2.equals(end) || testSubject2.isBefore(end)); // inclusive range
Run Code Online (Sandbox Code Playgroud)
标准库或其他地方是否还有其他实用程序功能可以简化这种范围检查?
我正在寻找类似的东西:
new InstantRange(start,end).checkInstantWithin(testSubject1);
// or
InstantUtils.inRangeExclusive(start,end, testSubject1);
InstantUtils.inRangeInclusivestart,end, testSubject1);
Run Code Online (Sandbox Code Playgroud) 在使用预提交时,有时我只想知道文件名将被传递到挂钩,只是为了验证--from-ref和to-ref是否正确。例如,我正在运行:
pre-commit run flake8 --from-ref $(git merge-base master HEAD) --to-ref HEAD
Run Code Online (Sandbox Code Playgroud)
我不确定哪些文件传递给了我的flake8钩子,添加--verbose没有帮助,因为flake8也不会输出文件名。
那么有什么方法可以告诉pre-commit只输出文件名列表而不运行实际的钩子?
如果我从在集群级别应用 Pod 安全标准 中正确理解,为了将 PSS(Pod 安全标准)作为整个集群的默认值,我需要AdmissionConfiguration在 API 服务器在集群创建期间需要使用的文件中创建一个。
我没有看到任何方法可以在CreateCluster上配置/提供AdmissionConfiguration ,而且我也不确定如何在托管EKS节点中提供此AdmissionConfiguration。
从使用 KinD 或 minikube 的教程来看,AdmissionConfiguration 必须位于 中引用的文件中cluster-config.yaml,但如果我没有记错的话,EKS API 服务器是受管理的,并且不允许更改甚至不允许查看此文件。
GitHub问题aws/container-roadmap允许访问AdmissionConfiguration似乎表明目前不可能在创建时提供AdmissionConfiguration,但另一方面aws-eks-best-practices说These exemptions are applied statically in the PSA admission controller configuration as part of the API server configuration
那么,有没有办法在EKS中为整个集群提供PodSecurityConfiguration呢?或者我被迫只使用每个命名空间标签?
我有一个取决于会话变量的视图:
create or replace view test as
(
select getvariable('MY_VAR')::int as col1
) ;
Run Code Online (Sandbox Code Playgroud)
我可以像这样查询该视图:
set MY_VAR=5;
select * from test; -- 5
set MY_VAR=6;
select * from test; -- 6
Run Code Online (Sandbox Code Playgroud)
现在我想从存储过程中执行相同的查询:
create or replace procedure myproc()
returns VARCHAR
language javascript
as
$$
var stmt = snowflake.createStatement({sqlText: "select * from test"});
var rs = stmt.execute();
rs.next(); // .next().getColumnValue(1);
return rs.getColumnValue(1);
$$
;
call myproc() -- this work as long as MY_VAR is set outside before the call proc
Run Code Online (Sandbox Code Playgroud)
问题是我想从过程中设置会话变量,这是不允许的
存储过程执行错误:不支持的语句类型“SET”。在 …
amazon-eks ×1
clojure ×1
cmac ×1
gitlab-ci ×1
java ×1
java-time ×1
kubernetes ×1
libcrypto ×1
openssl ×1
pre-commit ×1
ruby ×1