From e68f141c20700dbf4741779e87cbe45b72263dcd Mon Sep 17 00:00:00 2001 From: Xavier Fernandez Date: Wed, 21 Sep 2022 22:18:26 -0600 Subject: [PATCH] feat(kubernetes): add kubernetes cron example --- kubernetes/distribute.cronjob.yml | 34 +++++++++++++++++++++++++++++++ makefile | 16 +++++++-------- mkutils/meta.mk | 4 ++-- 3 files changed, 44 insertions(+), 10 deletions(-) create mode 100644 kubernetes/distribute.cronjob.yml diff --git a/kubernetes/distribute.cronjob.yml b/kubernetes/distribute.cronjob.yml new file mode 100644 index 0000000..daea119 --- /dev/null +++ b/kubernetes/distribute.cronjob.yml @@ -0,0 +1,34 @@ +apiVersion: batch/v1 +kind: CronJob +metadata: + name: distribute-cronjob +spec: + schedule: "0 0 10 * *" + successfulJobsHistoryLimit: 1 + failedJobsHistoryLimit: 1 + jobTemplate: + spec: + template: + spec: + containers: + - name: distribute + image: ${DOCKER_REGISTRY}/${IMAGE_NAME_DISTRIBUTE}:${VERSION} + imagePullPolicy: IfNotPresent + command: [ "node" ] + args: [ "/app/src/index.js" ] + env: + - name: EOS_API_ENDPOINT + value: "${EOS_API_ENDPOINT}" + - name: EOS_API_CHAIN_ID + value: "${EOS_API_CHAIN_ID}" + - name: EOS_DISTRIBUTE_ACCOUNT + value: "${EOS_DISTRIBUTE_ACCOUNT}" + - name: EOS_DISTRIBUTE_PERMISSION + value: "${EOS_DISTRIBUTE_PERMISSION}" + - name: EOS_DISTRIBUTE_PRIVATE_KEY + value: "${EOS_DISTRIBUTE_PRIVATE_KEY}" + - name: EOS_DISTRIBUTE_MAX_STEPS + value: "${EOS_DISTRIBUTE_MAX_STEPS}" + - name: EOS_EDEN_ACCOUNT + value: "${EOS_EDEN_ACCOUNT}" + restartPolicy: Never diff --git a/makefile b/makefile index d477cd3..f7dd73b 100644 --- a/makefile +++ b/makefile @@ -17,26 +17,26 @@ run: node_modules build-docker: ##@devops Build the docker image build-docker: ./Dockerfile - @docker pull $(DOCKER_REGISTRY)/$(IMAGE_NAME_WATCHER):$(VERSION) || true + @docker pull $(DOCKER_REGISTRY)/$(IMAGE_NAME_DISTRIBUTE):$(VERSION) || true @docker build \ --target release \ - -t $(DOCKER_REGISTRY)/$(IMAGE_NAME_WATCHER):$(VERSION) \ - -t $(DOCKER_REGISTRY)/$(IMAGE_NAME_WATCHER):$(LATEST_TAG) \ + -t $(DOCKER_REGISTRY)/$(IMAGE_NAME_DISTRIBUTE):$(VERSION) \ + -t $(DOCKER_REGISTRY)/$(IMAGE_NAME_DISTRIBUTE):$(LATEST_TAG) \ . pull-image: ##@devops Pull the latest image from registry for caching pull-image: - @docker pull $(DOCKER_REGISTRY)/$(IMAGE_NAME_WATCHER):$(LATEST_TAG) || true + @docker pull $(DOCKER_REGISTRY)/$(IMAGE_NAME_DISTRIBUTE):$(LATEST_TAG) || true build-docker-cached: ##@devops Build the docker image using cached layers build-docker-cached: ./Dockerfile @docker build \ --target prod-stage \ - --cache-from $(DOCKER_REGISTRY)/$(IMAGE_NAME_WATCHER):$(LATEST_TAG) \ - -t $(DOCKER_REGISTRY)/$(IMAGE_NAME_WATCHER):$(VERSION) \ - -t $(DOCKER_REGISTRY)/$(IMAGE_NAME_WATCHER):$(LATEST_TAG) \ + --cache-from $(DOCKER_REGISTRY)/$(IMAGE_NAME_DISTRIBUTE):$(LATEST_TAG) \ + -t $(DOCKER_REGISTRY)/$(IMAGE_NAME_DISTRIBUTE):$(VERSION) \ + -t $(DOCKER_REGISTRY)/$(IMAGE_NAME_DISTRIBUTE):$(LATEST_TAG) \ . push-image: ##@devops Push the freshly built image and tag with release or latest tag push-image: - @docker push $(DOCKER_REGISTRY)/$(IMAGE_NAME_WATCHER):$(VERSION) + @docker push $(DOCKER_REGISTRY)/$(IMAGE_NAME_DISTRIBUTE):$(VERSION) diff --git a/mkutils/meta.mk b/mkutils/meta.mk index e79ffaf..3f7ce16 100644 --- a/mkutils/meta.mk +++ b/mkutils/meta.mk @@ -3,11 +3,11 @@ VERSION ?= $(shell git rev-parse --short HEAD) CURRENT_BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD) -IMAGE_NAME_WATCHER=eden-distribute +IMAGE_NAME_DISTRIBUTE=eden-distribute DOCKER_REGISTRY=eoscostarica506 -MAKE_ENV += DOCKER_REGISTRY VERSION IMAGE_NAME_WATCHER +MAKE_ENV += DOCKER_REGISTRY VERSION IMAGE_NAME_DISTRIBUTE SHELL_EXPORT := $(foreach v,$(MAKE_ENV),$(v)='$($(v))')