Files
kubeinvaders/openshift/KubeInvaders.yaml
Eugenio Marzo 3e0a63eb2f fix
2021-02-11 21:13:19 +01:00

109 lines
2.7 KiB
YAML

---
kind: Template
apiVersion: v1
metadata:
name: kubeinvaders
annotations:
"openshift.io/display-name": Kubeinvaders
description: Chaos Engineering Tool for Kubernetes and Openshift like SpaceInvaders but alien ships are pods
iconClass: fa fa-cogs
tags: "spaceinvaders"
parameters:
- description: Redis Service
name: REDIS_HOST
- description: IP addresses that can contact Kubernetes
name: IP_WHITELIST
- description: URL of KubeInvaders
name: ROUTE_HOST
value: kubeinvaders.local
- description: The location of the kubeinvaders image
name: IMAGE_KUBEINVADERS
value: docker.io/luckysideburn/kubeinvaders:latest
- description: The namespace to instantiate Kubeinvaders under.
name: NAMESPACE
value: kubeinvaders
- description: A namespaces to stress with KubeInvaders.
name: TARGET_NAMESPACE
- description: Secret of the serviceAccount that can kill PODs in specific namespace.
name: KUBEINVADERS_SECRET
objects:
- apiVersion: v1
kind: ServiceAccount
metadata:
name: kubeinvaders
namespace: ${NAMESPACE}
- apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: kubeinvaders
namespace: "${NAMESPACE}"
annotations:
haproxy.router.openshift.io/ip_whitelist: ${IP_WHITELIST}
spec:
host: "${ROUTE_HOST}"
to:
name: kubeinvaders
tls:
termination: Edge
- apiVersion: v1
kind: Service
metadata:
name: kubeinvaders
namespace: "${NAMESPACE}"
labels:
name: kubeinvaders
spec:
ports:
- name: kubeinvaders
port: 8080
protocol: TCP
targetPort: 8080
selector:
name: kubeinvaders
- apiVersion: v1
kind: DeploymentConfig
metadata:
name: kubeinvaders
namespace: "${NAMESPACE}"
spec:
replicas: 1
selector:
name: kubeinvaders
strategy:
type: Recreate
template:
metadata:
labels:
name: kubeinvaders
spec:
serviceAccountName: kubeinvaders
containers:
- env:
- name: REDIS_HOST
value: "${REDIS_HOST}"
- name: ROUTE_HOST
value: "${ROUTE_HOST}"
- name: ROUTE_HOST
value: "${ENDPOINT}"
- name: NAMESPACE
value: "${TARGET_NAMESPACE}"
- name: UPDATETIME
value: "0.5"
- name: ALIENPROXIMITY
value: "15"
- name: HITSLIMIT
value: "0"
- name: TOKEN
valueFrom:
secretKeyRef:
name: "${KUBEINVADERS_SECRET}"
key: token
name: kubeinvaders
image: ${IMAGE_KUBEINVADERS}
imagePullPolicy: Always
ports:
- containerPort: 8080
protocol: TCP
triggers:
- type: ConfigChange