Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
system-charts
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Rancher商店
system-charts
Commits
0ab0b8c5
Unverified
Commit
0ab0b8c5
authored
Mar 02, 2020
by
Prachi Damle
Committed by
GitHub
Mar 02, 2020
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #162 from prachidamle/gatekeeper_chart
OPA Gatekeeper system chart
parents
640bdf31
da95f348
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
806 additions
and
0 deletions
+806
-0
.helmignore
charts/rancher-gatekeeper-operator/v0.1.0/.helmignore
+21
-0
Chart.yaml
charts/rancher-gatekeeper-operator/v0.1.0/Chart.yaml
+10
-0
generate_helm_template.sh
...cher-gatekeeper-operator/v0.1.0/generate_helm_template.sh
+16
-0
questions.yaml
charts/rancher-gatekeeper-operator/v0.1.0/questions.yaml
+2
-0
_helpers.tpl
...rancher-gatekeeper-operator/v0.1.0/templates/_helpers.tpl
+52
-0
allowedrepos.yaml
...er-gatekeeper-operator/v0.1.0/templates/allowedrepos.yaml
+36
-0
gatekeeper.yaml
...cher-gatekeeper-operator/v0.1.0/templates/gatekeeper.yaml
+591
-0
requiredlabels.yaml
...-gatekeeper-operator/v0.1.0/templates/requiredlabels.yaml
+58
-0
values.yaml
charts/rancher-gatekeeper-operator/v0.1.0/values.yaml
+20
-0
No files found.
charts/rancher-gatekeeper-operator/v0.1.0/.helmignore
0 → 100644
View file @
0ab0b8c5
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
charts/rancher-gatekeeper-operator/v0.1.0/Chart.yaml
0 → 100644
View file @
0ab0b8c5
apiVersion
:
v1
description
:
A Helm chart for Gatekeeper
name
:
rancher-gatekeeper-operator
keywords
:
-
open policy agent
version
:
v0.1.0
home
:
https://github.com/open-policy-agent/gatekeeper
sources
:
-
https://github.com/open-policy-agent/gatekeeper.git
appVersion
:
v3.1.0-beta.7
charts/rancher-gatekeeper-operator/v0.1.0/generate_helm_template.sh
0 → 100644
View file @
0ab0b8c5
#!/bin/bash
scriptdir
=
"
$(
dirname
"
$0
"
)
"
cd
"
$scriptdir
"
cp
./../../deploy/gatekeeper.yaml
${
PWD
}
/helm-modifications/_temp.yaml
kustomize build helm-modifications
-o
templates/gatekeeper.yaml
sed
-i
-E
"s/HELMSUBST_DEPLOYMENT_CONTAINER_RESOURCES/
\
\n
{{ toYaml .Values.resources | indent 10 }}/"
templates/gatekeeper.yaml
sed
-i
-E
"s/HELMSUBST_DEPLOYMENT_POD_SCHEDULING/
\
\n
{{ toYaml .Values.nodeSelector | indent 8 }}
\
\n
affinity:
\
\n
{{ toYaml .Values.affinity | indent 8 }}
\
\n
tolerations:
\
\n
{{ toYaml .Values.tolerations | indent 8 }}/"
templates/gatekeeper.yaml
sed
-i
"s/HELMSUBST_DEPLOYMENT_REPLICAS/{{ .Values.replicas }}/g"
templates/gatekeeper.yaml
rm
./helm-modifications/_temp.yaml
echo
"Helm template created under '
$PWD
/templates'"
charts/rancher-gatekeeper-operator/v0.1.0/questions.yaml
0 → 100644
View file @
0ab0b8c5
rancher_min_version
:
2.4.0-rc1
\ No newline at end of file
charts/rancher-gatekeeper-operator/v0.1.0/templates/_helpers.tpl
0 → 100644
View file @
0ab0b8c5
{{
/*
Expand
the
name
of
the
chart
.
*/
}}
{{- define "gatekeeper-operator.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{
{
/*
Create
a
default
fully
qualified
app
name
.
We
truncate
at
63
chars
because
some
Kubernetes
name
fields
are
limited
to
this
(
by
the
DNS
naming
spec
).
If
release
name
contains
chart
name
it
will
be
used
as
a
full
name
.
*/
}
}
{{- define "gatekeeper-operator.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{
{
/*
Create
chart
name
and
version
as
used
by
the
chart
label
.
*/
}
}
{{- define "gatekeeper-operator.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{
{
/*
Common
labels
*/
}
}
{{- define "gatekeeper-operator.labels" -}}
app.kubernetes.io/name: {{ include "gatekeeper-operator.name" . }}
helm.sh/chart: {{ include "gatekeeper-operator.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{- define "system_default_registry" -}}
{{- if .Values.global.systemDefaultRegistry -}}
{{- printf "%s/" .Values.global.systemDefaultRegistry -}}
{{- else -}}
{{- "" -}}
{{- end -}}
{{- end -}}
charts/rancher-gatekeeper-operator/v0.1.0/templates/allowedrepos.yaml
0 → 100644
View file @
0ab0b8c5
apiVersion
:
templates.gatekeeper.sh/v1beta1
kind
:
ConstraintTemplate
metadata
:
name
:
k8sallowedrepos
spec
:
crd
:
spec
:
names
:
kind
:
K8sAllowedRepos
validation
:
# Schema for the `parameters` field
openAPIV3Schema
:
properties
:
repos
:
type
:
array
items
:
type
:
string
targets
:
-
target
:
admission.k8s.gatekeeper.sh
rego
:
|
package k8sallowedrepos
violation[{"msg": msg}] {
container := input.review.object.spec.containers[_]
satisfied := [good | repo = input.parameters.repos[_] ; good = startswith(container.image, repo)]
not any(satisfied)
msg := sprintf("container <%v> has an invalid image repo <%v>, allowed repos are %v", [container.name, container.image, input.parameters.repos])
}
violation[{"msg": msg}] {
container := input.review.object.spec.initContainers[_]
satisfied := [good | repo = input.parameters.repos[_] ; good = startswith(container.image, repo)]
not any(satisfied)
msg := sprintf("container <%v> has an invalid image repo <%v>, allowed repos are %v", [container.name, container.image, input.parameters.repos])
}
\ No newline at end of file
charts/rancher-gatekeeper-operator/v0.1.0/templates/gatekeeper.yaml
0 → 100644
View file @
0ab0b8c5
apiVersion
:
v1
kind
:
Namespace
metadata
:
labels
:
admission.gatekeeper.sh/ignore
:
no-self-managing
app
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
chart
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
control-plane
:
controller-manager
gatekeeper.sh/system
:
"
yes"
heritage
:
'
{{
.Release.Service
}}'
release
:
'
{{
.Release.Name
}}'
name
:
gatekeeper-system
---
apiVersion
:
apiextensions.k8s.io/v1beta1
kind
:
CustomResourceDefinition
metadata
:
annotations
:
controller-gen.kubebuilder.io/version
:
v0.2.4
helm.sh/hook
:
crd-install
helm.sh/hook-delete-policy
:
before-hook-creation
creationTimestamp
:
null
labels
:
app
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
chart
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
gatekeeper.sh/system
:
"
yes"
heritage
:
'
{{
.Release.Service
}}'
release
:
'
{{
.Release.Name
}}'
name
:
configs.config.gatekeeper.sh
spec
:
group
:
config.gatekeeper.sh
names
:
kind
:
Config
listKind
:
ConfigList
plural
:
configs
shortNames
:
-
config
singular
:
config
scope
:
Namespaced
validation
:
openAPIV3Schema
:
description
:
Config is the Schema for the configs API
properties
:
apiVersion
:
description
:
'
APIVersion
defines
the
versioned
schema
of
this
representation
of
an
object.
Servers
should
convert
recognized
schemas
to
the
latest
internal
value,
and
may
reject
unrecognized
values.
More
info:
https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type
:
string
kind
:
description
:
'
Kind
is
a
string
value
representing
the
REST
resource
this
object
represents.
Servers
may
infer
this
from
the
endpoint
the
client
submits
requests
to.
Cannot
be
updated.
In
CamelCase.
More
info:
https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type
:
string
metadata
:
type
:
object
spec
:
description
:
ConfigSpec defines the desired state of Config
properties
:
sync
:
description
:
Configuration for syncing k8s objects
properties
:
syncOnly
:
description
:
If non-empty, only entries on this list will be replicated
into OPA
items
:
properties
:
group
:
type
:
string
kind
:
type
:
string
version
:
type
:
string
type
:
object
type
:
array
type
:
object
validation
:
description
:
Configuration for validation
properties
:
traces
:
description
:
List of requests to trace. Both "user" and "kinds"
must be specified
items
:
properties
:
dump
:
description
:
Also dump the state of OPA with the trace. Set
to `All` to dump everything.
type
:
string
kind
:
description
:
Only trace requests of the following GroupVersionKind
properties
:
group
:
type
:
string
kind
:
type
:
string
version
:
type
:
string
type
:
object
user
:
description
:
Only trace requests from the specified user
type
:
string
type
:
object
type
:
array
type
:
object
type
:
object
status
:
description
:
ConfigStatus defines the observed state of Config
type
:
object
type
:
object
version
:
v1alpha1
versions
:
-
name
:
v1alpha1
served
:
true
storage
:
true
---
apiVersion
:
apiextensions.k8s.io/v1beta1
kind
:
CustomResourceDefinition
metadata
:
annotations
:
helm.sh/hook
:
crd-install
helm.sh/hook-delete-policy
:
before-hook-creation
creationTimestamp
:
null
labels
:
app
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
chart
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
controller-tools.k8s.io
:
"
1.0"
heritage
:
'
{{
.Release.Service
}}'
release
:
'
{{
.Release.Name
}}'
name
:
constrainttemplates.templates.gatekeeper.sh
spec
:
group
:
templates.gatekeeper.sh
names
:
kind
:
ConstraintTemplate
plural
:
constrainttemplates
shortNames
:
-
constraints
scope
:
Cluster
subresources
:
status
:
{}
validation
:
openAPIV3Schema
:
properties
:
apiVersion
:
description
:
'
APIVersion
defines
the
versioned
schema
of
this
representation
of
an
object.
Servers
should
convert
recognized
schemas
to
the
latest
internal
value,
and
may
reject
unrecognized
values.
More
info:
https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type
:
string
kind
:
description
:
'
Kind
is
a
string
value
representing
the
REST
resource
this
object
represents.
Servers
may
infer
this
from
the
endpoint
the
client
submits
requests
to.
Cannot
be
updated.
In
CamelCase.
More
info:
https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type
:
string
metadata
:
type
:
object
spec
:
properties
:
crd
:
properties
:
spec
:
properties
:
names
:
properties
:
kind
:
type
:
string
shortNames
:
items
:
type
:
string
type
:
array
type
:
object
validation
:
type
:
object
type
:
object
type
:
object
targets
:
items
:
properties
:
libs
:
items
:
type
:
string
type
:
array
rego
:
type
:
string
target
:
type
:
string
type
:
object
type
:
array
type
:
object
status
:
properties
:
byPod
:
items
:
properties
:
errors
:
items
:
properties
:
code
:
type
:
string
location
:
type
:
string
message
:
type
:
string
required
:
-
code
-
message
type
:
object
type
:
array
id
:
description
:
a unique identifier for the pod that wrote the status
type
:
string
observedGeneration
:
format
:
int64
type
:
integer
type
:
object
type
:
array
created
:
type
:
boolean
type
:
object
version
:
v1beta1
versions
:
-
name
:
v1beta1
served
:
true
storage
:
true
-
name
:
v1alpha1
served
:
true
storage
:
false
---
apiVersion
:
v1
kind
:
ServiceAccount
metadata
:
labels
:
app
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
chart
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
gatekeeper.sh/system
:
"
yes"
heritage
:
'
{{
.Release.Service
}}'
release
:
'
{{
.Release.Name
}}'
name
:
gatekeeper-admin
namespace
:
gatekeeper-system
---
apiVersion
:
rbac.authorization.k8s.io/v1
kind
:
Role
metadata
:
creationTimestamp
:
null
labels
:
app
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
chart
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
gatekeeper.sh/system
:
"
yes"
heritage
:
'
{{
.Release.Service
}}'
release
:
'
{{
.Release.Name
}}'
name
:
gatekeeper-manager-role
namespace
:
gatekeeper-system
rules
:
-
apiGroups
:
-
"
"
resources
:
-
secrets
verbs
:
-
create
-
delete
-
get
-
list
-
patch
-
update
-
watch
---
apiVersion
:
rbac.authorization.k8s.io/v1
kind
:
ClusterRole
metadata
:
creationTimestamp
:
null
labels
:
app
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
chart
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
gatekeeper.sh/system
:
"
yes"
heritage
:
'
{{
.Release.Service
}}'
release
:
'
{{
.Release.Name
}}'
name
:
gatekeeper-manager-role
rules
:
-
apiGroups
:
-
'
*'
resources
:
-
'
*'
verbs
:
-
get
-
list
-
watch
-
apiGroups
:
-
apiextensions.k8s.io
resources
:
-
customresourcedefinitions
verbs
:
-
create
-
delete
-
get
-
list
-
patch
-
update
-
watch
-
apiGroups
:
-
config.gatekeeper.sh
resources
:
-
configs
verbs
:
-
create
-
delete
-
get
-
list
-
patch
-
update
-
watch
-
apiGroups
:
-
config.gatekeeper.sh
resources
:
-
configs/status
verbs
:
-
get
-
patch
-
update
-
apiGroups
:
-
constraints.gatekeeper.sh
resources
:
-
'
*'
verbs
:
-
create
-
delete
-
get
-
list
-
patch
-
update
-
watch
-
apiGroups
:
-
templates.gatekeeper.sh
resources
:
-
constrainttemplates
verbs
:
-
create
-
delete
-
get
-
list
-
patch
-
update
-
watch
-
apiGroups
:
-
templates.gatekeeper.sh
resources
:
-
constrainttemplates/status
verbs
:
-
get
-
patch
-
update
-
apiGroups
:
-
admissionregistration.k8s.io
resourceNames
:
-
gatekeeper-validating-webhook-configuration
resources
:
-
validatingwebhookconfigurations
verbs
:
-
create
-
delete
-
get
-
list
-
patch
-
update
-
watch
---
apiVersion
:
rbac.authorization.k8s.io/v1
kind
:
RoleBinding
metadata
:
labels
:
app
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
chart
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
gatekeeper.sh/system
:
"
yes"
heritage
:
'
{{
.Release.Service
}}'
release
:
'
{{
.Release.Name
}}'
name
:
gatekeeper-manager-rolebinding
namespace
:
gatekeeper-system
roleRef
:
apiGroup
:
rbac.authorization.k8s.io
kind
:
Role
name
:
gatekeeper-manager-role
subjects
:
-
kind
:
ServiceAccount
name
:
gatekeeper-admin
namespace
:
gatekeeper-system
---
apiVersion
:
rbac.authorization.k8s.io/v1
kind
:
ClusterRoleBinding
metadata
:
labels
:
app
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
chart
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
gatekeeper.sh/system
:
"
yes"
heritage
:
'
{{
.Release.Service
}}'
release
:
'
{{
.Release.Name
}}'
name
:
gatekeeper-manager-rolebinding
roleRef
:
apiGroup
:
rbac.authorization.k8s.io
kind
:
ClusterRole
name
:
gatekeeper-manager-role
subjects
:
-
kind
:
ServiceAccount
name
:
gatekeeper-admin
namespace
:
gatekeeper-system
---
apiVersion
:
v1
kind
:
Secret
metadata
:
labels
:
app
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
chart
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
gatekeeper.sh/system
:
"
yes"
heritage
:
'
{{
.Release.Service
}}'
release
:
'
{{
.Release.Name
}}'
name
:
gatekeeper-webhook-server-cert
namespace
:
gatekeeper-system
---
apiVersion
:
v1
kind
:
Service
metadata
:
labels
:
app
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
chart
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
gatekeeper.sh/system
:
"
yes"
heritage
:
'
{{
.Release.Service
}}'
release
:
'
{{
.Release.Name
}}'
name
:
gatekeeper-webhook-service
namespace
:
gatekeeper-system
spec
:
ports
:
-
port
:
443
targetPort
:
8443
selector
:
app
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
chart
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
control-plane
:
controller-manager
gatekeeper.sh/system
:
"
yes"
heritage
:
'
{{
.Release.Service
}}'
release
:
'
{{
.Release.Name
}}'
---
apiVersion
:
apps/v1
kind
:
Deployment
metadata
:
labels
:
app
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
chart
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
control-plane
:
controller-manager
gatekeeper.sh/system
:
"
yes"
heritage
:
'
{{
.Release.Service
}}'
release
:
'
{{
.Release.Name
}}'
name
:
gatekeeper-controller-manager
namespace
:
gatekeeper-system
spec
:
replicas
:
{{
.Values.replicas
}}
selector
:
matchLabels
:
app
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
chart
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
control-plane
:
controller-manager
gatekeeper.sh/system
:
"
yes"
heritage
:
'
{{
.Release.Service
}}'
release
:
'
{{
.Release.Name
}}'
template
:
metadata
:
labels
:
app
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
chart
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
control-plane
:
controller-manager
gatekeeper.sh/system
:
"
yes"
heritage
:
'
{{
.Release.Service
}}'
release
:
'
{{
.Release.Name
}}'
spec
:
containers
:
-
args
:
-
--audit-interval={{ .Values.auditInterval }}
-
--port=8443
-
--logtostderr
-
--constraint-violations-limit={{ .Values.constraintViolationsLimit }}
-
--audit-from-cache={{ .Values.auditFromCache }}
-
--exempt-namespace=gatekeeper-system
command
:
-
/manager
env
:
-
name
:
POD_NAMESPACE
valueFrom
:
fieldRef
:
apiVersion
:
v1
fieldPath
:
metadata.namespace
-
name
:
POD_NAME
valueFrom
:
fieldRef
:
fieldPath
:
metadata.name
image
:
'
{{
template
"system_default_registry"
.
}}{{
.Values.image.repository
}}:{{
.Values.image.tag
}}'
imagePullPolicy
:
'
{{
.Values.image.pullPolicy
}}'
livenessProbe
:
httpGet
:
path
:
/healthz
port
:
9090
name
:
manager
ports
:
-
containerPort
:
8443
name
:
webhook-server
protocol
:
TCP
-
containerPort
:
8888
name
:
metrics
protocol
:
TCP
-
containerPort
:
9090
name
:
healthz
protocol
:
TCP
readinessProbe
:
httpGet
:
path
:
/readyz
port
:
9090
resources
:
{{
toYaml .Values.resources | indent 10
}}
securityContext
:
allowPrivilegeEscalation
:
false
runAsGroup
:
999
runAsNonRoot
:
true
runAsUser
:
1000
volumeMounts
:
-
mountPath
:
/certs
name
:
cert
readOnly
:
true
nodeSelector
:
{{
toYaml .Values.nodeSelector | indent 8
}}
affinity
:
{{
toYaml .Values.affinity | indent 8
}}
tolerations
:
{{
toYaml .Values.tolerations | indent 8
}}
serviceAccountName
:
gatekeeper-admin
terminationGracePeriodSeconds
:
60
volumes
:
-
name
:
cert
secret
:
defaultMode
:
420
secretName
:
gatekeeper-webhook-server-cert
---
apiVersion
:
admissionregistration.k8s.io/v1beta1
kind
:
ValidatingWebhookConfiguration
metadata
:
creationTimestamp
:
null
labels
:
app
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
chart
:
'
{{
template
"gatekeeper-operator.name"
.
}}'
gatekeeper.sh/system
:
"
yes"
heritage
:
'
{{
.Release.Service
}}'
release
:
'
{{
.Release.Name
}}'
name
:
gatekeeper-validating-webhook-configuration
webhooks
:
-
clientConfig
:
caBundle
:
Cg==
service
:
name
:
gatekeeper-webhook-service
namespace
:
gatekeeper-system
path
:
/v1/admit
failurePolicy
:
Ignore
name
:
validation.gatekeeper.sh
namespaceSelector
:
matchExpressions
:
-
key
:
control-plane
operator
:
DoesNotExist
-
key
:
admission.gatekeeper.sh/ignore
operator
:
DoesNotExist
rules
:
-
apiGroups
:
-
'
*'
apiVersions
:
-
'
*'
operations
:
-
CREATE
-
UPDATE
resources
:
-
'
*'
sideEffects
:
None
timeoutSeconds
:
5
-
clientConfig
:
caBundle
:
Cg==
service
:
name
:
gatekeeper-webhook-service
namespace
:
gatekeeper-system
path
:
/v1/admitlabel
failurePolicy
:
Fail
name
:
check-ignore-label.gatekeeper.sh
rules
:
-
apiGroups
:
-
"
"
apiVersions
:
-
'
*'
operations
:
-
CREATE
-
UPDATE
resources
:
-
namespaces
sideEffects
:
None
timeoutSeconds
:
5
charts/rancher-gatekeeper-operator/v0.1.0/templates/requiredlabels.yaml
0 → 100644
View file @
0ab0b8c5
apiVersion
:
templates.gatekeeper.sh/v1beta1
kind
:
ConstraintTemplate
metadata
:
name
:
k8srequiredlabels
spec
:
crd
:
spec
:
names
:
kind
:
K8sRequiredLabels
validation
:
# Schema for the `parameters` field
openAPIV3Schema
:
properties
:
message
:
type
:
string
labels
:
type
:
array
items
:
type
:
object
properties
:
key
:
type
:
string
allowedRegex
:
type
:
string
targets
:
-
target
:
admission.k8s.gatekeeper.sh
rego
:
|
package k8srequiredlabels
get_message(parameters, _default) = msg {
not parameters.message
msg := _default
}
get_message(parameters, _default) = msg {
msg := parameters.message
}
violation[{"msg": msg, "details": {"missing_labels": missing}}] {
provided := {label | input.review.object.metadata.labels[label]}
required := {label | label := input.parameters.labels[_].key}
missing := required - provided
count(missing) > 0
def_msg := sprintf("you must provide labels: %v", [missing])
msg := get_message(input.parameters, def_msg)
}
violation[{"msg": msg}] {
value := input.review.object.metadata.labels[key]
expected := input.parameters.labels[_]
expected.key == key
# do not match if allowedRegex is not defined, or is an empty string
expected.allowedRegex != ""
not re_match(expected.allowedRegex, value)
def_msg := sprintf("Label <%v: %v> does not satisfy allowed regex: %v", [key, value, expected.allowedRegex])
msg := get_message(input.parameters, def_msg)
}
\ No newline at end of file
charts/rancher-gatekeeper-operator/v0.1.0/values.yaml
0 → 100644
View file @
0ab0b8c5
replicas
:
1
auditInterval
:
60
constraintViolationsLimit
:
20
auditFromCache
:
false
image
:
repository
:
rancher/opa-gatekeeper
tag
:
v3.1.0-beta.7
pullPolicy
:
IfNotPresent
nodeSelector
:
{
"
beta.kubernetes.io/os"
:
"
linux"
}
tolerations
:
[]
resources
:
limits
:
cpu
:
1000m
memory
:
512Mi
requests
:
cpu
:
100m
memory
:
256Mi
global
:
systemDefaultRegistry
:
"
"
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment