From 5164fbc3e4a0cdeeef8b5cba32ff0ce2739d1d1c Mon Sep 17 00:00:00 2001 From: antoniaklja Date: Sat, 5 Jan 2019 20:35:52 +0100 Subject: [PATCH] Update how-it-works.md --- doc/how-it-works.md | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/doc/how-it-works.md b/doc/how-it-works.md index 3598d61a..d8738374 100644 --- a/doc/how-it-works.md +++ b/doc/how-it-works.md @@ -24,7 +24,19 @@ User reconciliation loop takes care of reconciling user provided configuration, ![reconcile](../phases.png) -## Operator Status +## Operator State -Operator status is used for storing any configuration events or job statuses managed by the operator. -It helps to maintain or recover desired state even after operator or Jenkins restarts. \ No newline at end of file +Operator state is kept in custom resource status section, which is used for storing any configuration events or job statuses managed by the operator. +It helps to maintain or recover desired state even after operator or Jenkins restarts. + +## System Jenkins Jobs + +The operator or Jenkins instance can be restarted at any time and any operation should not block the reconciliation loop so we implemented +custom jobs API for executing and verifying status of them according to operator lifecycle. + +Main assumptions are: +- do not block reconciliation loop +- fire job, requeue reconciliation loop and verify status next time +- handle retries if case of failure +- handle build expiration (deadline) +- keep state in the custom resource status \ No newline at end of file