
# k8srequiredlabels
#### 基本信息
- 策略类型：合规
- 推荐级别：L1
- 生效资源类型：\*
- 参数：
  ```
  labels: 键值对数组，key/ allowedRegex
    key: a8r.io/owner
      # Matches email address or github user
      allowedRegex: ^([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}|[a-z]{1,39})$
  ```
  
 
#### 作用
要求资源包含指定的标签，其值与提供的正则表达式匹配。
#### 策略实例示例
以下策略实例展示了策略定义生效的资源类型，parameters中指定了提示信息message以及label的约束定义。
```
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: K8sRequiredLabels
metadata:
  name: all-must-have-owner
spec:
  match:
    kinds:
      - apiGroups: [""]
        kinds: ["Namespace"]
  parameters:
    message: "All namespaces must have an `owner` label that points to your company username"
    labels:
      - key: owner
        allowedRegex: "^[a-zA-Z]+.agilebank.demo$"
```
#### 符合策略实例的资源定义
示例包含策略实例中定义的label，符合策略实例。
```
apiVersion: v1
kind: Namespace
metadata:
  name: allowed-namespace
  labels:
    owner: user.agilebank.demo
```
#### 不符合策略实例的资源定义
示例不包含策略实例中定义的label，不符合策略实例。
```
apiVersion: v1
kind: Namespace
metadata:
  name: disallowed-namespace
```
