Skip to content

Commit

Permalink
added start conditions for operables
Browse files Browse the repository at this point in the history
  • Loading branch information
Pacman99 committed Feb 8, 2023
1 parent 0f93e2b commit e53a904
Show file tree
Hide file tree
Showing 4 changed files with 6,264 additions and 6,262 deletions.
6 changes: 0 additions & 6 deletions deploy/nomadTasks.nix
Expand Up @@ -91,12 +91,6 @@ rec {
};
};
marlowe-history = {
restart = {
attempts = 5;
delay = "30s";
interval = "5m";
mode = "delay";
};
env = {
HOST = "0.0.0.0";
PORT = "\${NOMAD_PORT_history}";
Expand Down
42 changes: 24 additions & 18 deletions deploy/oci-images.nix
Expand Up @@ -5,33 +5,39 @@ let
inherit (self) operables;
inherit (self.sourceInfo) lastModifiedDate;

mkImage = name: std.lib.ops.mkStandardOCI {
mkImage = name: args: std.lib.ops.mkStandardOCI ({
name = "registry.ci.iog.io/dapps-world-${name}";
operable = operables.${name};
debug = true;
};
} // args);

mkPublicImage = name:
mkPublicImage = name: args:
let
tagName = removePrefix "marlowe-" name;
tagDate = builtins.substring 0 8 lastModifiedDate; # pull out just date
in
std.lib.ops.mkStandardOCI {
name = "iohkbuild/marlowe";
tag = "${tagName}-${tagDate}";
operable = operables.${name};
};
std.lib.ops.mkStandardOCI ({
name = "iohkbuild/marlowe";
tag = "${tagName}-${tagDate}";
operable = operables.${name};
}) // args;

rootConfig = {
uid = "0";
gid = "0";
};
in
{
chain-indexer = mkImage "chain-indexer";
chainseekd = mkImage "chainseekd";
marlowe-history = mkImage "marlowe-history";
marlowe-discovery = mkImage "marlowe-discovery";
marlowe-tx = mkImage "marlowe-tx";
# ensure chain-indexer and chainseekd have access to node socket
chain-indexer = mkImage "chain-indexer" rootConfig;
chainseekd = mkImage "chainseekd" rootConfig;
marlowe-history = mkImage "marlowe-history" {};
marlowe-discovery = mkImage "marlowe-discovery" {};
marlowe-tx = mkImage "marlowe-tx" {};

chain-indexer-public = mkPublicImage "chain-indexer";
chainseekd-public = mkPublicImage "chainseekd";
marlowe-history-public = mkPublicImage "marlowe-history";
marlowe-discovery-public = mkPublicImage "marlowe-discovery";
marlowe-tx-public = mkPublicImage "marlowe-tx";
chain-indexer-public = mkPublicImage "chain-indexer" rootConfig;
chainseekd-public = mkPublicImage "chainseekd" rootConfig;
marlowe-history-public = mkPublicImage "marlowe-history" {};
marlowe-discovery-public = mkPublicImage "marlowe-discovery" {};
marlowe-tx-public = mkPublicImage "marlowe-tx" {};
}
66 changes: 65 additions & 1 deletion deploy/operables.nix
Expand Up @@ -3,7 +3,15 @@ let
inherit (inputs) self std nixpkgs nixpkgs-unstable bitte-cells;
inherit (self) packages;
inherit (nixpkgs) lib;
inherit (nixpkgs.legacyPackages) jq sqitchPg postgresql coreutils;
inherit (nixpkgs.legacyPackages)
jq
sqitchPg
postgresql
coreutils
writeShellScriptBin
socat
netcat
;
inherit (nixpkgs-unstable.legacyPackages) norouter;
inherit (inputs.bitte-cells._utils.packages) srvaddr;

Expand All @@ -20,6 +28,51 @@ let

database-uri = "postgresql://$DB_USER:$DB_PASS@$DB_HOST/$DB_NAME";

wait-for-socket = writeShellScriptBin "wait-for-socket" ''
set -eEuo pipefail
export PATH="${lib.makeBinPath [ coreutils socat ]}"
sock_path="$1"
delay_iterations="''${2:-8}"
for ((i=0;i<delay_iterations;i++))
do
if socat -u OPEN:/dev/null "UNIX-CONNECT:''${sock_path}"
then
exit 0
fi
let delay=2**i
echo "Connecting to ''${sock_path} failed, sleeping for ''${delay} seconds" >&2
sleep "''${delay}"
done
socat -u OPEN:/dev/null "UNIX-CONNECT:''${sock_path}"
'';

wait-for-tcp = writeShellScriptBin "wait-for-tcp" ''
set -eEuo pipefail
export PATH="${lib.makeBinPath [ coreutils netcat ]}"
ip="$1"
port="$2"
delay_iterations="''${3:-8}"
for ((i=0;i<delay_iterations;i++))
do
if nc -v -w 2 -z "$ip" "$port"
then
exit 0
fi
let delay=2**i
echo "Connecting to ''${ip}:''${port} failed, sleeping for ''${delay} seconds" >&2
sleep "''${delay}"
done
nc -v -w 2 -z "$ip" "$port"
'';

inherit (std.lib.ops) mkOperable;

in
Expand Down Expand Up @@ -53,6 +106,7 @@ in
DATABASE_URI=${database-uri}
cd ${sqitch-plan-dir}
mkdir -p /tmp
HOME="$(mktemp -d)" # Ensure HOME is writable for sqitch config
export TZ=Etc/UTC
sqitch config --user user.name chainindexer
Expand All @@ -67,6 +121,8 @@ in
CARDANO_TESTNET_MAGIC=$(jq -r '.networkMagic' "$SHELLEY_GENESIS_CONFIG");
export CARDANO_TESTNET_MAGIC
${wait-for-socket}/bin/wait-for-socket "$CARDANO_NODE_SOCKET_PATH"
${packages.marlowe-chain-indexer}/bin/marlowe-chain-indexer \
--socket-path "$CARDANO_NODE_SOCKET_PATH" \
--database-uri "$DATABASE_URI" \
Expand Down Expand Up @@ -110,6 +166,8 @@ in
CARDANO_TESTNET_MAGIC=$(jq -r '.networkMagic' "$SHELLEY_GENESIS_CONFIG");
export CARDANO_TESTNET_MAGIC
${wait-for-socket}/bin/wait-for-socket "$CARDANO_NODE_SOCKET_PATH"
DATABASE_URI=${database-uri}
${packages.chainseekd}/bin/chainseekd \
--host "$HOST" \
Expand Down Expand Up @@ -137,6 +195,8 @@ in
[ -z "''${CHAINSEEKD_PORT:-}" ] && echo "CHAINSEEKD_PORT env var must be set -- aborting" && exit 1
[ -z "''${CHAINSEEKD_QUERY_PORT:-}" ] && echo "CHAINSEEKD_QUERY_PORT env var must be set -- aborting" && exit 1
${wait-for-tcp}/bin/wait-for-tcp "$CHAINSEEKD_HOST" "$CHAINSEEKD_PORT"
${packages.marlowe-history}/bin/marlowe-history \
--host "$HOST" \
--command-port "$PORT" \
Expand All @@ -163,6 +223,8 @@ in
[ -z "''${CHAINSEEKD_PORT:-}" ] && echo "CHAINSEEKD_PORT env var must be set -- aborting" && exit 1
[ -z "''${CHAINSEEKD_QUERY_PORT:-}" ] && echo "CHAINSEEKD_QUERY_PORT env var must be set -- aborting" && exit 1
${wait-for-tcp}/bin/wait-for-tcp "$CHAINSEEKD_HOST" "$CHAINSEEKD_PORT"
${packages.marlowe-discovery}/bin/marlowe-discovery \
--host "$HOST" \
--query-port "$PORT" \
Expand All @@ -188,6 +250,8 @@ in
[ -z "''${CHAINSEEKD_COMMAND_PORT:-}" ] && echo "CHAINSEEKD_COMMAND_PORT env var must be set -- aborting" && exit 1
[ -z "''${CHAINSEEKD_QUERY_PORT:-}" ] && echo "CHAINSEEKD_QUERY_PORT env var must be set -- aborting" && exit 1
${wait-for-tcp}/bin/wait-for-tcp "$CHAINSEEKD_HOST" "$CHAINSEEKD_PORT"
${packages.marlowe-tx}/bin/marlowe-tx \
--host "$HOST" \
--command-port "$PORT" \
Expand Down

0 comments on commit e53a904

Please sign in to comment.