错误:在此上下文中不允许使用映射值



代码如下:验证缩进。无法找出确切的问题。

代码:

- name: Create K8s ingress
k8s:
api_version: networking.k8s.io/v1
namespace: "{{namespace}}"
definition:
kind: Ingress
metadata:
name: "{{namespace}}-ingress"
annotations:
nginx.ingress.kubernetes.io/backend-protocol: HTTP
nginx.ingress.kubernetes.io/auth-url: "https://$host/oauth2/auth"
nginx.ingress.kubernetes.io/auth-signin: "https://$host/oauth2/start?rd=$escaped_request_uri"
nginx.ingress.kubernetes.io/force-ssl-redirect: 'false'
nginx.ingress.kubernetes.io/hsts: 'false'
nginx.ingress.kubernetes.io/ssl-redirect: 'false'
nginx.ingress.kubernetes.io/websocket-services: core-service
nginx.org/websocket-services: core-service
spec:
rules:
- host: "{MY_DOMAIN}}"
http:
paths:
- backend:
service:
name: "wordpress"
port:
number: 80
path: /
pathType: ImplementationSpecific

错误:加载YAML时出现语法错误。在此上下文中不允许使用映射值

错误出现在'/mnt/disc2/workspace/wp-sr-demo/auth-playbooks/wordpress/roles/deploy/tasks/main。Yml ':第110行,第51列,但可能根据具体的语法问题,在文件的其他位置。

违规行似乎是:

nginx.ingress.kubernetes.io/auth-url: "https://$host/oauth2/auth"
^ here

这个看起来很容易修复。似乎有一种价值开始了加上引号,YAML解析器期望看到该行结束同样的引用。例如:

when: "ok" in result.stdout

可以写成:

当:"ok"在result.stdout

或等价:

when: "'ok' in result.stdout">

namek8s属性缩进错误

- name: Create K8s ingress
k8s:

属性namek8s的正确缩进必须相同,因为它们属于同一个字典

- name: Create K8s ingress
k8s:

如果您将第一行向右移动两个空格,您将获得有效的YAML。

最新更新