如何在单个 YAML 文件中创建多个角色

How to create multiple roles in a single YAML file

我正在尝试在单个 YAML 文件中在 Kubernetes 中创建多个角色。
我不确定是否可能。

这是我试过的:

cat > ~/tmp/Role.yaml <<EOF 
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata: 
  namespace: default
  name: testRole1
rules: 
- apiGroups: ["", "extensions", "apps"]
  resources: ["pods"]
  verbs: ["get", "list"] 

kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata: 
  namespace: default
  name: testRole2
rules: 
- apiGroups: ["", "extensions", "apps"]
  resources: ["pods"]
  verbs: ["get"] 
EOF

kubectl create -f ~/tmp/Role.yaml

它只创造了后者 - testRole2

是否可以在一个 YAML 文件中完成,或者我需要为每个角色创建 YAML 文件?

我刚收到@liggitt 的回复。

需要在它们之间添加一个记录分隔符(---)。

仅供参考

您可以使用 List 对象编写 yaml,如下所示。

apiVersion: v1
kind: List
items:
- kind: Role
  apiVersion: rbac.authorization.k8s.io/v1beta1
  metadata: 
    namespace: default
    name: testRole1
  rules: 
  - apiGroups: ["", "extensions", "apps"]
    resources: ["pods"]
    verbs: ["get", "list"] 
- kind: Role
  apiVersion: rbac.authorization.k8s.io/v1beta1
  metadata: 
    namespace: default
    name: testRole2
  rules: 
  - apiGroups: ["", "extensions", "apps"]
    resources: ["pods"]
    verbs: ["get"]