Coder Social home page Coder Social logo

lz-tha's Introduction

Building

Local build: go mod tidy && go build -o app should suffice, then you can run the app like:

API_KEY=demo CURRENCY=BTC MARKET=USD ./app

Docker build: docker build -t data-api . then run like:

docker run -it --rm -p 8080:8080 -e API_KEY=demo -e CURRENCY=BTC -e MARKET=USD data-api

The dockerfile supports multi-arch builds.

Deployment

As we don't want to commit sensitive data to the source code repository, the secret containing the API key should be provisioned separately before the deployment. For example:

export API_KEY="...redacted..."
kubectl create secret generic data-api --from-literal=API_KEY="$API_KEY"

Alternatively a secret can be encrypted with sealed-secrets or SOPS and commited here with the manifests in kube/.

The kube/ subdirectory contains a bundle of Kustomize manifests that can be hydrated with kustomize build kube. It then can be either applied to the target cluster directly (e.g. kustomize build kube | kubectl apply -f-) or used with a GitOps controller (e.g. ArgoCD of FluxCD), which is preferrable as the ConfigMap generated has a random suffix hash to facilitate the rollout on config changes and previous versions should be garbage collected in some way. Updating the image tag can be achieved with kustomize image set or via CI pipeline scripts.

Alternatively a Helm chart could be implemented, but this is more time consuming.

lz-tha's People

Contributors

sangwa avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.