我想将注释的特定值放入 kubectl 自定义列字段中。我可以像这样获取资源上的所有当前注释:
kubectl get pvc -o custom-columns=NAME:.metadata.name,"ANNOTATIONS":.metadata.annotations -n monitoring
Run Code Online (Sandbox Code Playgroud)
这将返回一个地图:
NAME ANNOTATIONS
prometheus-k8s-db-prometheus-k8s-0 map[pv.kubernetes.io/bind-completed:yes pv.kubernetes.io/bound-by-controller:yes volume.beta.kubernetes.io/storage-provisioner:kubernetes.io/aws-ebs]
prometheus-k8s-db-prometheus-k8s-1 map[pv.kubernetes.io/bind-completed:yes pv.kubernetes.io/bound-by-controller:yes volume.beta.kubernetes.io/storage-provisioner:kubernetes.io/aws-ebs]
Run Code Online (Sandbox Code Playgroud)
kubectl -o custom-columns据我所知,考虑使用 JSONpath,我想我可以这样做:
kubectl get pvc -o custom-columns=NAME:.metadata.name,"ANNOTATIONS":".metadata.annotations['pv.kubernetes.io/bind-completed']" -n monitoring
Run Code Online (Sandbox Code Playgroud)
但似乎不是。有没有办法做到这一点?
我在 AWS EKS 中安装了 grpc 应用程序。grpc 端点与端口转发成功配合:
grpcurl -plaintext -protoset-out=reflection.protoset localhost:8080 list
grpc.health.v1.Health
grpc.reflection.v1alpha.ServerReflection
Run Code Online (Sandbox Code Playgroud)
我已经通过 Helm Chart 安装了 nginx-ingress,并设置了以下配置:
USER-SUPPLIED VALUES:
controller:
service:
annotations:
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: <cert-arn>
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"
service.beta.kubernetes.io/aws-load-balancer-type: nlb
targetPorts:
https: 443
Run Code Online (Sandbox Code Playgroud)
这已成功创建一个带有侦听器的 NLB,一个用于 HTTP,一个用于 TLS,并附加了证书。
然后我创建了一个像这样的入口:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/backend-protocol: GRPC
nginx.ingress.kubernetes.io/ssl-redirect: "true"
generation: 7
labels:
name: <app>
name: <svc-name>
namespace: <ns>
spec:
ingressClassName: nginx
rules:
- host: <app>.development.<domain>
http:
paths:
- backend:
service:
name: <svc>
port:
number: 80
path: / …Run Code Online (Sandbox Code Playgroud) 我需要一个非常简单,直接的CSS/HTML流程图,格式如下:
Node1
|
Node2
|
Node3
|
Node4
|
Node5
|
Node6
Run Code Online (Sandbox Code Playgroud)
我对CSS几乎一无所知,但试图修改下面链接中详述的那个.问题是我只想要一个线性的垂直图表,它最终到处都是!
http://www.htmlforums.com/css/t-flowchart-using-css-85999.html
有人可以帮忙吗?
我正在使用Viper和Cobra构建一个小应用程序。目前,我有一个yaml文件,如下所示:
hosts:
- name: host1
port: 90
key: my_key
- name: host2
port: 90
key: prompt
Run Code Online (Sandbox Code Playgroud)
而且我已经使用Viper读取了配置文件。
当我运行viper.Get("hosts")它时,它返回一个接口(或接口的一部分?)。这是我最终得到的数据结构:
([]interface {}) (len=2 cap=2) {
(map[interface {}]interface {}) (len=3) {
(string) (len=4) "name": (string) (len=20) "host1",
(string) (len=4) "port": (int) 90,
(string) (len=3) "key": (string) (len=6) "my_key"
},
(map[interface {}]interface {}) (len=3) {
(string) (len=3) "key": (string) (len=6) "prompt",
(string) (len=4) "name": (string) (len=20) "host2",
(string) (len=4) "port": (int) 90
}
}
Run Code Online (Sandbox Code Playgroud)
我想在这里做的是遍历每个数组元素,并使用name,port和key的值执行操作。
我是Golang接口的新手,所以这还不是很清楚,关于此的文献非常令人困惑:(
任何帮助表示赞赏。
我正在使用 jsonnet 读取由数组组成的值。我想修改该数组中的第一个元素以添加一个值。数据结构如下所示:
{
"my_value": [
{
"env": "something"
},
{
"var": "bar"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想为my_value[0]. 我如何在 jsonnet 中引用它?
我正在尝试从isomorphic-git获取类似于git diffGitHub 操作的输出。
我在这里查看了isomorphic-git 中实现的map函数,但我在使用它时遇到了问题。git.walk
我可以使用以下代码成功地遍历树:
async function main() {
const ref = 'HEAD'
const trees = [git.TREE({ref}), git.WORKDIR()]
const walk = await git.walk({
fs,
dir: '.github',
trees,
map: (filepath, [workdir, tree]) => [filepath, !!workdir, !!tree]
})
console.log(walk)
}
main()
Run Code Online (Sandbox Code Playgroud)
如何改进map这里的功能并使用jsdiffHEAD将当前工作树和stdout之间的文件更改输出?
我有一个结构,我以老式的方式转换为JSON:
type Output struct {
Name string `json:"name"`
Command string `json:"command"`
Status int `json:"status"`
Output string `json:"output"`
Ttl int `json:"ttl,omitempty"`
Source string `json:"source,omitempty"`
Handlers []string `json:"handlers,omitempty"`
}
sensu_values := &Output{
Name: name,
Command: command,
Status: status,
Output: output,
Ttl: ttl,
Source: source,
Handlers: [handlers],
}
Run Code Online (Sandbox Code Playgroud)
我想从文件系统中读取任意JSON文件,该文件可以由用户定义为任何内容,然后将其添加到现有的JSON字符串中,从原始文件中获取重复项.
我怎样才能做到这一点?
我正在尝试使用Vault Golang包来使用API进行身份验证.
我创建了一个新客户端,然后可以设置我的令牌:
client, err := api.NewClient(&api.Config{Address: vaultAddr, HttpClient: httpClient})
if err != nil {
return nil, errors.Wrap(err, "could not create vault client")
}
client.SetToken(token)
Run Code Online (Sandbox Code Playgroud)
这很好,但我想使用其他一个auth方法(LDAP,Userpass等)对API进行身份验证
这甚至可能吗?如何使用API检索令牌?
我想我可以使用net/http来使用API调用来检索令牌,但有没有任何方法可以用另一种方式实际验证?
我正在从这里使用出色的毒蛇库:https : //github.com/spf13/viper
我正在尝试读取hcl中的配置文件(尽管它也可能是JSOn或YAML文件),如下所示:
interval = 10
statsd_prefix = "pinger"
group "dns" {
target_prefix = "ping"
target "dns" {
hosts = [
"dnsserver1",
"dnsserver2"
]
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的代码如下所示:
viper.SetConfigName("config")
viper.AddConfigPath(".")
err := viper.ReadInConfig()
if err != nil {
panic(fmt.Errorf("Fatal error config file: %s \n", err))
}
interval := viper.GetInt("interval")
prefix := viper.GetString("statsd_prefix")
groups := viper.GetStringMap("group")
fmt.Println(interval)
fmt.Println(prefix)
Run Code Online (Sandbox Code Playgroud)
我遇到的最大问题是使用group选项。这可以是多个不同的组。
当我在使用中阅读它时viper.GetStringMap,它似乎不起作用,因此我使用了标准viper.Get函数。转储时,结果结构如下所示:
([]map[string]interface {}) (len=1 cap=1) {
(map[string]interface {}) (len=1) {
(string) (len=3) "dns": ([]map[string]interface {}) (len=1 cap=2) …Run Code Online (Sandbox Code Playgroud) 我有一个运行超时命令的函数。它看起来像这样:
func run_command(cmdName string, cmdArgs []string, timeout int) (int, string) {
// the command we're going to run
cmd := exec.Command(cmdName, cmdArgs...)
// assign vars for output and stderr
var output bytes.Buffer
var stderr bytes.Buffer
// get the stdout and stderr and assign to pointers
cmd.Stderr = &stderr
cmd.Stdout = &output
// Start the command
if err := cmd.Start(); err != nil {
log.Fatalf("Command not found: %s", cmdName)
}
timer := time.AfterFunc(time.Second*time.Duration(timeout), func() {
err := cmd.Process.Kill()
if err != …Run Code Online (Sandbox Code Playgroud) 当我使用 Pulumi 将资源部署到 Kubernetes 时,如果我犯了错误,Pulumi 会等待 Kubernetes 资源健康。
\n Type Name Status Info\n + pulumi:pulumi:Stack aws-load-balancer-controller-dev **creating failed** 1 error\n + \xe2\x94\x9c\xe2\x94\x80 jaxxstorm:aws:loadbalancercontroller foo created\n + \xe2\x94\x9c\xe2\x94\x80 kubernetes:yaml:ConfigFile foo-crd created\n + \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80 kubernetes:apiextensions.k8s.io/v1beta1:CustomResourceDefinition targetgroupbindings.elbv2.k8s.aws created 1 warning\n + \xe2\x94\x9c\xe2\x94\x80 kubernetes:core/v1:Namespace foo-namespace created\n + \xe2\x94\x9c\xe2\x94\x80 kubernetes:core/v1:Service foo-webhook-service **creating failed** 1 error\n + \xe2\x94\x9c\xe2\x94\x80 kubernetes:rbac.authorization.k8s.io/v1:Role foo-role created\n + \xe2\x94\x9c\xe2\x94\x80 pulumi:providers:kubernetes k8s created\n + \xe2\x94\x9c\xe2\x94\x80 aws:iam:Role foo-role created\n + \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80 aws:iam:Policy foo-policy created\n + \xe2\x94\x9c\xe2\x94\x80 kubernetes:core/v1:Secret foo-tls-secret created\n + \xe2\x94\x9c\xe2\x94\x80 kubernetes:rbac.authorization.k8s.io/v1:ClusterRole …Run Code Online (Sandbox Code Playgroud)