Skip to content

Instantly share code, notes, and snippets.

View onelittlenightmusic's full-sized avatar

Roy Hiroyuki Osaki onelittlenightmusic

  • Hitachi America Ltd,
  • Santa Clara
View GitHub Profile
@onelittlenightmusic
onelittlenightmusic / 0-opa-json-cheatsheet.md
Last active August 20, 2021 20:30
Document for `jr`, `jb` or `jp`

jr, jp, jb (alias to opa eval): Cheatsheet

jr, jp and jb are commands for JSON modification.

Basic usages

$ data='{"name":"chris", "friends":["alice", "bob"]}'
# jr
$ echo $data | jr 'i.name'
Resource Amount
CPU 4 Cores
Memory 12 GB
Disk 50 GB
main = { #Start of value
"apiVersion": "admission.k8s.io/v1beta1",
"kind": "AdmissionReview",
"response": {
"allowed": true,
"patchType": "JSONPatch",
"patch": patch_bytes,
}
} #End of value
{ #Start of condition
@onelittlenightmusic
onelittlenightmusic / main.rego
Created March 22, 2020 19:39
Simple OPA mutation policy by Mr. Torin Sandall
package system
main = {
"apiVersion": "admission.k8s.io/v1beta1",
"kind": "AdmissionReview",
"response": {
"allowed": true,
"patchType": "JSONPatch",
"patch": patch_bytes,
}
@onelittlenightmusic
onelittlenightmusic / install.sh
Created March 22, 2020 19:37
OPA install.sh
kubectl create namespace opa
helm repo add stable https://kubernetes-charts.storage.googleapis.com
helm repo up
helm install opa stable/opa -f helm-values.yaml --namespace opa
@onelittlenightmusic
onelittlenightmusic / values.yaml
Created March 22, 2020 19:36
OPA helm chart values file
admissionControllerKind: MutatingWebhookConfiguration
opa: null
mgmt:
configmapPolicies:
enabled: true
namespaces: [opa, opa-example]
requireLabel: true
replicate:
cluster:
- v1/namespaces
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-ok
namespace: opa-example
spec:
rules:
- host: signin.ng.com
http:
paths:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-ok-2
namespace: opa-example
spec:
rules:
- host: test2.secondok.com
http:
paths:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-ok
namespace: opa-example
spec:
rules:
- host: test.ok.com
http:
paths:
apiVersion: v1
kind: Namespace
metadata:
annotations:
ingress-whitelist: "*.ok.com,*.secondok.com"
name: opa-example