Kube-monkey interval (Chaos Testing) Kube-monkey interval (Chaos Testing) kubernetes kubernetes

Kube-monkey interval (Chaos Testing)


If you see the official helm chart values.yaml there is no interval key. since you have kept schedule_immediate_kill : TRUE default kill time will be 30S

https://github.com/asobti/kube-monkey/blob/master/helm/kubemonkey/values.yaml

you can change the interval time using schedule_delay

[debug]enabled = trueschedule_delay=30force_should_kill = trueschedule_immediate_kill = true

instead of interval use the schedule_delay.

however the interval is working with the Kubethanos : https://jaxenter.com/kubernetes-chaos-kubethanos-164798.htmlyou can pass key-value as a parameter.


The params file of golang will show us what all configurations we can alter have a look: https://raw.githubusercontent.com/asobti/kube-monkey/master/config/param/param.go

package paramconst (    // DryRun logs but does not terminate pods    // Type: bool    // Default: true    DryRun = "kubemonkey.dry_run"    // Timezone specifies the timezone to use when    // scheduling Pod terminations    // Type: string    // Default: America/Los_Angeles    Timezone = "kubemonkey.time_zone"    // RunHour specifies the hour of the weekday    // when the scheduler should run to schedule terminations    // Must be less than StartHour, and [0,23]    // Type: int    // Default: 8    RunHour = "kubemonkey.run_hour"    // StartHour specifies the hour beginning at    // which pod terminations may occur    // Should be set to a time when service owners are expected    // to be available    // Must be less than EndHour, and [0, 23]    // Type: int    // Default: 10    StartHour = "kubemonkey.start_hour"    // EndHour specifies the end hour beyond which no pod    // terminations will occur    // Should be set to a time when service owners are    // expected to be available    // Must be [0,23]    // Type: int    // Default: 16    EndHour = "kubemonkey.end_hour"    // GracePeriodSec specifies the amount of time in    // seconds a pod is given to shut down gracefully,    // before Kubernetes does a hard kill    // Type: int    // Default: 5    GracePeriodSec = "kubemonkey.graceperiod_sec"    // WhitelistedNamespaces specifies a list of    // namespaces where terminations are valid    // Default is defined by metav1.NamespaceDefault    // To allow all namespaces use [""]    // Type: list    // Default: [ "default" ]    WhitelistedNamespaces = "kubemonkey.whitelisted_namespaces"    // BlacklistedNamespaces specifies a list of namespaces    // for which terminations should never    // be carried out.    // Default is defined by metav1.NamespaceSystem    // To block no namespaces use [""]    // Type: list    // Default: [ "kube-system" ]    BlacklistedNamespaces = "kubemonkey.blacklisted_namespaces"    // ClusterAPIServerHost specifies the host URL for Kubernetes    // cluster APIServer. Use this config if the apiserver IP    // address provided by in-cluster config    // does not work for you because your certificate does not    // contain the right SAN    // Type: string    // Default: No default. If not specified, URL provided    // by in-cluster config is used    ClusterAPIServerHost = "kubernetes.host"    // DebugEnabled enables debug mode    // Type: bool    // Default: false    DebugEnabled = "debug.enabled"    // DebugScheduleDelay delays duration    // in sec after kube-monkey is launched    // after which scheduling is run    // Use when debugging to run scheduling sooner    // Type: int    // Default: 30    DebugScheduleDelay = "debug.schedule_delay"    // DebugForceShouldKill guarantees terminations    // to be scheduled for all eligible Deployments,    // i.e., probability of kill = 1    // Type: bool    // Default: false    DebugForceShouldKill = "debug.force_should_kill"    // DebugScheduleImmediateKill schedules pod terminations    // sometime in the next 60 sec to facilitate    // debugging (instead of the hours specified by    // StartHour and EndHour)    // Type: bool    // Default: false    DebugScheduleImmediateKill = "debug.schedule_immediate_kill"    // NotificationsEnabled enables reporting of attacks to an HTTP endpoint    // Type: bool    // Default: false    NotificationsEnabled = "notifications.enabled"    // NotificationsReportSchedule enables reporting of attack schedule to an HTTP endpoint    // Type: bool    // Default: false    NotificationsReportSchedule = "notifications.reportSchedule"    // NotificationsAttacks reports attacks to an HTTP endpoint    // Type: config.Receiver struct    // Default: Receiver{}    NotificationsAttacks = "notifications.attacks")