Add demo apps for rhacs talk.
This commit is contained in:
@ -0,0 +1,342 @@
|
||||
|
||||
# Secret named "ssh-keys"
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: ssh-keys
|
||||
namespace: backend
|
||||
data:
|
||||
id_rsa: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlDWGdJQkFBS0JnUURSVk4vbFYxOFFYMnBmQlNLYVowVVlDVlk2TDFSRDlhNy9QRGtmVlpJRXdTUCszczIzCmpHU3NZanhxZXliT0lEZzI3dndkWkw5R1dEd2Nsb2lVbmhjWUpDSlJaalN4VUw5MmJJSGVhYitYSnJQUGRFNmUKbnZLTmpsSE1nampxdVhQWGkrQmpjNDgvd1BGYnhLVndSclYwOUFZOUpDbXBWZUhqdUFHUStwbmk2d0lEQVFBQgpBb0dCQUpkWWpSUk1xaisxTEx3TWcyc3RGUWgrMzZmcnhqbm9iS0MrMHZIenRVSFl2b1NzWkFHNzhLR3QyTTZICndaT3dPZFNGenlRVlRqRzI0NmNyc3czNGl1cXJtd2Q1Qmhhb0hEbmhGN3pqZkMybUN5MjlkNGF4cGY0N1NZMGYKais5bHEzSzNrRDhkcVBQTzhGRnhjQlNmSGw3ejFWR2ppbmx1V1UwbHBUN1V4YlY1QWtFQTZkMElkYTJFMlo1LwpjYTZIQXdQVGpIOUFMYzhwQlI0bXg4Q2pUN1BWZk1ncUV5SGdTRGx3aGw4V3Z2OHFWVG0xRDdxUFhoS21FeTVhCnZWdDlnUE9PclFKQkFPVWxZdS85ZUNWODY0L2VacWhWYXlBT0JIUHNUQ3ZpZ04wNk83MDBHeldPVlVGR0pxUkoKY2dWRnNhVjBudytrU3FxaFdTRVJGS1JxM3RHYmFlK1JZdmNDUUUwSjRDQ0w0YWlpbXM4RE5EeWRCUkpTVlAwQwpNandhVzZJUDVueDUvRWpYMDJ4c0Myc2ZhTjhLOGY1SEpsWGU1Yk5odkpxN3YvT3ZvSHFpYWV5Unp4MENRUUM2CkM2TEtxNGRUR0p2QlVaY1Q4VlpxemphN1VBMkFUQVRJbWJGTEt2VTBoSDJmNDY4WUVER3RLaXJUNVY0SHV5S00KYXpnTWF1dlJtcHVTbjVaaFZpOTlBa0VBaWtIanNZZW5YVWNaSHpHZzVTZ3RGc29DdXV2eEdNenpNc2cyVWZIVgo5TnNXNXoxcytHNmM2bXhCMmxFaTRVcEswc0xJeTMyZG9NRVpKQkp2cGN5MVZ3PT0KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0K
|
||||
id_rsa.pub: c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFBZ1FEUlZOL2xWMThRWDJwZkJTS2FaMFVZQ1ZZNkwxUkQ5YTcvUERrZlZaSUV3U1ArM3MyM2pHU3NZanhxZXliT0lEZzI3dndkWkw5R1dEd2Nsb2lVbmhjWUpDSlJaalN4VUw5MmJJSGVhYitYSnJQUGRFNmVudktOamxITWdqanF1WFBYaStCamM0OC93UEZieEtWd1JyVjA5QVk5SkNtcFZlSGp1QUdRK3BuaTZ3PT0gaGFja2VybWFuCg==
|
||||
|
||||
---
|
||||
# Deployment named "api-server"
|
||||
# Listens on :9001
|
||||
# Connects to "gateway-service" in "payments" namespace
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: api-server
|
||||
namespace: backend
|
||||
labels:
|
||||
app: api-server
|
||||
demo: roadshow
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: api-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: api-server
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: rhacs-demo-pull-pull-secret
|
||||
containers:
|
||||
- image: quay.io/rhacs-demo/netflow:latest
|
||||
command: ["/bin/entrypoint"]
|
||||
args: ["-listen", "9001", "-connect", "backend-atlas-service.backend.svc.cluster.local:8080,postgres-service.backend.svc.cluster.local:5432,gateway-service.payments.svc.cluster.local:7777"]
|
||||
imagePullPolicy: Always
|
||||
name: api-server
|
||||
ports:
|
||||
- containerPort: 9001
|
||||
protocol: TCP
|
||||
|
||||
---
|
||||
# Service named "api-server-service"
|
||||
# Listens on :9001
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: api-server
|
||||
name: api-server-service
|
||||
namespace: backend
|
||||
spec:
|
||||
ports:
|
||||
- port: 9001
|
||||
protocol: TCP
|
||||
targetPort: 9001
|
||||
name: http
|
||||
selector:
|
||||
app: api-server
|
||||
type: ClusterIP
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: backend-atlas
|
||||
namespace: backend
|
||||
labels:
|
||||
app: backend-atlas
|
||||
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: backend-atlas
|
||||
namespace: backend
|
||||
labels:
|
||||
app: backend-atlas
|
||||
rules:
|
||||
- apiGroups: [""]
|
||||
resources: ["configmaps"]
|
||||
verbs: ["*"]
|
||||
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: backend-atlas
|
||||
namespace: backend
|
||||
labels:
|
||||
app: backend-atlas
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: backend-atlas
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: backend-atlas
|
||||
namespace: backend
|
||||
|
||||
---
|
||||
# Deployment named "backend-atlas"
|
||||
# Listens on :8080
|
||||
# Vulnerable to struts
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: backend-atlas
|
||||
namespace: backend
|
||||
labels:
|
||||
app: backend-atlas
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: backend-atlas
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: backend-atlas
|
||||
spec:
|
||||
serviceAccountName: backend-atlas
|
||||
imagePullSecrets:
|
||||
- name: rhacs-demo-pull-pull-secret
|
||||
containers:
|
||||
- image: quay.io/rhacs-demo/backend-atlas:latest
|
||||
imagePullPolicy: Always
|
||||
name: backend-atlas
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
- image: quay.io/rhacs-demo/backend-atlas:sidecar-latest
|
||||
command: ["/bin/entrypoint"]
|
||||
name: log-collector
|
||||
|
||||
---
|
||||
|
||||
# Service named "backend-atlas-service"
|
||||
# Listens on :8080
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: backend-atlas
|
||||
name: backend-atlas-service
|
||||
namespace: backend
|
||||
spec:
|
||||
ports:
|
||||
- port: 8080
|
||||
protocol: TCP
|
||||
targetPort: 8080
|
||||
name: http
|
||||
selector:
|
||||
app: backend-atlas
|
||||
type: ClusterIP
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: postgres
|
||||
namespace: backend
|
||||
labels:
|
||||
app: postgres
|
||||
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: postgres-cm
|
||||
namespace: backend
|
||||
labels:
|
||||
app: postgres
|
||||
rules:
|
||||
- apiGroups: [""] # core
|
||||
resources: ["configmaps"]
|
||||
verbs: ["get"]
|
||||
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: postgres
|
||||
namespace: backend
|
||||
labels:
|
||||
app: postgres
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: postgres-cm
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: postgres
|
||||
namespace: backend
|
||||
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: postgres-secrets
|
||||
namespace: backend
|
||||
labels:
|
||||
app: postgres
|
||||
rules:
|
||||
- apiGroups: [""] # core
|
||||
resources: ["secrets"]
|
||||
verbs: ["get"]
|
||||
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: postgres-secrets
|
||||
namespace: backend
|
||||
labels:
|
||||
app: postgres
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: postgres-secrets
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: postgres
|
||||
namespace: backend
|
||||
|
||||
---
|
||||
# Deployment named "postgres"
|
||||
# Listens on :5432
|
||||
# Has SSH keys mounted
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: postgres
|
||||
namespace: backend
|
||||
labels:
|
||||
app: postgres
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: postgres
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: postgres
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: rhacs-demo-pull-pull-secret
|
||||
volumes:
|
||||
- name: ssh-keys
|
||||
secret:
|
||||
secretName: ssh-keys
|
||||
containers:
|
||||
- image: quay.io/rhacs-demo/netflow:latest
|
||||
command: ["/bin/entrypoint"]
|
||||
args: ["-listen", "5432"]
|
||||
imagePullPolicy: Always
|
||||
name: postgres
|
||||
ports:
|
||||
- containerPort: 5432
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- name: ssh-keys
|
||||
mountPath: "/root/.ssh"
|
||||
|
||||
---
|
||||
# Service named "postgres-service"
|
||||
# Listens on :5432
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: postgres
|
||||
name: postgres-service
|
||||
namespace: backend
|
||||
spec:
|
||||
ports:
|
||||
- port: 5432
|
||||
protocol: TCP
|
||||
targetPort: 5432
|
||||
name: tcp
|
||||
selector:
|
||||
app: postgres
|
||||
type: ClusterIP
|
||||
|
||||
---
|
||||
|
||||
# Deployment named "varnish"
|
||||
# Listens on :8080
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: varnish
|
||||
namespace: backend
|
||||
labels:
|
||||
app: varnish
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: varnish
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: varnish
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: rhacs-demo-pull-pull-secret
|
||||
containers:
|
||||
- image: quay.io/rhacs-demo/netflow:latest
|
||||
command: ["/bin/entrypoint"]
|
||||
args: ["-listen", "8080", "-connect", "api-server-service.backend.svc.cluster.local:9001"]
|
||||
imagePullPolicy: Always
|
||||
name: varnish
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
protocol: TCP
|
||||
|
||||
---
|
||||
|
||||
# Service named "varnish-service"
|
||||
# Listens on :8080
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: varnish
|
||||
name: varnish-service
|
||||
namespace: backend
|
||||
spec:
|
||||
ports:
|
||||
- port: 8080
|
||||
protocol: TCP
|
||||
targetPort: 8080
|
||||
name: http
|
||||
selector:
|
||||
app: varnish
|
||||
type: ClusterIP
|
||||
|
||||
@ -0,0 +1,214 @@
|
||||
|
||||
# Secret named "ssh-keys"
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: ssh-keys
|
||||
namespace: frontend
|
||||
data:
|
||||
id_rsa: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlDWGdJQkFBS0JnUURSVk4vbFYxOFFYMnBmQlNLYVowVVlDVlk2TDFSRDlhNy9QRGtmVlpJRXdTUCszczIzCmpHU3NZanhxZXliT0lEZzI3dndkWkw5R1dEd2Nsb2lVbmhjWUpDSlJaalN4VUw5MmJJSGVhYitYSnJQUGRFNmUKbnZLTmpsSE1nampxdVhQWGkrQmpjNDgvd1BGYnhLVndSclYwOUFZOUpDbXBWZUhqdUFHUStwbmk2d0lEQVFBQgpBb0dCQUpkWWpSUk1xaisxTEx3TWcyc3RGUWgrMzZmcnhqbm9iS0MrMHZIenRVSFl2b1NzWkFHNzhLR3QyTTZICndaT3dPZFNGenlRVlRqRzI0NmNyc3czNGl1cXJtd2Q1Qmhhb0hEbmhGN3pqZkMybUN5MjlkNGF4cGY0N1NZMGYKais5bHEzSzNrRDhkcVBQTzhGRnhjQlNmSGw3ejFWR2ppbmx1V1UwbHBUN1V4YlY1QWtFQTZkMElkYTJFMlo1LwpjYTZIQXdQVGpIOUFMYzhwQlI0bXg4Q2pUN1BWZk1ncUV5SGdTRGx3aGw4V3Z2OHFWVG0xRDdxUFhoS21FeTVhCnZWdDlnUE9PclFKQkFPVWxZdS85ZUNWODY0L2VacWhWYXlBT0JIUHNUQ3ZpZ04wNk83MDBHeldPVlVGR0pxUkoKY2dWRnNhVjBudytrU3FxaFdTRVJGS1JxM3RHYmFlK1JZdmNDUUUwSjRDQ0w0YWlpbXM4RE5EeWRCUkpTVlAwQwpNandhVzZJUDVueDUvRWpYMDJ4c0Myc2ZhTjhLOGY1SEpsWGU1Yk5odkpxN3YvT3ZvSHFpYWV5Unp4MENRUUM2CkM2TEtxNGRUR0p2QlVaY1Q4VlpxemphN1VBMkFUQVRJbWJGTEt2VTBoSDJmNDY4WUVER3RLaXJUNVY0SHV5S00KYXpnTWF1dlJtcHVTbjVaaFZpOTlBa0VBaWtIanNZZW5YVWNaSHpHZzVTZ3RGc29DdXV2eEdNenpNc2cyVWZIVgo5TnNXNXoxcytHNmM2bXhCMmxFaTRVcEswc0xJeTMyZG9NRVpKQkp2cGN5MVZ3PT0KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0K
|
||||
id_rsa.pub: c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFBZ1FEUlZOL2xWMThRWDJwZkJTS2FaMFVZQ1ZZNkwxUkQ5YTcvUERrZlZaSUV3U1ArM3MyM2pHU3NZanhxZXliT0lEZzI3dndkWkw5R1dEd2Nsb2lVbmhjWUpDSlJaalN4VUw5MmJJSGVhYitYSnJQUGRFNmVudktOamxITWdqanF1WFBYaStCamM0OC93UEZieEtWd1JyVjA5QVk5SkNtcFZlSGp1QUdRK3BuaTZ3PT0gaGFja2VybWFuCg==
|
||||
|
||||
---
|
||||
|
||||
# Deployment named "asset-cache"
|
||||
# Listens on :8080
|
||||
# Vulnerable to struts
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: asset-cache
|
||||
namespace: frontend
|
||||
labels:
|
||||
app: asset-cache
|
||||
demo: roadshow
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: asset-cache
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: asset-cache
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: rhacs-demo-pull-pull-secret
|
||||
containers:
|
||||
- image: quay.io/rhacs-demo/asset-cache:latest
|
||||
imagePullPolicy: Always
|
||||
name: asset-cache
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
protocol: TCP
|
||||
securityContext:
|
||||
capabilities:
|
||||
drop: ["NET_ADMIN"]
|
||||
- image: quay.io/rhacs-demo/asset-cache:sidecar-latest
|
||||
imagePullPolicy: Always
|
||||
name: asset-cache-sidecar
|
||||
command: ["/bin/entrypoint"]
|
||||
securityContext:
|
||||
privileged: false
|
||||
|
||||
---
|
||||
|
||||
# Service named "asset-cache-service"
|
||||
# Listens on :8080
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: asset-cache
|
||||
name: asset-cache-service
|
||||
namespace: frontend
|
||||
spec:
|
||||
ports:
|
||||
- port: 8080
|
||||
protocol: TCP
|
||||
targetPort: 8080
|
||||
name: http
|
||||
selector:
|
||||
app: asset-cache
|
||||
type: ClusterIP
|
||||
|
||||
---
|
||||
|
||||
# Deployment named "tls-proxy"
|
||||
# Listens on :80 and :443
|
||||
# Has SSH keys mounted
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: tls-proxy
|
||||
namespace: frontend
|
||||
labels:
|
||||
app: tls-proxy
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: tls-proxy
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: tls-proxy
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: rhacs-demo-pull-pull-secret
|
||||
volumes:
|
||||
- name: ssh-keys
|
||||
secret:
|
||||
secretName: ssh-keys
|
||||
containers:
|
||||
- image: quay.io/rhacs-demo/netflow:latest
|
||||
command: ["/bin/entrypoint"]
|
||||
args: ["-listen", "80,443", "-connect", "asset-cache-service.frontend.svc.cluster.local:8080,wordpress-service.frontend.svc.cluster.local:80"]
|
||||
imagePullPolicy: Always
|
||||
name: tls-proxy
|
||||
ports:
|
||||
- containerPort: 80
|
||||
protocol: TCP
|
||||
- containerPort: 443
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- name: ssh-keys
|
||||
mountPath: "/root/.ssh"
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: tls-proxy
|
||||
name: tls-proxy-service
|
||||
namespace: frontend
|
||||
spec:
|
||||
ports:
|
||||
- port: 80
|
||||
protocol: TCP
|
||||
targetPort: 80
|
||||
name: http
|
||||
- port: 443
|
||||
protocol: TCP
|
||||
targetPort: 443
|
||||
name: tls
|
||||
selector:
|
||||
app: tls-proxy
|
||||
type: ClusterIP
|
||||
|
||||
---
|
||||
|
||||
# Deployment named "wordpress"
|
||||
# Listens on :80
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: wordpress
|
||||
namespace: frontend
|
||||
labels:
|
||||
app: wordpress
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: wordpress
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: wordpress
|
||||
spec:
|
||||
containers:
|
||||
- image: wordpress:latest
|
||||
imagePullPolicy: Always
|
||||
name: wordpress
|
||||
ports:
|
||||
- containerPort: 80
|
||||
protocol: TCP
|
||||
|
||||
---
|
||||
|
||||
# Service named "wordpress-service"
|
||||
# Listens on :80
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: wordpress
|
||||
name: wordpress-service
|
||||
namespace: frontend
|
||||
spec:
|
||||
ports:
|
||||
- port: 80
|
||||
protocol: TCP
|
||||
targetPort: 80
|
||||
name: http
|
||||
selector:
|
||||
app: wordpress
|
||||
type: ClusterIP
|
||||
|
||||
---
|
||||
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: monitor
|
||||
namespace: frontend
|
||||
labels:
|
||||
app: monitor
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: monitor
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: monitor
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: rhacs-demo-pull-pull-secret
|
||||
containers:
|
||||
- image: quay.io/rhacs-demo/monitor:latest
|
||||
imagePullPolicy: Always
|
||||
name: monitor
|
||||
@ -0,0 +1,182 @@
|
||||
# Deployment named "reporting"
|
||||
# Listens on :8080
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: reporting
|
||||
namespace: medical
|
||||
labels:
|
||||
app: reporting
|
||||
demo: roadshow
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: reporting
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: reporting
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: rhacs-demo-pull-pull-secret
|
||||
containers:
|
||||
- image: quay.io/rhacs-demo/reporting:latest
|
||||
command: ["/bin/entrypoint"]
|
||||
args: ["-listen", "8080", "-connect", "patient-db-service.medical.svc.cluster.local:8080"]
|
||||
imagePullPolicy: Always
|
||||
name: reporting
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
protocol: TCP
|
||||
|
||||
---
|
||||
|
||||
# Service named "reporting-service"
|
||||
# Listens on :8080
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: reporting
|
||||
name: reporting-service
|
||||
namespace: medical
|
||||
spec:
|
||||
ports:
|
||||
- port: 8080
|
||||
protocol: TCP
|
||||
targetPort: 8080
|
||||
name: http
|
||||
selector:
|
||||
app: reporting
|
||||
type: ClusterIP
|
||||
|
||||
---
|
||||
|
||||
# Deployment named "patient-db"
|
||||
# Listens on :8080
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: patient-db
|
||||
namespace: medical
|
||||
labels:
|
||||
app: patient-db
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: patient-db
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: patient-db
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: rhacs-demo-pull-pull-secret
|
||||
containers:
|
||||
- image: quay.io/rhacs-demo/netflow:latest
|
||||
command: ["/bin/entrypoint"]
|
||||
args: ["-listen", "8080", "-connect", "reporting-service.medical.svc.cluster.local:8080"]
|
||||
imagePullPolicy: Always
|
||||
name: patient-db
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
protocol: TCP
|
||||
|
||||
---
|
||||
|
||||
# Service named "patient-db-service"
|
||||
# Listens on :8080
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: patient-db
|
||||
name: patient-db-service
|
||||
namespace: medical
|
||||
spec:
|
||||
ports:
|
||||
- port: 8080
|
||||
protocol: TCP
|
||||
targetPort: 8080
|
||||
name: tcp
|
||||
selector:
|
||||
app: patient-db
|
||||
type: ClusterIP
|
||||
|
||||
---
|
||||
|
||||
# Network policy named "deny-all"
|
||||
# Denies all ingress and egress traffic
|
||||
kind: NetworkPolicy
|
||||
apiVersion: networking.k8s.io/v1
|
||||
metadata:
|
||||
name: deny-all
|
||||
namespace: medical
|
||||
spec:
|
||||
policyTypes:
|
||||
- Ingress
|
||||
- Egress
|
||||
podSelector: {}
|
||||
egress:
|
||||
- ports:
|
||||
# Istio-pilot port -- required for istio-proxy registration
|
||||
- port: 15010
|
||||
to:
|
||||
- namespaceSelector:
|
||||
matchLabels:
|
||||
istio-system: "true"
|
||||
- ports:
|
||||
- protocol: UDP
|
||||
# kube-dns -- required for istio-proxy to find istio-pilot service
|
||||
port: 53
|
||||
to:
|
||||
- namespaceSelector:
|
||||
matchLabels:
|
||||
kube-system: "true"
|
||||
ingress:
|
||||
- ports:
|
||||
# Istio-proxy status port -- required for Istio to update routing
|
||||
- port: 15020
|
||||
from:
|
||||
- namespaceSelector:
|
||||
matchLabels:
|
||||
istio-system: "true"
|
||||
- ports:
|
||||
# Istio-proxy port -- required for Istio to update routing
|
||||
- port: 15090
|
||||
from:
|
||||
- namespaceSelector:
|
||||
matchLabels:
|
||||
istio-system: "true"
|
||||
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: proxy
|
||||
namespace: medical
|
||||
labels:
|
||||
app: proxy
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: proxy
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: proxy
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: rhacs-demo-pull-pull-secret
|
||||
containers:
|
||||
- image: quay.io/rhacs-demo/proxy:latest
|
||||
securityContext:
|
||||
privileged: true
|
||||
command: ["/bin/entrypoint"]
|
||||
imagePullPolicy: Always
|
||||
name: proxy
|
||||
|
||||
|
||||
@ -0,0 +1,44 @@
|
||||
---
|
||||
# Namespace for backend
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: backend
|
||||
labels:
|
||||
name: backend
|
||||
|
||||
---
|
||||
# Namespace for frontend
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: frontend
|
||||
labels:
|
||||
name: frontend
|
||||
|
||||
---
|
||||
# Namespace for medical
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: medical
|
||||
labels:
|
||||
name: medical
|
||||
|
||||
---
|
||||
# Namespace for operations
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: operations
|
||||
labels:
|
||||
name: operations
|
||||
|
||||
---
|
||||
# Namespace for payments
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: payments
|
||||
labels:
|
||||
name: payments
|
||||
@ -0,0 +1,176 @@
|
||||
# Secret named "ssh-keys"
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
namespace: operations
|
||||
name: ssh-keys
|
||||
data:
|
||||
id_rsa: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlDWGdJQkFBS0JnUURSVk4vbFYxOFFYMnBmQlNLYVowVVlDVlk2TDFSRDlhNy9QRGtmVlpJRXdTUCszczIzCmpHU3NZanhxZXliT0lEZzI3dndkWkw5R1dEd2Nsb2lVbmhjWUpDSlJaalN4VUw5MmJJSGVhYitYSnJQUGRFNmUKbnZLTmpsSE1nampxdVhQWGkrQmpjNDgvd1BGYnhLVndSclYwOUFZOUpDbXBWZUhqdUFHUStwbmk2d0lEQVFBQgpBb0dCQUpkWWpSUk1xaisxTEx3TWcyc3RGUWgrMzZmcnhqbm9iS0MrMHZIenRVSFl2b1NzWkFHNzhLR3QyTTZICndaT3dPZFNGenlRVlRqRzI0NmNyc3czNGl1cXJtd2Q1Qmhhb0hEbmhGN3pqZkMybUN5MjlkNGF4cGY0N1NZMGYKais5bHEzSzNrRDhkcVBQTzhGRnhjQlNmSGw3ejFWR2ppbmx1V1UwbHBUN1V4YlY1QWtFQTZkMElkYTJFMlo1LwpjYTZIQXdQVGpIOUFMYzhwQlI0bXg4Q2pUN1BWZk1ncUV5SGdTRGx3aGw4V3Z2OHFWVG0xRDdxUFhoS21FeTVhCnZWdDlnUE9PclFKQkFPVWxZdS85ZUNWODY0L2VacWhWYXlBT0JIUHNUQ3ZpZ04wNk83MDBHeldPVlVGR0pxUkoKY2dWRnNhVjBudytrU3FxaFdTRVJGS1JxM3RHYmFlK1JZdmNDUUUwSjRDQ0w0YWlpbXM4RE5EeWRCUkpTVlAwQwpNandhVzZJUDVueDUvRWpYMDJ4c0Myc2ZhTjhLOGY1SEpsWGU1Yk5odkpxN3YvT3ZvSHFpYWV5Unp4MENRUUM2CkM2TEtxNGRUR0p2QlVaY1Q4VlpxemphN1VBMkFUQVRJbWJGTEt2VTBoSDJmNDY4WUVER3RLaXJUNVY0SHV5S00KYXpnTWF1dlJtcHVTbjVaaFZpOTlBa0VBaWtIanNZZW5YVWNaSHpHZzVTZ3RGc29DdXV2eEdNenpNc2cyVWZIVgo5TnNXNXoxcytHNmM2bXhCMmxFaTRVcEswc0xJeTMyZG9NRVpKQkp2cGN5MVZ3PT0KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0K
|
||||
id_rsa.pub: c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFBZ1FEUlZOL2xWMThRWDJwZkJTS2FaMFVZQ1ZZNkwxUkQ5YTcvUERrZlZaSUV3U1ArM3MyM2pHU3NZanhxZXliT0lEZzI3dndkWkw5R1dEd2Nsb2lVbmhjWUpDSlJaalN4VUw5MmJJSGVhYitYSnJQUGRFNmVudktOamxITWdqanF1WFBYaStCamM0OC93UEZieEtWd1JyVjA5QVk5SkNtcFZlSGp1QUdRK3BuaTZ3PT0gaGFja2VybWFuCg==
|
||||
|
||||
---
|
||||
# Deployment named "jump-host"
|
||||
# Listens on :22
|
||||
# Has SSH keys mounted
|
||||
# Connects to "visa-processor-service" in the "payments" namespace
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: jump-host
|
||||
namespace: operations
|
||||
labels:
|
||||
app: jump-host
|
||||
demo: roadshow
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: jump-host
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: jump-host
|
||||
spec:
|
||||
volumes:
|
||||
- name: ssh-keys
|
||||
secret:
|
||||
secretName: ssh-keys
|
||||
imagePullSecrets:
|
||||
- name: rhacs-demo-pull-pull-secret
|
||||
containers:
|
||||
- image: quay.io/rhacs-demo/jump-host:latest
|
||||
command: ["/bin/entrypoint"]
|
||||
args: ["-listen", "22", "-connect", "pupper-master-service.operations.svc.cluster.local:8140,visa-processor-service.payments.svc.cluster.local:8080,patient-db-service.medical.svc.cluster.local:8080"]
|
||||
imagePullPolicy: Always
|
||||
name: jump-host
|
||||
ports:
|
||||
- containerPort: 22
|
||||
name: tcp
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- name: ssh-keys
|
||||
mountPath: "/root/.ssh"
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: jump-host
|
||||
name: jump-host-service
|
||||
namespace: operations
|
||||
spec:
|
||||
ports:
|
||||
- port: 8001
|
||||
protocol: TCP
|
||||
targetPort: 22
|
||||
name: tcp
|
||||
selector:
|
||||
app: jump-host
|
||||
type: ClusterIP
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: puppet-master
|
||||
namespace: operations
|
||||
labels:
|
||||
app: puppet-master
|
||||
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: puppet-master
|
||||
namespace: operations
|
||||
labels:
|
||||
app: puppet-master
|
||||
rules:
|
||||
- apiGroups: ["*"]
|
||||
resources: ["*"]
|
||||
verbs: ["get", "watch", "list"]
|
||||
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: puppet-master
|
||||
namespace: operations
|
||||
labels:
|
||||
app: puppet-master
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: puppet-master
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: puppet-master
|
||||
namespace: operations
|
||||
|
||||
---
|
||||
# Deployment named "puppet-master"
|
||||
# Listens on :8140
|
||||
# Runs apt-get
|
||||
# Runs nmap
|
||||
# Mounts the host Docker socket
|
||||
# Runs as privileged
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: puppet-master
|
||||
namespace: operations
|
||||
labels:
|
||||
app: puppet-master
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: puppet-master
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: puppet-master
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: rhacs-demo-pull-pull-secret
|
||||
serviceAccountName: puppet-master
|
||||
volumes:
|
||||
- hostPath:
|
||||
path: /var/run/docker.sock
|
||||
name: var-run-docker-sock
|
||||
containers:
|
||||
- image: quay.io/rhacs-demo/netflow:latest
|
||||
command: ["/bin/sh"]
|
||||
args: ["-c", "/usr/bin/apt-get install nmap; /bin/nmap -Pn 10.0.0.0/24; /bin/entrypoint -listen 8140"]
|
||||
imagePullPolicy: Always
|
||||
name: puppet-master
|
||||
securityContext:
|
||||
privileged: true
|
||||
ports:
|
||||
- containerPort: 8140
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- mountPath: /host/var/run/docker.sock
|
||||
name: var-run-docker-sock
|
||||
|
||||
---
|
||||
|
||||
# Service named "pupper-master-service"
|
||||
# Listens on :8140
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: puppet-master
|
||||
name: pupper-master-service
|
||||
namespace: operations
|
||||
spec:
|
||||
ports:
|
||||
- port: 8140
|
||||
protocol: TCP
|
||||
targetPort: 8140
|
||||
name: http
|
||||
selector:
|
||||
app: puppet-master
|
||||
type: ClusterIP
|
||||
@ -0,0 +1,446 @@
|
||||
# Secret named "ssh-keys"
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
namespace: payments
|
||||
name: ssh-keys
|
||||
data:
|
||||
id_rsa: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlDWGdJQkFBS0JnUURSVk4vbFYxOFFYMnBmQlNLYVowVVlDVlk2TDFSRDlhNy9QRGtmVlpJRXdTUCszczIzCmpHU3NZanhxZXliT0lEZzI3dndkWkw5R1dEd2Nsb2lVbmhjWUpDSlJaalN4VUw5MmJJSGVhYitYSnJQUGRFNmUKbnZLTmpsSE1nampxdVhQWGkrQmpjNDgvd1BGYnhLVndSclYwOUFZOUpDbXBWZUhqdUFHUStwbmk2d0lEQVFBQgpBb0dCQUpkWWpSUk1xaisxTEx3TWcyc3RGUWgrMzZmcnhqbm9iS0MrMHZIenRVSFl2b1NzWkFHNzhLR3QyTTZICndaT3dPZFNGenlRVlRqRzI0NmNyc3czNGl1cXJtd2Q1Qmhhb0hEbmhGN3pqZkMybUN5MjlkNGF4cGY0N1NZMGYKais5bHEzSzNrRDhkcVBQTzhGRnhjQlNmSGw3ejFWR2ppbmx1V1UwbHBUN1V4YlY1QWtFQTZkMElkYTJFMlo1LwpjYTZIQXdQVGpIOUFMYzhwQlI0bXg4Q2pUN1BWZk1ncUV5SGdTRGx3aGw4V3Z2OHFWVG0xRDdxUFhoS21FeTVhCnZWdDlnUE9PclFKQkFPVWxZdS85ZUNWODY0L2VacWhWYXlBT0JIUHNUQ3ZpZ04wNk83MDBHeldPVlVGR0pxUkoKY2dWRnNhVjBudytrU3FxaFdTRVJGS1JxM3RHYmFlK1JZdmNDUUUwSjRDQ0w0YWlpbXM4RE5EeWRCUkpTVlAwQwpNandhVzZJUDVueDUvRWpYMDJ4c0Myc2ZhTjhLOGY1SEpsWGU1Yk5odkpxN3YvT3ZvSHFpYWV5Unp4MENRUUM2CkM2TEtxNGRUR0p2QlVaY1Q4VlpxemphN1VBMkFUQVRJbWJGTEt2VTBoSDJmNDY4WUVER3RLaXJUNVY0SHV5S00KYXpnTWF1dlJtcHVTbjVaaFZpOTlBa0VBaWtIanNZZW5YVWNaSHpHZzVTZ3RGc29DdXV2eEdNenpNc2cyVWZIVgo5TnNXNXoxcytHNmM2bXhCMmxFaTRVcEswc0xJeTMyZG9NRVpKQkp2cGN5MVZ3PT0KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0K
|
||||
id_rsa.pub: c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFBZ1FEUlZOL2xWMThRWDJwZkJTS2FaMFVZQ1ZZNkwxUkQ5YTcvUERrZlZaSUV3U1ArM3MyM2pHU3NZanhxZXliT0lEZzI3dndkWkw5R1dEd2Nsb2lVbmhjWUpDSlJaalN4VUw5MmJJSGVhYitYSnJQUGRFNmVudktOamxITWdqanF1WFBYaStCamM0OC93UEZieEtWd1JyVjA5QVk5SkNtcFZlSGp1QUdRK3BuaTZ3PT0gaGFja2VybWFuCg==
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: visa-processor
|
||||
namespace: payments
|
||||
labels:
|
||||
app: visa-processor
|
||||
secrets:
|
||||
- name: rhacs-demo-pull-pull-secret
|
||||
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: visa-processor
|
||||
labels:
|
||||
app: visa-processor
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: cluster-admin
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: visa-processor
|
||||
namespace: payments
|
||||
|
||||
---
|
||||
# Deployment named "visa-processor"
|
||||
# Listens on :8080
|
||||
# Vulnerable to struts
|
||||
# Has SSH keys mounted
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: visa-processor
|
||||
namespace: payments
|
||||
labels:
|
||||
app: visa-processor
|
||||
demo: roadshow
|
||||
annotations:
|
||||
"admission.stackrox.io/break-glass": "jira-3423"
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: visa-processor
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: visa-processor
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: rhacs-demo-pull-pull-secret
|
||||
serviceAccountName: visa-processor
|
||||
volumes:
|
||||
- name: ssh-keys
|
||||
secret:
|
||||
secretName: ssh-keys
|
||||
containers:
|
||||
- image: quay.io/rhacs-demo/visa-processor:latest-v2
|
||||
imagePullPolicy: Always
|
||||
name: visa-processor
|
||||
ports:
|
||||
- containerPort: 22
|
||||
protocol: TCP
|
||||
- containerPort: 8080
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- name: ssh-keys
|
||||
mountPath: "/root/.ssh"
|
||||
readOnly: false
|
||||
securityContext:
|
||||
capabilities:
|
||||
add: ["SYS_ADMIN"]
|
||||
env:
|
||||
- name: I_HAVE_A_SECRET
|
||||
value: "true"
|
||||
- image: quay.io/rhacs-demo/visa-processor:sidecar-latest-v2
|
||||
imagePullPolicy: Always
|
||||
name: visa-processor-sidecar
|
||||
command: ["/bin/entrypoint"]
|
||||
securityContext:
|
||||
privileged: true
|
||||
|
||||
---
|
||||
# Service named "visa-processor-service"
|
||||
# Listens on :8080
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: visa-processor
|
||||
name: visa-processor-service
|
||||
namespace: payments
|
||||
spec:
|
||||
ports:
|
||||
- port: 8080
|
||||
protocol: TCP
|
||||
targetPort: 8080
|
||||
name: http
|
||||
selector:
|
||||
app: visa-processor
|
||||
type: ClusterIP
|
||||
|
||||
---
|
||||
# Deployment named "gateway"
|
||||
# Listens on :7777
|
||||
# Has SSH keys mounted
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: gateway
|
||||
namespace: payments
|
||||
labels:
|
||||
app: gateway
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: gateway
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: gateway
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: rhacs-demo-pull-pull-secret
|
||||
volumes:
|
||||
- name: ssh-keys
|
||||
secret:
|
||||
secretName: ssh-keys
|
||||
containers:
|
||||
- image: quay.io/rhacs-demo/netflow:latest
|
||||
command: ["/bin/entrypoint"]
|
||||
args: ["-listen", "7777", "-connect", "visa-processor-service.payments.svc.cluster.local:8080,mastercard-processor-service.payments.svc.cluster.local:8080"]
|
||||
imagePullPolicy: Always
|
||||
name: gateway
|
||||
ports:
|
||||
- containerPort: 7777
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- name: ssh-keys
|
||||
mountPath: "/root/.ssh"
|
||||
|
||||
---
|
||||
# Service named "gateway-service"
|
||||
# Listens on :7777
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: gateway
|
||||
name: gateway-service
|
||||
namespace: payments
|
||||
spec:
|
||||
ports:
|
||||
- port: 7777
|
||||
protocol: TCP
|
||||
targetPort: 7777
|
||||
name: http
|
||||
selector:
|
||||
app: gateway
|
||||
type: ClusterIP
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: mastercard-processor
|
||||
namespace: payments
|
||||
labels:
|
||||
app: mastercard-processor
|
||||
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: mastercard-processor
|
||||
namespace: payments
|
||||
labels:
|
||||
app: mastercard-processor
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: cluster-admin
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: mastercard-processor
|
||||
namespace: payments
|
||||
|
||||
---
|
||||
# Deployment named "mastercard-processor"
|
||||
# Listens on :8080
|
||||
# Vulnerable to struts
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: mastercard-processor
|
||||
namespace: payments
|
||||
labels:
|
||||
app: mastercard-processor
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: mastercard-processor
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: mastercard-processor
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: rhacs-demo-pull-pull-secret
|
||||
serviceAccountName: mastercard-processor
|
||||
containers:
|
||||
- image: quay.io/rhacs-demo/mastercard-processor:latest
|
||||
imagePullPolicy: Always
|
||||
name: mastercard-processor
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
protocol: TCP
|
||||
|
||||
---
|
||||
# Service named "mastercard-processor-service"
|
||||
# Listens on :8080
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: mastercard-processor
|
||||
name: mastercard-processor-service
|
||||
namespace: payments
|
||||
spec:
|
||||
ports:
|
||||
- port: 8080
|
||||
protocol: TCP
|
||||
targetPort: 8080
|
||||
name: http
|
||||
selector:
|
||||
app: mastercard-processor
|
||||
type: ClusterIP
|
||||
|
||||
#---
|
||||
#kind: NetworkPolicy
|
||||
#apiVersion: networking.k8s.io/v1
|
||||
#metadata:
|
||||
# name: backend-api-server-ingress-payments-gateway
|
||||
# namespace: payments
|
||||
#spec:
|
||||
# podSelector:
|
||||
# matchLabels:
|
||||
# app: gateway
|
||||
# ingress:
|
||||
# - from:
|
||||
# - namespaceSelector:
|
||||
# matchLabels:
|
||||
# name: backend
|
||||
# podSelector:
|
||||
# matchLabels:
|
||||
# app: api-server
|
||||
# - podSelector:
|
||||
# matchLabels:
|
||||
# app: visa-processor
|
||||
# - podSelector:
|
||||
# matchLabels:
|
||||
# app: mastercard-processor
|
||||
# - ports:
|
||||
# # Istio-proxy status port -- required for Istio to update routing
|
||||
# - port: 15020
|
||||
# from:
|
||||
# - namespaceSelector:
|
||||
# matchLabels:
|
||||
# istio-system: "true"
|
||||
# - ports:
|
||||
# # Istio-proxy port -- required for Istio to update routing
|
||||
# - port: 15090
|
||||
# from:
|
||||
# - namespaceSelector:
|
||||
# matchLabels:
|
||||
# istio-system: "true"
|
||||
# egress:
|
||||
# - to:
|
||||
# - namespaceSelector:
|
||||
# matchLabels:
|
||||
# name: backend
|
||||
# podSelector:
|
||||
# matchLabels:
|
||||
# app: api-server
|
||||
# - podSelector:
|
||||
# matchLabels:
|
||||
# app: visa-processor
|
||||
# - podSelector:
|
||||
# matchLabels:
|
||||
# app: mastercard-processor
|
||||
# - ports:
|
||||
# # Istio-pilot port -- required for istio-proxy registration
|
||||
# - port: 15010
|
||||
# to:
|
||||
# - namespaceSelector:
|
||||
# matchLabels:
|
||||
# istio-system: "true"
|
||||
# - ports:
|
||||
# - protocol: UDP
|
||||
# # kube-dns -- required for istio-proxy to find istio-pilot service
|
||||
# port: 53
|
||||
# to:
|
||||
# - namespaceSelector:
|
||||
# matchLabels:
|
||||
# kube-system: "true"
|
||||
#
|
||||
#---
|
||||
#kind: NetworkPolicy
|
||||
#apiVersion: networking.k8s.io/v1
|
||||
#metadata:
|
||||
# name: payments-gateway-ingress-payments-visa-processor
|
||||
# namespace: payments
|
||||
#spec:
|
||||
# podSelector:
|
||||
# matchLabels:
|
||||
# app: visa-processor
|
||||
# ingress:
|
||||
# - from:
|
||||
# - podSelector:
|
||||
# matchLabels:
|
||||
# app: gateway
|
||||
# - ports:
|
||||
# # Istio-proxy status port -- required for Istio to update routing
|
||||
# - port: 15020
|
||||
# from:
|
||||
# - namespaceSelector:
|
||||
# matchLabels:
|
||||
# istio-system: "true"
|
||||
# - ports:
|
||||
# # Istio-proxy port -- required for Istio to update routing
|
||||
# - port: 15090
|
||||
# from:
|
||||
# - namespaceSelector:
|
||||
# matchLabels:
|
||||
# istio-system: "true"
|
||||
# egress:
|
||||
# - to:
|
||||
# - podSelector:
|
||||
# matchLabels:
|
||||
# app: gateway
|
||||
# - ports:
|
||||
# # Istio-pilot port -- required for istio-proxy registration
|
||||
# - port: 15010
|
||||
# to:
|
||||
# - namespaceSelector:
|
||||
# matchLabels:
|
||||
# istio-system: "true"
|
||||
# - ports:
|
||||
# - protocol: UDP
|
||||
# # kube-dns -- required for istio-proxy to find istio-pilot service
|
||||
# port: 53
|
||||
# to:
|
||||
# - namespaceSelector:
|
||||
# matchLabels:
|
||||
# kube-system: "true"
|
||||
#
|
||||
#---
|
||||
#kind: NetworkPolicy
|
||||
#apiVersion: networking.k8s.io/v1
|
||||
#metadata:
|
||||
# name: payments-gateway-ingress-payments-mastercard-processor
|
||||
# namespace: payments
|
||||
#spec:
|
||||
# podSelector:
|
||||
# matchLabels:
|
||||
# app: mastercard-processor
|
||||
# ingress:
|
||||
# - from:
|
||||
# - podSelector:
|
||||
# matchLabels:
|
||||
# app: gateway
|
||||
# - ports:
|
||||
# # Istio-proxy status port -- required for Istio to update routing
|
||||
# - port: 15020
|
||||
# from:
|
||||
# - namespaceSelector:
|
||||
# matchLabels:
|
||||
# istio-system: "true"
|
||||
# - ports:
|
||||
# # Istio-proxy port -- required for Istio to update routing
|
||||
# - port: 15090
|
||||
# from:
|
||||
# - namespaceSelector:
|
||||
# matchLabels:
|
||||
# istio-system: "true"
|
||||
# egress:
|
||||
# - to:
|
||||
# - podSelector:
|
||||
# matchLabels:
|
||||
# app: gateway
|
||||
# - ports:
|
||||
# # Istio-pilot port -- required for istio-proxy registration
|
||||
# - port: 15010
|
||||
# to:
|
||||
# - namespaceSelector:
|
||||
# matchLabels:
|
||||
# istio-system: "true"
|
||||
# - ports:
|
||||
# - protocol: UDP
|
||||
# # kube-dns -- required for istio-proxy to find istio-pilot service
|
||||
# port: 53
|
||||
# to:
|
||||
# - namespaceSelector:
|
||||
# matchLabels:
|
||||
# kube-system: "true"
|
||||
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: payments-secrets
|
||||
namespace: payments
|
||||
rules:
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets"]
|
||||
verbs: ["*"]
|
||||
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: payments-secrets
|
||||
namespace: payments
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: payments-secrets
|
||||
subjects:
|
||||
- kind: User
|
||||
name: "joe@example.com"
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
||||
Reference in New Issue
Block a user