apiVersion: v1 kind: Namespace metadata: name: litmus --- apiVersion: v1 kind: ServiceAccount metadata: name: litmus namespace: litmus labels: app.kubernetes.io/name: litmus # provide unique instance-id if applicable # app.kubernetes.io/instance: litmus-abcxzy app.kubernetes.io/version: v1.9.1 app.kubernetes.io/component: operator-serviceaccount app.kubernetes.io/part-of: litmus app.kubernetes.io/managed-by: kubectl name: litmus --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: litmus labels: app.kubernetes.io/name: litmus # provide unique instance-id if applicable # app.kubernetes.io/instance: litmus-abcxzy app.kubernetes.io/version: v1.9.1 app.kubernetes.io/component: operator-clusterrole app.kubernetes.io/part-of: litmus app.kubernetes.io/managed-by: kubectl name: litmus rules: - apiGroups: ["","apps","batch","apps.openshift.io"] resources: ["jobs","deployments","replicationcontrollers","daemonsets","replicasets","statefulsets","deploymentconfigs","secrets"] verbs: ["get","list","watch","deletecollection"] - apiGroups: ["","litmuschaos.io"] resources: ["pods","configmaps","events","services","chaosengines","chaosexperiments","chaosresults"] verbs: ["get","create","update","patch","delete","list","watch","deletecollection"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: litmus labels: app.kubernetes.io/name: litmus # provide unique instance-id if applicable # app.kubernetes.io/instance: litmus-abcxzy app.kubernetes.io/version: v1.9.1 app.kubernetes.io/component: operator-clusterrolebinding app.kubernetes.io/part-of: litmus app.kubernetes.io/managed-by: kubectl name: litmus roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: litmus subjects: - kind: ServiceAccount name: litmus namespace: litmus --- apiVersion: apps/v1 kind: Deployment metadata: labels: app.kubernetes.io/name: litmus # provide unique instance-id if applicable # app.kubernetes.io/instance: litmus-abcxzy app.kubernetes.io/version: v1.9.1 app.kubernetes.io/component: operator app.kubernetes.io/part-of: litmus app.kubernetes.io/managed-by: kubectl name: litmus name: chaos-operator-ce namespace: litmus spec: replicas: 1 selector: matchLabels: name: chaos-operator template: metadata: labels: app.kubernetes.io/name: litmus # provide unique instance-id if applicable # app.kubernetes.io/instance: litmus-abcxzy app.kubernetes.io/version: v1.9.1 app.kubernetes.io/component: operator app.kubernetes.io/part-of: litmus app.kubernetes.io/managed-by: kubectl name: chaos-operator spec: serviceAccountName: litmus containers: - name: chaos-operator image: litmuschaos/chaos-operator:1.9.1 command: - chaos-operator imagePullPolicy: Always env: - name: CHAOS_RUNNER_IMAGE value: "litmuschaos/chaos-runner:1.9.1" - name: WATCH_NAMESPACE value: "" - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: OPERATOR_NAME value: "chaos-operator" --- apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: name: chaosengines.litmuschaos.io spec: group: litmuschaos.io names: kind: ChaosEngine listKind: ChaosEngineList plural: chaosengines singular: chaosengine scope: Namespaced 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/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/api-conventions.md#types-kinds' type: string metadata: type: object spec: type: object properties: monitoring: type: boolean jobCleanUpPolicy: type: string pattern: ^(delete|retain)$ # alternate ways to do this in case of complex pattern matches #oneOf: # - pattern: '^delete$' # - pattern: '^retain$' annotationCheck: type: string pattern: ^(true|false)$ appinfo: type: object properties: appkind: type: string pattern: ^(^$|deployment|statefulset|daemonset|deploymentconfig|rollout)$ applabel: type: string pattern: (([a-z0-9A-Z_\.-/]+)=([a-z0-9A-Z_\.-/_]+)|^$) appns: type: string auxiliaryAppInfo: type: string engineState: type: string pattern: ^(active|stop|initialized|stopped)$ chaosServiceAccount: type: string components: type: object properties: runner: type: object properties: image: type: string type: type: string pattern: ^(go)$ runnerannotation: type: object additionalProperties: type: string properties: key: type: string minLength: 1 allowEmptyValue: false value: type: string minLength: 1 allowEmptyValue: false experiments: type: array items: type: object properties: name: type: string spec: type: object properties: probe: type: array items: type: object properties: name: type: string type: type: string k8sProbe/inputs: type: object properties: command: type: object properties: group: type: string version: type: string resource: type: string namespace: type: string fieldSelector: type: string labelSelector: type: string expectedResult: type: string cmdProbe/inputs: type: object properties: command: type: string expectedResult: type: string source: type: string httpProbe/inputs: type: object properties: url: type: string expectedResponseCode: type: string runProperties: type: object properties: probeTimeout: type: integer interval: type: integer retry: type: integer mode: type: string components: type: object properties: statusCheckTimeouts: type: object properties: delay: type: integer timeout: type: integer nodeSelector: type: object minLength: 1 experimentImage: type: string env: type: array items: type: object properties: name: type: string value: type: string configMaps: type: array items: type: object properties: name: type: string mountPath: type: string secrets: type: array items: type: object properties: name: type: string mountPath: type: string experimentannotation: type: object additionalProperties: type: string properties: key: type: string minLength: 1 allowEmptyValue: false value: type: string minLength: 1 allowEmptyValue: false status: type: object version: v1alpha1 versions: - name: v1alpha1 served: true storage: true --- apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: name: chaosexperiments.litmuschaos.io spec: group: litmuschaos.io names: kind: ChaosExperiment listKind: ChaosExperimentList plural: chaosexperiments singular: chaosexperiment scope: Namespaced 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/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/api-conventions.md#types-kinds' type: string metadata: type: object spec: type: object properties: definition: type: object properties: args: type: array items: type: string command: type: array items: type: string env: type: array items: type: object properties: name: type: string value: type: string image: type: string labels: type: object properties: name: type: string scope: type: string pattern: ^(Namespaced|Cluster)$ permissions: type: array items: type: object minProperties: 3 required: - apiGroups - resources - verbs properties: apiGroups: type: array items: type: string resources: type: array items: type: string verbs: type: array items: type: string resourceNames: type: array items: type: string nonResourceURLs: type: array items: type: string configmaps: type: array items: type: object minProperties: 2 properties: name: type: string allowEmptyValue: false minLength: 1 mountPath: type: string allowEmptyValue: false minLength: 1 secrets: type: array items: type: object minProperties: 2 properties: name: type: string allowEmptyValue: false minLength: 1 mountPath: type: string allowEmptyValue: false minLength: 1 hostFileVolumes: type: array items: type: object minProperties: 3 properties: name: type: string allowEmptyValue: false minLength: 1 mountPath: type: string allowEmptyValue: false minLength: 1 nodePath: type: string allowEmptyValue: false minLength: 1 securityContext: type: object hostPID: type: boolean status: type: object version: v1alpha1 versions: - name: v1alpha1 served: true storage: true --- apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: name: chaosresults.litmuschaos.io spec: group: litmuschaos.io names: kind: ChaosResult listKind: ChaosResultList plural: chaosresults singular: chaosresult scope: Namespaced 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/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/api-conventions.md#types-kinds' type: string metadata: type: object spec: type: object status: type: object version: v1alpha1 versions: - name: v1alpha1 served: true storage: true