forked from airbytehq/airbyte
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
async container launch kubernetes "process" (airbytehq#9242)
* add misc todos * save work so far * configure async pod processing * remove comment * fmt * working except logging propagation? * add comment * add logging and misc configuration fixes * add output propagation * fix state reading * logging is working (but background highlighting is not) * fix log highlighting * use sys instead of ctx * comment * clean up and test state management * clean up orchestrator app construction * unify launcher workers and handle resuming * respond to comments * misc * disable * fix comment * respond to comments
- Loading branch information
Showing
48 changed files
with
1,496 additions
and
680 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
40 changes: 40 additions & 0 deletions
40
...ainer-orchestrator/src/main/java/io/airbyte/container_orchestrator/AsyncStateManager.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
/* | ||
* Copyright (c) 2021 Airbyte, Inc., all rights reserved. | ||
*/ | ||
|
||
package io.airbyte.container_orchestrator; | ||
|
||
import io.airbyte.workers.process.AsyncKubePodStatus; | ||
import io.airbyte.workers.process.KubePodInfo; | ||
|
||
/** | ||
* The state manager writes the "truth" for states of the async pod process. If the store isn't | ||
* updated by the underlying pod, it will appear as failed. | ||
* | ||
* It doesn't have a single value for a state. Instead, in a location on cloud storage or disk, it | ||
* writes every state it's encountered. | ||
*/ | ||
public interface AsyncStateManager { | ||
|
||
/** | ||
* Writes a file containing a string value to a location designated by the input status. | ||
*/ | ||
void write(final KubePodInfo kubePodInfo, final AsyncKubePodStatus status, final String value); | ||
|
||
/** | ||
* Writes an empty file to a location designated by the input status. | ||
*/ | ||
void write(final KubePodInfo kubePodInfo, final AsyncKubePodStatus status); | ||
|
||
/** | ||
* Interprets the state given all written state messages for the pod. | ||
*/ | ||
AsyncKubePodStatus getStatus(final KubePodInfo kubePodInfo); | ||
|
||
/** | ||
* @return the output stored in the success file. This can be an empty string. | ||
* @throws IllegalArgumentException if no success file exists | ||
*/ | ||
String getOutput(final KubePodInfo kubePodInfo) throws IllegalArgumentException; | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.