Skip to content

Commit

Permalink
Demo for Kyverno
Browse files Browse the repository at this point in the history
  • Loading branch information
vinod827 committed Feb 16, 2025
1 parent 9331c49 commit ec7aca6
Show file tree
Hide file tree
Showing 30 changed files with 2,049 additions and 119 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,6 @@
webapp/node_modules/
webapp/package-lock.json
iac/aws/terraform/creating-custom-vpc/.terraform/
iac/demo/textract/.terraform.lock.hcl
iac/demo/textract/.terraform/*

18 changes: 0 additions & 18 deletions iac/demo/kyverno/1-kyverno-cluster-policy.yml

This file was deleted.

21 changes: 21 additions & 0 deletions iac/demo/kyverno/1.1-kyverno-policy-image-source.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
apiVersion: kyverno.io/v1
kind: Policy
metadata:
name: enforce-image-source
namespace: development
spec:
validationFailureAction: Enforce
rules:
- name: validate-image-source
match:
resources:
kinds:
- Deployment
validate:
message: "Only images from the Docker Hub account vinod827/ are allowed."
pattern:
spec:
template:
spec:
containers:
- image: "vinod827/*"
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,21 @@ apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: my-nginx
name: my-nginx
app: myapp
name: myapp
namespace: development
spec:
replicas: 3
replicas: 1
selector:
matchLabels:
app: my-nginx
app: myapp
strategy: {}
template:
metadata:
labels:
app: my-nginx
app: myapp
spec:
containers:
- image: nginx
name: nginx
resources: {}
status: {}
22 changes: 22 additions & 0 deletions iac/demo/kyverno/1.3-sample-app-valid-image-source.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: myapp
name: myapp
namespace: development
spec:
replicas: 1
selector:
matchLabels:
app: myapp
strategy: {}
template:
metadata:
labels:
app: myapp
spec:
containers:
- image: vinod827/myapp:1.0.1
name: myapp
status: {}
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,7 @@ spec:
mutate:
patchStrategicMerge:
metadata:
labels:
company: "mycompany" # Adds this label if not provided
labels: # Adds these labels if not provided
company: "mycompany"
app: "Observability"
cost: "shared-infra"
47 changes: 0 additions & 47 deletions iac/demo/kyverno/3-kyverno-policy.yml

This file was deleted.

32 changes: 32 additions & 0 deletions iac/demo/kyverno/3.1-kyverno-policy-generate-configmap.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: generate-postgres-configmap
spec:
rules:
- name: generate-postgres-configmap
match:
resources:
kinds:
- Namespace
preconditions:
- key: "{{ request.object.metadata.labels.team }}"
operator: Equals
value: "infra"
generate:
apiVersion: v1
kind: ConfigMap
name: postgres-config
namespace: "{{ request.object.metadata.name }}"
synchronize: true
data:
postgres.conf: |
# Sample PostgreSQL Configuration
listen_addresses = '*'
port = 5432
max_connections = 100
shared_buffers = 128MB
work_mem = 4MB
maintenance_work_mem = 64MB
timezone = 'UTC'
log_statement = 'ddl'
6 changes: 6 additions & 0 deletions iac/demo/kyverno/3.2-sample-namespace.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: v1
kind: Namespace
metadata:
name: test-name-2
labels:
team: infra
23 changes: 23 additions & 0 deletions iac/demo/kyverno/4.1-kyverno-policy-cleanup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
apiVersion: kyverno.io/v2beta1
kind: Policy
metadata:
name: cleanup-completed-jobs
namespace: development
spec:
rules:
- name: cleanup-jobs
match:
any:
- resources:
kinds:
- Job
namespaces:
- development
exclude:
any:
- resources:
statuses:
- "!Succeeded"
- "!Failed" # Exclude active Jobs
cleanup:
ttl: 60s # Delete Jobs 1 minute after completion
13 changes: 13 additions & 0 deletions iac/demo/kyverno/4.2-sample-job.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apiVersion: batch/v1
kind: Job
metadata:
name: test-job
namespace: development
spec:
template:
spec:
restartPolicy: Never
containers:
- name: busybox
image: busybox
command: ["echo", "Hello, Welcome to the DevOps Malayalam community! Let's deep dive into Kyverno today."]
20 changes: 0 additions & 20 deletions iac/demo/kyverno/6-clean-up-policy.yml

This file was deleted.

19 changes: 0 additions & 19 deletions iac/demo/kyverno/8-generate.yml

This file was deleted.

21 changes: 21 additions & 0 deletions iac/demo/kyverno/demo/1.1-kyverno-policy-image-source.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
apiVersion: kyverno.io/v1
kind: Policy
metadata:
name: enforce-image-source
namespace: development
spec:
validationFailureAction: Enforce
rules:
- name: validate-image-source
match:
resources:
kinds:
- Deployment
validate:
message: "Only images from the Docker Hub account vinod827/ are allowed."
pattern:
spec:
template:
spec:
containers:
- image: "vinod827/*"
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,21 @@ apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: my-nginx
team_name: team-A
name: my-nginx
app: myapp
name: myapp
namespace: development
spec:
replicas: 2
replicas: 1
selector:
matchLabels:
app: my-nginx
app: myapp
strategy: {}
template:
metadata:
labels:
app: my-nginx
app: myapp
spec:
containers:
- image: nginx
name: nginx
resources: {}
status: {}
22 changes: 22 additions & 0 deletions iac/demo/kyverno/demo/1.3-sample-app-valid-image-source.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: myapp
name: myapp
namespace: development
spec:
replicas: 1
selector:
matchLabels:
app: myapp
strategy: {}
template:
metadata:
labels:
app: myapp
spec:
containers:
- image: vinod827/myapp:1.0.1
name: myapp
status: {}
19 changes: 19 additions & 0 deletions iac/demo/kyverno/demo/2.1-kyverno-clusterpolicy-mutate-label.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: add-app-label
spec:
rules:
- name: add-app-label-to-pods-deployment
match:
resources:
kinds:
- Pod
- Deployment
mutate:
patchStrategicMerge:
metadata:
labels: # Adds these labels if not provided
company: "mycompany"
app: "Observability"
cost: "shared-infra"
Loading

0 comments on commit ec7aca6

Please sign in to comment.