diff --git a/.gitignore b/.gitignore index fa371caf..14083467 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,8 @@ kube_burner* .pydevproject .settings .idea +.vscode +config/debug.yaml tags # Package files @@ -61,3 +63,7 @@ CI/out/* CI/ci_results CI/scenarios/*node.yaml CI/results.markdown + +#env +chaos/* + diff --git a/containers/README.md b/containers/README.md index 0887f0b4..f99d7105 100644 --- a/containers/README.md +++ b/containers/README.md @@ -1,30 +1,53 @@ + ### Kraken image + + Container image gets automatically built by quay.io at [Kraken image](https://quay.io/chaos-kubox/krkn). + + ### Run containerized version + Refer [instructions](https://github.com/redhat-chaos/krkn/blob/main/docs/installation.md#run-containerized-version) for information on how to run the containerized version of kraken. + + ### Run Custom Kraken Image + Refer to [instructions](https://github.com/redhat-chaos/krkn/blob/main/containers/build_own_image-README.md) for information on how to run a custom containerized version of kraken using podman. + + ### Kraken as a KubeApp +#### GENERAL NOTES: + +- It is not generally recommended to run Kraken internal to the cluster as the pod which is running Kraken might get disrupted, the suggested use case to run kraken from inside k8s/OpenShift is to target **another** cluster (eg. to bypass network restrictions or to leverage cluster's computational resources) + +- your kubeconfig might contain several cluster contexts and credentials so be sure, before creating the ConfigMap, to keep **only** the credentials related to the destination cluster. Please refer to the [Kubernetes documentation](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/) for more details +- to add privileges to the service account you must be logged in the cluster with an highly privileged account (ideally kubeadmin) + + + To run containerized Kraken as a Kubernetes/OpenShift Deployment, follow these steps: + 1. Configure the [config.yaml](https://github.com/redhat-chaos/krkn/blob/main/config/config.yaml) file according to your requirements. + +**NOTE**: both the scenarios ConfigMaps are needed regardless you're running kraken in Kubernetes or OpenShift + 2. Create a namespace under which you want to run the kraken pod using `kubectl create ns `. 3. Switch to `` namespace: - - In Kubernetes, use `kubectl config set-context --current --namespace=` - - In OpenShift, use `oc project ` -4. Create a ConfigMap named kube-config using `kubectl create configmap kube-config --from-file=` -5. Create a ConfigMap named kraken-config using `kubectl create configmap kraken-config --from-file=` -6. Create a ConfigMap named scenarios-config using `kubectl create configmap scenarios-config --from-file=` -7. Create a ConfigMap named scenarios-openshift-config using `kubectl create configmap scenarios-openshift-config --from-file=` -8. Create a ConfigMap named scenarios-kube-config using `kubectl create configmap scenarios-kube-config --from-file=` +- In Kubernetes, use `kubectl config set-context --current --namespace=` +- In OpenShift, use `oc project ` + +4. Create a ConfigMap named kube-config using `kubectl create configmap kube-config --from-file=` *(eg. ~/.kube/config)* +5. Create a ConfigMap named kraken-config using `kubectl create configmap kraken-config --from-file=/config` +6. Create a ConfigMap named scenarios-config using `kubectl create configmap scenarios-config --from-file=/scenarios` +7. Create a ConfigMap named scenarios-openshift-config using `kubectl create configmap scenarios-openshift-config --from-file=/scenarios/openshift` +8. Create a ConfigMap named scenarios-kube-config using `kubectl create configmap scenarios-kube-config --from-file=/scenarios/kube` 9. Create a service account to run the kraken pod `kubectl create serviceaccount useroot`. -10. In Openshift, add privileges to service account and execute `oc adm policy add-scc-to-user privileged -z useroot`. -11. Create a Job using `kubectl apply -f kraken.yml` and monitor the status using `oc get jobs` and `oc get pods`. - -NOTE: It is not recommended to run Kraken internal to the cluster as the pod which is running Kraken might get disrupted. +10. In Openshift, add privileges to service account and execute `oc adm policy add-scc-to-user privileged -z useroot`. +11. Create a Job using `kubectl apply -f /containers/kraken.yml` and monitor the status using `oc get jobs` and `oc get pods`. \ No newline at end of file