Compare commits
1 Commits
main
...
pm-without
Author | SHA1 | Date | |
---|---|---|---|
390f5d8d3b |
@ -10,4 +10,3 @@ SYSTEM_PRUNE=false
|
|||||||
WEBAPP_IMAGE_PRUNE=true
|
WEBAPP_IMAGE_PRUNE=true
|
||||||
CHECK_INTERVAL=5
|
CHECK_INTERVAL=5
|
||||||
FQDN_POLICY="allow"
|
FQDN_POLICY="allow"
|
||||||
DEPLOYMENT_IP="k8s.cluster.ip.address"
|
|
@ -11,7 +11,7 @@ RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg -
|
|||||||
apt update && apt install -y nodejs
|
apt update && apt install -y nodejs
|
||||||
|
|
||||||
# laconic-so
|
# laconic-so
|
||||||
RUN curl -LO https://git.vdb.to/cerc-io/stack-orchestrator/releases/download/latest/laconic-so && \
|
RUN curl -LO https://git.vdb.to/cerc-io/stack-orchestrator/releases/download/v1.1.0-0c47da4-202410210702/laconic-so && \
|
||||||
chmod +x ./laconic-so && \
|
chmod +x ./laconic-so && \
|
||||||
mv ./laconic-so /usr/bin/laconic-so
|
mv ./laconic-so /usr/bin/laconic-so
|
||||||
|
|
||||||
@ -44,5 +44,5 @@ COPY . /app/
|
|||||||
WORKDIR /app/
|
WORKDIR /app/
|
||||||
RUN rm -rf node_modules && yarn && yarn clean && yarn build:release
|
RUN rm -rf node_modules && yarn && yarn clean && yarn build:release
|
||||||
|
|
||||||
COPY scripts .
|
COPY run.sh .
|
||||||
CMD ["./scripts/run.sh"]
|
CMD ["./run.sh"]
|
||||||
|
@ -133,9 +133,6 @@ OPENPGP_PASSPHRASE="SECRET"
|
|||||||
OPENPGP_PRIVATE_KEY_FILE="/etc/config/webapp-deployer-api.my.domain.com.pgp.key"
|
OPENPGP_PRIVATE_KEY_FILE="/etc/config/webapp-deployer-api.my.domain.com.pgp.key"
|
||||||
LACONIC_CONFIG="/etc/config/registry.yml"
|
LACONIC_CONFIG="/etc/config/registry.yml"
|
||||||
LRN=lrn://laconic/deployers/webapp-deployer-api.my.domain.com
|
LRN=lrn://laconic/deployers/webapp-deployer-api.my.domain.com
|
||||||
CHECK_INTERVAL=15
|
|
||||||
|
|
||||||
AUCTION_CHECK_INTERVAL=10
|
|
||||||
HANDLE_AUCTION_REQUESTS=true
|
HANDLE_AUCTION_REQUESTS=true
|
||||||
AUCTION_BID_AMOUNT=50000
|
AUCTION_BID_AMOUNT=50000
|
||||||
```
|
```
|
||||||
|
@ -8,15 +8,6 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- 9555
|
- 9555
|
||||||
|
|
||||||
cerc-webapp-auction-handler:
|
|
||||||
image: cerc/webapp-deployer-backend:local
|
|
||||||
restart: always
|
|
||||||
environment:
|
|
||||||
RUN_AUCTIONS_HANDLER: "true"
|
|
||||||
volumes:
|
|
||||||
- srv:/srv
|
|
||||||
- config:/etc/config:ro
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
config:
|
config:
|
||||||
srv:
|
srv:
|
||||||
|
@ -1,10 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if [ "$RUN_AUCTIONS_HANDLER" = "true" ]; then
|
|
||||||
exec "./scripts/handle-auctions.sh"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
function is_privileged {
|
function is_privileged {
|
||||||
ip link add dummy0 type dummy >/dev/null
|
ip link add dummy0 type dummy >/dev/null
|
||||||
if [[ $? -eq 0 ]]; then
|
if [[ $? -eq 0 ]]; then
|
||||||
@ -25,11 +20,6 @@ if [ -z "$DEPLOYMENT_RECORD_NAMESPACE" ]; then
|
|||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$FQDN_POLICY" = "allow" ] && [ -z "$DEPLOYMENT_IP" ]; then
|
|
||||||
echo "DEPLOYMENT_IP is required with 'allow' FQDN_POLICY"
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$IMAGE_REGISTRY" ]; then
|
if [ -z "$IMAGE_REGISTRY" ]; then
|
||||||
echo "IMAGE_REGISTRY is required."
|
echo "IMAGE_REGISTRY is required."
|
||||||
exit 2
|
exit 2
|
||||||
@ -47,6 +37,11 @@ fi
|
|||||||
|
|
||||||
AUCTION_OPTS=""
|
AUCTION_OPTS=""
|
||||||
if [ "$HANDLE_AUCTION_REQUESTS" = "true" ]; then
|
if [ "$HANDLE_AUCTION_REQUESTS" = "true" ]; then
|
||||||
|
if [ -z "$AUCTION_BID_AMOUNT" ]; then
|
||||||
|
echo "AUCTION_BID_AMOUNT is required when handling auction requsts."
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
AUCTION_OPTS="--auction-requests"
|
AUCTION_OPTS="--auction-requests"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -54,7 +49,6 @@ STORAGE_ROOT="${STORAGE_ROOT:-/srv}"
|
|||||||
DEPLOYMENTS_DIR="${DEPLOYMENTS_DIR:-$STORAGE_ROOT/deployments}"
|
DEPLOYMENTS_DIR="${DEPLOYMENTS_DIR:-$STORAGE_ROOT/deployments}"
|
||||||
LOG_DIR="${LOG_DIR:-$STORAGE_ROOT/logs}"
|
LOG_DIR="${LOG_DIR:-$STORAGE_ROOT/logs}"
|
||||||
CONTAINERS_DIR="${CONTAINER_DIR:-$STORAGE_ROOT/containers}"
|
CONTAINERS_DIR="${CONTAINER_DIR:-$STORAGE_ROOT/containers}"
|
||||||
REGISTRY_LOCK_FILE="${REGISTRY_LOCK_FILE:-/srv/registry_mutex_lock_file}"
|
|
||||||
|
|
||||||
if [[ ! -d "${DEPLOYMENTS_DIR}" ]]; then
|
if [[ ! -d "${DEPLOYMENTS_DIR}" ]]; then
|
||||||
mkdir -p "${DEPLOYMENTS_DIR}"
|
mkdir -p "${DEPLOYMENTS_DIR}"
|
||||||
@ -132,7 +126,6 @@ while true; do
|
|||||||
echo "########### UNDEPLOY ############"
|
echo "########### UNDEPLOY ############"
|
||||||
laconic-so undeploy-webapp-from-registry \
|
laconic-so undeploy-webapp-from-registry \
|
||||||
--laconic-config /etc/config/laconic.yml \
|
--laconic-config /etc/config/laconic.yml \
|
||||||
--registry-lock-file "${REGISTRY_LOCK_FILE}" \
|
|
||||||
--deployment-parent-dir "${DEPLOYMENTS_DIR}" \
|
--deployment-parent-dir "${DEPLOYMENTS_DIR}" \
|
||||||
--delete-names \
|
--delete-names \
|
||||||
--delete-volumes \
|
--delete-volumes \
|
||||||
@ -140,7 +133,7 @@ while true; do
|
|||||||
--include-tags "$INCLUDE_TAGS" \
|
--include-tags "$INCLUDE_TAGS" \
|
||||||
--exclude-tags "$EXCLUDE_TAGS" \
|
--exclude-tags "$EXCLUDE_TAGS" \
|
||||||
--lrn "$LRN" \
|
--lrn "$LRN" \
|
||||||
--min-required-payment 0 \
|
--min-required-payment ${MIN_REQUIRED_PAYMENT:-0} \
|
||||||
$EXTRA_UNDEPLOY_OPTS \
|
$EXTRA_UNDEPLOY_OPTS \
|
||||||
$UPDATE_OPTS \
|
$UPDATE_OPTS \
|
||||||
--discover
|
--discover
|
||||||
@ -155,7 +148,6 @@ while true; do
|
|||||||
laconic-so deploy-webapp-from-registry \
|
laconic-so deploy-webapp-from-registry \
|
||||||
--kube-config /etc/config/kube.yml \
|
--kube-config /etc/config/kube.yml \
|
||||||
--laconic-config /etc/config/laconic.yml \
|
--laconic-config /etc/config/laconic.yml \
|
||||||
--registry-lock-file "${REGISTRY_LOCK_FILE}" \
|
|
||||||
--image-registry ${IMAGE_REGISTRY} \
|
--image-registry ${IMAGE_REGISTRY} \
|
||||||
--deployment-parent-dir "${DEPLOYMENTS_DIR}" \
|
--deployment-parent-dir "${DEPLOYMENTS_DIR}" \
|
||||||
--dns-suffix ${DEPLOYMENT_DNS_SUFFIX} \
|
--dns-suffix ${DEPLOYMENT_DNS_SUFFIX} \
|
||||||
@ -165,13 +157,11 @@ while true; do
|
|||||||
--include-tags "$INCLUDE_TAGS" \
|
--include-tags "$INCLUDE_TAGS" \
|
||||||
--exclude-tags "$EXCLUDE_TAGS" \
|
--exclude-tags "$EXCLUDE_TAGS" \
|
||||||
--fqdn-policy "${FQDN_POLICY:-prohibit}" \
|
--fqdn-policy "${FQDN_POLICY:-prohibit}" \
|
||||||
--ip "${DEPLOYMENT_IP}" \
|
|
||||||
--lrn "$LRN" \
|
--lrn "$LRN" \
|
||||||
--min-required-payment ${MIN_REQUIRED_PAYMENT:-0} \
|
--min-required-payment ${MIN_REQUIRED_PAYMENT:-0} \
|
||||||
--config-upload-dir "$UPLOAD_DIRECTORY" \
|
--config-upload-dir "$UPLOAD_DIRECTORY" \
|
||||||
--private-key-file "$OPENPGP_PRIVATE_KEY_FILE" \
|
--private-key-file "$OPENPGP_PRIVATE_KEY_FILE" \
|
||||||
--private-key-passphrase "$OPENPGP_PASSPHRASE" \
|
--private-key-passphrase "$OPENPGP_PASSPHRASE" \
|
||||||
--recreate-on-deploy \
|
|
||||||
$AUCTION_OPTS \
|
$AUCTION_OPTS \
|
||||||
$LOG_OPTS \
|
$LOG_OPTS \
|
||||||
$EXTRA_DEPLOY_OPTS \
|
$EXTRA_DEPLOY_OPTS \
|
||||||
@ -184,6 +174,20 @@ while true; do
|
|||||||
echo "############ DEPLOY FAILURE STATUS $rc #############"
|
echo "############ DEPLOY FAILURE STATUS $rc #############"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$HANDLE_AUCTION_REQUESTS" = "true" ]; then
|
||||||
|
echo "############ DEPLOYMENT AUCTION #############"
|
||||||
|
laconic-so handle-deployment-auction \
|
||||||
|
--laconic-config /etc/config/laconic.yml \
|
||||||
|
--state-file "${DEPLOYMENTS_DIR}/autoauction.state" \
|
||||||
|
--bid-amount ${AUCTION_BID_AMOUNT}
|
||||||
|
rc=$?
|
||||||
|
if [ $rc -eq 0 ]; then
|
||||||
|
echo "############ DEPLOYMENT AUCTION SUCCESS #############"
|
||||||
|
else
|
||||||
|
echo "############ DEPLOYMENT AUCTION FAILURE STATUS $rc #############"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Cleanup any build leftovers
|
# Cleanup any build leftovers
|
||||||
if [[ "${SYSTEM_PRUNE:-false}" == "true" ]]; then
|
if [[ "${SYSTEM_PRUNE:-false}" == "true" ]]; then
|
||||||
docker system prune --all --force
|
docker system prune --all --force
|
@ -1,47 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [ ! -f "/etc/config/laconic.yml" ]; then
|
|
||||||
echo "/etc/config/laconic.yml is required."
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$HANDLE_AUCTION_REQUESTS" = "true" ]; then
|
|
||||||
if [ -z "$AUCTION_BID_AMOUNT" ]; then
|
|
||||||
echo "AUCTION_BID_AMOUNT is required when handling auction requsts."
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Not handling auction requests"
|
|
||||||
|
|
||||||
# k8s integration only supports "always" restart policy, so wait indefinitely
|
|
||||||
# TODO: Exit container once restart policy is supported
|
|
||||||
tail -f /dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
STORAGE_ROOT="${STORAGE_ROOT:-/srv}"
|
|
||||||
DEPLOYMENTS_DIR="${DEPLOYMENTS_DIR:-$STORAGE_ROOT/deployments}"
|
|
||||||
REGISTRY_LOCK_FILE="${REGISTRY_LOCK_FILE:-/srv/registry_mutex_lock_file}"
|
|
||||||
|
|
||||||
if [[ ! -d "${DEPLOYMENTS_DIR}" ]]; then
|
|
||||||
mkdir -p "${DEPLOYMENTS_DIR}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd /app/
|
|
||||||
while true; do
|
|
||||||
echo "=============================================================="
|
|
||||||
|
|
||||||
echo "############ DEPLOYMENT AUCTION #############"
|
|
||||||
laconic-so handle-deployment-auction \
|
|
||||||
--laconic-config /etc/config/laconic.yml \
|
|
||||||
--registry-lock-file "${REGISTRY_LOCK_FILE}" \
|
|
||||||
--state-file "${DEPLOYMENTS_DIR}/autoauction.state" \
|
|
||||||
--bid-amount ${AUCTION_BID_AMOUNT}
|
|
||||||
rc=$?
|
|
||||||
if [ $rc -eq 0 ]; then
|
|
||||||
echo "############ DEPLOYMENT AUCTION SUCCESS #############"
|
|
||||||
else
|
|
||||||
echo "############ DEPLOYMENT AUCTION FAILURE STATUS $rc #############"
|
|
||||||
fi
|
|
||||||
|
|
||||||
sleep ${AUCTION_CHECK_INTERVAL:-10}
|
|
||||||
done
|
|
Loading…
Reference in New Issue
Block a user