diff --git a/docker/polkadot-archive-downloader/Dockerfile.template b/docker/polkadot-archive-downloader/Dockerfile.template index 4f74954..85e2d89 100644 --- a/docker/polkadot-archive-downloader/Dockerfile.template +++ b/docker/polkadot-archive-downloader/Dockerfile.template @@ -1,5 +1,5 @@ FROM alpine RUN apk add curl p7zip bash -COPY polkadot-archive-downloader.sh / -ENTRYPOINT ["/polkadot-archive-downloader.sh"] +COPY entrypoint.sh / +ENTRYPOINT ["/entrypoint.sh"] CMD [] diff --git a/docker/polkadot-archive-downloader/polkadot-archive-downloader.sh b/docker/polkadot-archive-downloader/entrypoint.sh similarity index 64% rename from docker/polkadot-archive-downloader/polkadot-archive-downloader.sh rename to docker/polkadot-archive-downloader/entrypoint.sh index 4c4ca47..a7f47a8 100755 --- a/docker/polkadot-archive-downloader/polkadot-archive-downloader.sh +++ b/docker/polkadot-archive-downloader/entrypoint.sh @@ -2,7 +2,13 @@ set -e -if [ -d /polkadot/.local/share/polkadot/chains/ksmcc3/db/ ]; then +if [ "${CHAIN}" == "polkadot" ]; then + chain_dir=polkadot +else + chain_dir=ksmcc3 +fi + +if [ -d /polkadot/.local/share/polkadot/chains/${chain_dir}/db/ ]; then echo "Blockchain database already exists, no need to import, exiting" exit 0 elif [ -z "$ARCHIVE_URL" ]; then @@ -11,10 +17,10 @@ elif [ -z "$ARCHIVE_URL" ]; then else echo "Did not find pre-existing data, importing blockchain" rm -rvf /polkadot/.local/share/polkadot - mkdir -p /polkadot/.local/share/polkadot/chains/ksmcc3/ + mkdir -p /polkadot/.local/share/polkadot/chains/${chain_dir}/ echo "Will download $ARCHIVE_URL" - curl $ARCHIVE_URL -o /polkadot/polkadot_archive.7z - 7z x /polkadot/polkadot_archive.7z -o/polkadot/.local/share/polkadot/chains/ksmcc3 + curl -L $ARCHIVE_URL -o /polkadot/polkadot_archive.7z + 7z x /polkadot/polkadot_archive.7z -o/polkadot/.local/share/polkadot/chains/${chain_dir} rm -v /polkadot/polkadot_archive.7z chmod -R 777 /polkadot/.local/ chown -R 1000:1000 /polkadot/.local/ diff --git a/docker/polkadot-node-key-configurator/Dockerfile.template b/docker/polkadot-node-key-configurator/Dockerfile.template index e266b92..757ec7d 100644 --- a/docker/polkadot-node-key-configurator/Dockerfile.template +++ b/docker/polkadot-node-key-configurator/Dockerfile.template @@ -1,7 +1,7 @@ FROM parity/polkadot:latest USER root # install tools and dependencies -RUN apt-get update && \ +RUN apt-get update --allow-insecure-repositories && \ DEBIAN_FRONTEND=noninteractive apt-get upgrade -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y \ xxd && \ @@ -11,7 +11,7 @@ RUN apt-get update && \ RUN curl https://storage.googleapis.com/polkadot259c91787f329be9_cloudbuild/subkey -o /usr/local/bin/subkey && \ chmod 777 /usr/local/bin/subkey USER polkadot -COPY polkadot-node-key-configurator.sh / -ENTRYPOINT ["/polkadot-node-key-configurator.sh"] +COPY entrypoint.sh / +ENTRYPOINT ["/entrypoint.sh"] CMD [] diff --git a/docker/polkadot-node-key-configurator/polkadot-node-key-configurator.sh b/docker/polkadot-node-key-configurator/entrypoint.sh similarity index 100% rename from docker/polkadot-node-key-configurator/polkadot-node-key-configurator.sh rename to docker/polkadot-node-key-configurator/entrypoint.sh diff --git a/docker/polkadot-private-node/Dockerfile.template b/docker/polkadot-private-node/Dockerfile.template index 49196f7..90756ce 100644 --- a/docker/polkadot-private-node/Dockerfile.template +++ b/docker/polkadot-private-node/Dockerfile.template @@ -1,7 +1,7 @@ FROM parity/polkadot:((polkadot_version)) USER root # install tools and dependencies -RUN apt-get update && \ +RUN apt-get update --allow-insecure-repositories && \ DEBIAN_FRONTEND=noninteractive apt-get upgrade -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y \ jq xxd && \ @@ -9,6 +9,6 @@ RUN apt-get update && \ apt-get clean && \ find /var/lib/apt/lists/ -type f -not -name lock -delete; USER polkadot -COPY polkadot-private-node.sh / -ENTRYPOINT ["/polkadot-private-node.sh"] +COPY entrypoint.sh / +ENTRYPOINT ["/entrypoint.sh"] CMD [] diff --git a/docker/polkadot-private-node/polkadot-private-node.sh b/docker/polkadot-private-node/entrypoint.sh similarity index 92% rename from docker/polkadot-private-node/polkadot-private-node.sh rename to docker/polkadot-private-node/entrypoint.sh index 284c5d2..0ecfe7b 100755 --- a/docker/polkadot-private-node/polkadot-private-node.sh +++ b/docker/polkadot-private-node/entrypoint.sh @@ -22,9 +22,10 @@ fi # unsafe flags are due to polkadot panic alerter needing to connect to the node with rpc eval /usr/bin/polkadot --validator --wasm-execution Compiled \ --unsafe-pruning \ + --out-peers=100 \ --pruning=1000 \ --prometheus-external \ - --node-key-file /polkadot/k8s_local_node_key \ + $node_key_param \ $name_param \ $telemetry_url_param \ $chain_param diff --git a/k8s/kustomization.yaml.tmpl b/k8s/kustomization.yaml.tmpl index 5985b96..3f7b6e5 100644 --- a/k8s/kustomization.yaml.tmpl +++ b/k8s/kustomization.yaml.tmpl @@ -15,13 +15,13 @@ namePrefix: ${kubernetes_name_prefix}- imageTags: - name: polkadot-private-node newName: gcr.io/${project}/polkadot-private-node - newTag: latest + newTag: ${kubernetes_namespace}-latest - name: polkadot-archive-downloader newName: gcr.io/${project}/polkadot-archive-downloader - newTag: latest + newTag: ${kubernetes_namespace}-latest - name: polkadot-node-key-configurator newName: gcr.io/${project}/polkadot-node-key-configurator - newTag: latest + newTag: ${kubernetes_namespace}-latest configMapGenerator: - name: polkadot-configmap diff --git a/k8s/polkadot-private-node.yaml b/k8s/polkadot-private-node.yaml index 3f4a3a2..ec09f3f 100644 --- a/k8s/polkadot-private-node.yaml +++ b/k8s/polkadot-private-node.yaml @@ -118,6 +118,7 @@ spec: resources: limits: cpu: 0 + imagePullPolicy: Always volumes: - name: polkadot-node-keys secret: @@ -129,11 +130,17 @@ spec: - name: polkadot-private-node-pv-claim mountPath: /polkadot env: + - name: CHAIN + valueFrom: + configMapKeyRef: + name: polkadot-configmap + key: CHAIN - name: ARCHIVE_URL valueFrom: configMapKeyRef: name: polkadot-configmap key: ARCHIVE_URL + imagePullPolicy: Always volumeClaimTemplates: - metadata: name: polkadot-private-node-pv-claim diff --git a/terraform/k8s.tf b/terraform/k8s.tf index 7f64647..45e74ca 100644 --- a/terraform/k8s.tf +++ b/terraform/k8s.tf @@ -12,23 +12,24 @@ resource "null_resource" "push_containers" { set -e set -x - -find ${path.module}/../docker -mindepth 1 -maxdepth 1 -type d -printf '%f\n'| while read container; do - - pushd ${path.module}/../docker/$container +build_container () { + cd $1 + container=$(basename $1) cp Dockerfile.template Dockerfile sed -i "s/((polkadot_version))/${var.polkadot_version}/" Dockerfile cat << EOY > cloudbuild.yaml steps: - name: 'gcr.io/cloud-builders/docker' - args: ['build', '-t', "gcr.io/${module.terraform-gke-blockchain.project}/$container:latest", '.'] -images: ["gcr.io/${module.terraform-gke-blockchain.project}/$container:latest"] + args: ['build', '-t', "gcr.io/${module.terraform-gke-blockchain.project}/$container:${var.kubernetes_namespace}-latest", '.'] +images: ["gcr.io/${module.terraform-gke-blockchain.project}/$container:${var.kubernetes_namespace}-latest"] EOY gcloud builds submit --project ${module.terraform-gke-blockchain.project} --config cloudbuild.yaml . - rm -vf Dockerfile - rm -vf cloudbuild.yaml - popd -done + rm -v Dockerfile + rm cloudbuild.yaml +} +export -f build_container +find ${path.module}/../docker -mindepth 1 -maxdepth 1 -type d -exec bash -c 'build_container "$0"' {} \; -printf '%f\n' +#build_container ${path.module}/../docker/polkadot-archive-downloader EOF } } diff --git a/terraform/variables.tf b/terraform/variables.tf index 5722179..de5d540 100644 --- a/terraform/variables.tf +++ b/terraform/variables.tf @@ -11,6 +11,7 @@ variable "chain" { variable "polkadot_archive_url" { type = string description = "archive url" + default = "https://dot.polkashots.io/snapshot" } variable "polkadot_telemetry_url" {