{"id":17027818,"url":"https://github.com/tristcoil/docker-stock-analytics-kubernetes-deployment","last_synced_at":"2026-04-09T12:39:49.540Z","repository":{"id":175936532,"uuid":"312867759","full_name":"tristcoil/docker-stock-analytics-kubernetes-deployment","owner":"tristcoil","description":"deploys dockerized stock analytics app into AWS kubernetes cluster","archived":false,"fork":false,"pushed_at":"2020-11-21T17:07:06.000Z","size":47,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-22T19:46:15.468Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tristcoil.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-14T17:35:13.000Z","updated_at":"2020-11-21T17:07:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"7868b6a3-3448-4e6f-a785-8f495a077d26","html_url":"https://github.com/tristcoil/docker-stock-analytics-kubernetes-deployment","commit_stats":null,"previous_names":["tristcoil/docker-stock-analytics-kubernetes-deployment"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tristcoil/docker-stock-analytics-kubernetes-deployment","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tristcoil%2Fdocker-stock-analytics-kubernetes-deployment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tristcoil%2Fdocker-stock-analytics-kubernetes-deployment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tristcoil%2Fdocker-stock-analytics-kubernetes-deployment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tristcoil%2Fdocker-stock-analytics-kubernetes-deployment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tristcoil","download_url":"https://codeload.github.com/tristcoil/docker-stock-analytics-kubernetes-deployment/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tristcoil%2Fdocker-stock-analytics-kubernetes-deployment/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261783463,"owners_count":23208956,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T07:50:38.696Z","updated_at":"2025-12-30T22:25:21.393Z","avatar_url":"https://github.com/tristcoil.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"App is providing current/last available stock price for given stock.\nData can be delayed by one trading day depending on when we query Yahoo! Finance API since it is providing daily close data.\n\nThe app runs in Docker container and is built by Jenkins server in AWS Virtual Machine.\nJenkins is monitoring related github repo and triggers build pipeline with every commit to master.\n\nBuild pipeline is performing rolling update to kubernetes cluster running on AWS.\nKubernetes cluster creation in AWS is managed by separate Jenkins pipeline, this one is triggered manually to prevent unexpected AWS charges.\n\n## How to run:\nrepo contains 2 Jenkinsfiles\n- ./Jenkinsfile ... creates pipeline for linting, container building and rolling deploymento to Kubernetes cluster\n\n- /cluster_creation/Jenkinsfile ... takes care of Kubernetes cluster creation\n\n- ./get_stock_price_cluster.sh ... queries the cluster for given ticker and provides stock price\n\n\n## Prerequisites:\nJenkins server has to have these installed\n- docker\n- eksctl\n- kubectl\n- hadolint\n- awscli\n- pipeline-aws Jenkins plugin to authenticate with AWS Cloud\n\n\n## Sources:\n\n#### original udacity project repos:\n- https://github.com/udacity/DevOps_Microservices\n- https://github.com/udacity/nd9991-c3-Build-CI-CD-Pipelines-Monitoring-and-Logging-v1\n- https://github.com/udacity/nd9991-c2-Infrastructure-as-Code-v1\n\n#### install docker:\n- https://docs.docker.com/engine/install/ubuntu/\n- https://www.digitalocean.com/community/questions/how-to-fix-docker-got-permission-denied-while-trying-to-connect-to-the-docker-daemon-socket\n\n#### installing minikube:\n- https://minikube.sigs.k8s.io/docs/start/\n\n#### hadolint:\n- https://github.com/hadolint/hadolint/\n- https://www.haskell.org/platform/#linux-ubuntu\n- https://stackoverflow.com/questions/62369711/how-to-install-hadolint-on-ubuntu\n\n#### Docker commands:\n- https://docs.docker.com/engine/reference/commandline/image_rm/\n- https://docs.docker.com/engine/reference/commandline/image_push/\n- https://docs.docker.com/docker-hub/repos/\n- https://docs.docker.com/engine/reference/commandline/login/\n\n#### Kubernetes:\n- https://kubernetes.io/docs/tutorials/kubernetes-basics/deploy-app/deploy-interactive/\n- https://kubernetes.io/docs/tutorials/kubernetes-basics/explore/explore-interactive/\n- https://kubernetes.io/docs/tutorials/kubernetes-basics/expose/expose-interactive/\n\n#### creating Kubernetes cluster on AWS:\n- https://logz.io/blog/amazon-eks-cluster/\n- https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html\n- https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html\n- https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html\n- https://docs.aws.amazon.com/eks/latest/userguide/clusters.html\n- https://www.ironin.it/blog/a-simple-kubernetes-cluster-on-aws.html\n- https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateCluster.html\n- https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html\n- https://rtfm.co.ua/en/aws-elastic-kubernetes-service-a-cluster-creation-automation-part-1-cloudformation/\n- https://www.bluematador.com/blog/my-first-kubernetes-cluster-a-review-of-amazon-eks\n- https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html\n- https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html\n- https://aws.amazon.com/blogs/storage/deploying-jenkins-on-amazon-eks-with-amazon-efs/\n\n#### rolling deployment\n- https://kubernetes.io/docs/tutorials/kubernetes-basics/update/update-intro/\n- https://kubernetes.io/docs/tutorials/kubernetes-basics/update/update-interactive/\n- https://medium.com/platformer-blog/enable-rolling-updates-in-kubernetes-with-zero-downtime-31d7ec388c81\n- https://www.bluematador.com/blog/kubernetes-deployments-rolling-update-configuration\n- https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/\n\n\n#### knowledge base:\n- https://knowledge.udacity.com/questions/303115\n- https://knowledge.udacity.com/questions/329275\n- https://knowledge.udacity.com/questions/351451\n- https://knowledge.udacity.com/questions/332693\n- https://knowledge.udacity.com/questions/330414\n- https://knowledge.udacity.com/questions/321217\n\n- https://knowledge.udacity.com/questions/279390\n- https://knowledge.udacity.com/questions/293833\n- https://knowledge.udacity.com/questions/311884\n- https://knowledge.udacity.com/questions/311887\n- https://knowledge.udacity.com/questions/313832\n- https://knowledge.udacity.com/questions/324445\n- https://knowledge.udacity.com/questions/329228\n\n- https://hub.udacity.com/rooms/community:nd9991:840625-project-639-smg-2?contextType=room\n\n\n#### git:\n- used commands generated by github.com when creating new repository\n\n#### to modify the app:\n- https://www.learndatasci.com/tutorials/python-finance-part-yahoo-finance-api-pandas-matplotlib/\n- https://aroussi.com/post/python-yahoo-finance\n- https://stackoverflow.com/questions/32490629/getting-todays-date-in-yyyy-mm-dd-in-python\n- https://www.digitalocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes\n\n#### troubleshooting jenkins:\n- https://askubuntu.com/questions/1139046/jenkins-error-incorrect-java-version-for-java11-after-removing-java11-and-ins\n- https://stackoverflow.com/questions/19457867/problems-installing-latest-version-of-jenkins\nactual jenkins config fix:\n- https://askubuntu.com/questions/1139046/jenkins-error-incorrect-java-version-for-java11-after-removing-java11-and-ins\n- https://www.edureka.co/community/39390/how-to-give-jenkins-super-user-permission\n- https://stackoverflow.com/questions/11880070/how-to-run-a-script-as-root-in-jenkins\n\n#### increasing swap on my jenkins box\n- https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-18-04\n\n#### creating config for app deployment on kubernetes:\n- https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/main/docs/examples/2048/2048_full.yaml\n\n#### pushing to dockerhub with Jenkins:\n- https://tutorials.releaseworksacademy.com/learn/building-your-first-docker-image-with-jenkins-2-guide-for-developers\n- https://support.cloudbees.com/hc/en-us/articles/203802500-Injecting-Secrets-into-Jenkins-Build-Jobs\n- https://plugins.jenkins.io/credentials-binding/\n- https://stackoverflow.com/questions/35736377/reference-global-credentials-in-bash-script-in-jenkins-job\n\n#### some docker commands:\n- https://docs.docker.com/engine/reference/commandline/system_prune/\n\n#### additional notes:\ndocker image that will go to Kubernetes cluster:\ncoil/stock_analytics\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftristcoil%2Fdocker-stock-analytics-kubernetes-deployment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftristcoil%2Fdocker-stock-analytics-kubernetes-deployment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftristcoil%2Fdocker-stock-analytics-kubernetes-deployment/lists"}