From 9fcd61774324e132c212ba9bcb39922f44f99fe9 Mon Sep 17 00:00:00 2001 From: Chris Doherty Date: Mon, 13 Mar 2023 20:50:42 -0500 Subject: [PATCH 1/7] Add Tink Worker failure reason communication channel Signed-off-by: Chris Doherty --- design/20230313_tink_worker_failure_reason.md | 28 ++++++++++++++++++ .../reason_propagation.png | Bin 0 -> 25938 bytes .../tink_worker_failure_reasons/sequence.puml | 24 +++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 design/20230313_tink_worker_failure_reason.md create mode 100644 design/images/tink_worker_failure_reasons/reason_propagation.png create mode 100644 design/images/tink_worker_failure_reasons/sequence.puml diff --git a/design/20230313_tink_worker_failure_reason.md b/design/20230313_tink_worker_failure_reason.md new file mode 100644 index 0000000..ec484b1 --- /dev/null +++ b/design/20230313_tink_worker_failure_reason.md @@ -0,0 +1,28 @@ +# Tink Worker Failure Reasons + +## Context + +Tink Worker is the client launched by an Operating System Installation Environment (OSIE) that communicates with Tink Server to retrieve actions to run on the node. Actions are OCI images that Tink Worker can launch using a container runtime such as Docker. In the event an action fails, Tinkerbell does not provide mechanisms for the user defined action to communicate why it failed. This makes debugging `Workflow`s difficult as users leveraging `kubectl` cannot observe a specific failure reason and must resort to running commands directly on the node. + +As part of the Tink CRD Refactor proposal we introduced `Reason` and `Message` fields to indiciate why an action entered a failure state. The proposal does not detail how these fields are populated but envisages at minimum the `Reason` being used to communicate timeout failures. + +* A `Reason` is a machine readable CamelCase word or phrase that succinctly describes the failure reason. +* A `Message` is a human readable string that elaborates on the failure reason to provide specifics. + +This proposal lays out a contract for action containers to communicate why it exited with a non-zero exit code. + +## Goals/Non-goals + +**Goals** + +- Define a contract for action images to communicate failure information that is exposed via associated custom resource definitions and is therefore inspectable with `kubectl`. + +## Proposal + +Actions can communicate a failure reason by writing to `/dev/reason`. + +Actions can communicate a failure message by writing to `/dev/message`. + +When an action exits with a non-zero exit code, Tink Worker will arrange to read the reason and message provided by the action image and transmit them, with the action result, to Tink Server. Tink Server will update the action state, reason and message. Providing the reason and message on the action status will ensure the controller populates the `Succeeded` condition as detailed in the Tink CRD Refactor proposal. + +![Reason propagation]() \ No newline at end of file diff --git a/design/images/tink_worker_failure_reasons/reason_propagation.png b/design/images/tink_worker_failure_reasons/reason_propagation.png new file mode 100644 index 0000000000000000000000000000000000000000..06cabb2fb1e7a84d9e5e70250f02f6b958d08105 GIT binary patch literal 25938 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 literal 0 HcmV?d00001 diff --git a/design/images/tink_worker_failure_reasons/sequence.puml b/design/images/tink_worker_failure_reasons/sequence.puml new file mode 100644 index 0000000..6e66566 --- /dev/null +++ b/design/images/tink_worker_failure_reasons/sequence.puml @@ -0,0 +1,24 @@ +@startuml reason_propagation + +participant Action as action +participant "Tink Worker" as worker +participant "Tink Server" as server +entity "Workflow" as workflow + + +worker -> server ++ : Request actions +activate worker +server -> workflow : Get actions +server <-- workflow +worker <-- server -- : Actions +loop for every action +worker -> action ++ : Execute +action -> action : Write to /dev/reason\nWrite to /dev/message +worker <- action -- : Exit non-zero +worker -> action : Extract reason and message +worker <-- action -- +worker -> server -- : Report status, reason\nand message +server -> workflow : Update action +end + +@enduml \ No newline at end of file From 95948d410e356ba2a76653b94b0a82f3f61004aa Mon Sep 17 00:00:00 2001 From: Chris Doherty Date: Mon, 13 Mar 2023 21:21:47 -0500 Subject: [PATCH 2/7] Add image Signed-off-by: Chris Doherty --- design/20230313_tink_worker_failure_reason.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/design/20230313_tink_worker_failure_reason.md b/design/20230313_tink_worker_failure_reason.md index ec484b1..adbc15a 100644 --- a/design/20230313_tink_worker_failure_reason.md +++ b/design/20230313_tink_worker_failure_reason.md @@ -25,4 +25,4 @@ Actions can communicate a failure message by writing to `/dev/message`. When an action exits with a non-zero exit code, Tink Worker will arrange to read the reason and message provided by the action image and transmit them, with the action result, to Tink Server. Tink Server will update the action state, reason and message. Providing the reason and message on the action status will ensure the controller populates the `Succeeded` condition as detailed in the Tink CRD Refactor proposal. -![Reason propagation]() \ No newline at end of file +![Reason propagation](https://raw.githubusercontent.com/tinkerbell/roadmap/7e4e769305edf5c5679a406ebf0564eb754fe57a/design/images/tink_worker_failure_reasons/reason_propagation.png) \ No newline at end of file From 6f679be657ddd542fbb41614d1b6de28a740f397 Mon Sep 17 00:00:00 2001 From: Chris Doherty Date: Tue, 14 Mar 2023 07:54:11 -0500 Subject: [PATCH 3/7] Clarify permissions and backend for files Signed-off-by: Chris Doherty --- design/20230313_tink_worker_failure_reason.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/design/20230313_tink_worker_failure_reason.md b/design/20230313_tink_worker_failure_reason.md index adbc15a..fa61d62 100644 --- a/design/20230313_tink_worker_failure_reason.md +++ b/design/20230313_tink_worker_failure_reason.md @@ -25,4 +25,8 @@ Actions can communicate a failure message by writing to `/dev/message`. When an action exits with a non-zero exit code, Tink Worker will arrange to read the reason and message provided by the action image and transmit them, with the action result, to Tink Server. Tink Server will update the action state, reason and message. Providing the reason and message on the action status will ensure the controller populates the `Succeeded` condition as detailed in the Tink CRD Refactor proposal. -![Reason propagation](https://raw.githubusercontent.com/tinkerbell/roadmap/7e4e769305edf5c5679a406ebf0564eb754fe57a/design/images/tink_worker_failure_reasons/reason_propagation.png) \ No newline at end of file +![Reason propagation](https://raw.githubusercontent.com/tinkerbell/roadmap/7e4e769305edf5c5679a406ebf0564eb754fe57a/design/images/tink_worker_failure_reasons/reason_propagation.png) + +The files will be mounted with `0666` permissions granting read write access to everyone. This ensures images launched with a different UID will still be able to write a reason and message. + +The implementation behind the reason and message files will be transparent to the action maintainer. For example, the file may be backed by unix domain sockets or a host text file. \ No newline at end of file From c18e1bf903acb04916ebd878d591133a33973858 Mon Sep 17 00:00:00 2001 From: Chris Doherty Date: Tue, 14 Mar 2023 08:01:13 -0500 Subject: [PATCH 4/7] Clarify expectations of reasons Signed-off-by: Chris Doherty --- design/20230313_tink_worker_failure_reason.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/design/20230313_tink_worker_failure_reason.md b/design/20230313_tink_worker_failure_reason.md index fa61d62..0b92e85 100644 --- a/design/20230313_tink_worker_failure_reason.md +++ b/design/20230313_tink_worker_failure_reason.md @@ -19,7 +19,7 @@ This proposal lays out a contract for action containers to communicate why it ex ## Proposal -Actions can communicate a failure reason by writing to `/dev/reason`. +Actions can communicate a failure reason by writing to `/dev/reason`. The reason must follow the formatting expectations defined by the Tink API (it must be a CamelCase word or phrase). If the reason does not follow the convention we will report `InvalidActionReason` in-place of the reported reason. Actions can communicate a failure message by writing to `/dev/message`. From f9ba09ef51b82c74e14bf64910442b529eca8c71 Mon Sep 17 00:00:00 2001 From: Chris Doherty Date: Tue, 14 Mar 2023 08:02:07 -0500 Subject: [PATCH 5/7] Clarify what files have specific permissions Signed-off-by: Chris Doherty --- design/20230313_tink_worker_failure_reason.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/design/20230313_tink_worker_failure_reason.md b/design/20230313_tink_worker_failure_reason.md index 0b92e85..b4b27f3 100644 --- a/design/20230313_tink_worker_failure_reason.md +++ b/design/20230313_tink_worker_failure_reason.md @@ -27,6 +27,6 @@ When an action exits with a non-zero exit code, Tink Worker will arrange to read ![Reason propagation](https://raw.githubusercontent.com/tinkerbell/roadmap/7e4e769305edf5c5679a406ebf0564eb754fe57a/design/images/tink_worker_failure_reasons/reason_propagation.png) -The files will be mounted with `0666` permissions granting read write access to everyone. This ensures images launched with a different UID will still be able to write a reason and message. +The reason and message files will be mounted with `0666` permissions granting read write access to everyone. This ensures images launched with a different UID will still be able to write a reason and message. The implementation behind the reason and message files will be transparent to the action maintainer. For example, the file may be backed by unix domain sockets or a host text file. \ No newline at end of file From 8ae916c761b94ac22f713a5ae64439c264263b55 Mon Sep 17 00:00:00 2001 From: Chris Doherty Date: Tue, 14 Mar 2023 09:34:52 -0500 Subject: [PATCH 6/7] Update names Signed-off-by: Chris Doherty --- ...20230313_action_failure_reason_communication.md} | 2 +- .../reason_propagation.png | Bin .../sequence.puml | 0 3 files changed, 1 insertion(+), 1 deletion(-) rename design/{20230313_tink_worker_failure_reason.md => 20230313_action_failure_reason_communication.md} (98%) rename design/images/{tink_worker_failure_reasons => action_failure_reason_communication}/reason_propagation.png (100%) rename design/images/{tink_worker_failure_reasons => action_failure_reason_communication}/sequence.puml (100%) diff --git a/design/20230313_tink_worker_failure_reason.md b/design/20230313_action_failure_reason_communication.md similarity index 98% rename from design/20230313_tink_worker_failure_reason.md rename to design/20230313_action_failure_reason_communication.md index b4b27f3..5dbf058 100644 --- a/design/20230313_tink_worker_failure_reason.md +++ b/design/20230313_action_failure_reason_communication.md @@ -1,4 +1,4 @@ -# Tink Worker Failure Reasons +# Action Failure Reason Communication ## Context diff --git a/design/images/tink_worker_failure_reasons/reason_propagation.png b/design/images/action_failure_reason_communication/reason_propagation.png similarity index 100% rename from design/images/tink_worker_failure_reasons/reason_propagation.png rename to design/images/action_failure_reason_communication/reason_propagation.png diff --git a/design/images/tink_worker_failure_reasons/sequence.puml b/design/images/action_failure_reason_communication/sequence.puml similarity index 100% rename from design/images/tink_worker_failure_reasons/sequence.puml rename to design/images/action_failure_reason_communication/sequence.puml From 605fe614c560c17334cdc1e8033ded0521107b2b Mon Sep 17 00:00:00 2001 From: Chris Doherty Date: Tue, 14 Mar 2023 18:58:08 -0500 Subject: [PATCH 7/7] Add expectations elaboration on reason and message Signed-off-by: Chris Doherty --- design/20230313_action_failure_reason_communication.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/design/20230313_action_failure_reason_communication.md b/design/20230313_action_failure_reason_communication.md index 5dbf058..6c76ba5 100644 --- a/design/20230313_action_failure_reason_communication.md +++ b/design/20230313_action_failure_reason_communication.md @@ -19,9 +19,9 @@ This proposal lays out a contract for action containers to communicate why it ex ## Proposal -Actions can communicate a failure reason by writing to `/dev/reason`. The reason must follow the formatting expectations defined by the Tink API (it must be a CamelCase word or phrase). If the reason does not follow the convention we will report `InvalidActionReason` in-place of the reported reason. +Actions communicate a `Reason` by writing it to `/tinkerbell/failure-reason`. The reason must follow the same formatting expectations as defined in the CRD refactor proposal: most importantly, it must not contain spaces or new lines. If the reason does not follow the convention we will report `InvalidActionReason` in-place of the reported reason. -Actions can communicate a failure message by writing to `/dev/message`. +Actions communicate a failure message by writing to `/tinkerbell/failure-message`. It must not contain new lines. When an action exits with a non-zero exit code, Tink Worker will arrange to read the reason and message provided by the action image and transmit them, with the action result, to Tink Server. Tink Server will update the action state, reason and message. Providing the reason and message on the action status will ensure the controller populates the `Succeeded` condition as detailed in the Tink CRD Refactor proposal.