{"id":20905797,"url":"https://github.com/el-zedy/final-project-app","last_synced_at":"2026-03-19T18:02:52.671Z","repository":{"id":80944597,"uuid":"605772663","full_name":"El-Zedy/Final-Project-App","owner":"El-Zedy","description":"Build and Deploy simple web on GKE private cluster using docker and kubernetes automated through jenkins pipeline","archived":false,"fork":false,"pushed_at":"2023-02-24T19:21:26.000Z","size":1270,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-26T09:35:32.545Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"HTML","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/El-Zedy.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":"2023-02-23T21:43:38.000Z","updated_at":"2023-03-03T23:31:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"4eaf560d-f6e8-41b8-96f5-93e8058ab798","html_url":"https://github.com/El-Zedy/Final-Project-App","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/El-Zedy/Final-Project-App","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/El-Zedy%2FFinal-Project-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/El-Zedy%2FFinal-Project-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/El-Zedy%2FFinal-Project-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/El-Zedy%2FFinal-Project-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/El-Zedy","download_url":"https://codeload.github.com/El-Zedy/Final-Project-App/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/El-Zedy%2FFinal-Project-App/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30474881,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T17:15:31.527Z","status":"ssl_error","status_checked_at":"2026-03-13T17:15:22.394Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-11-18T13:27:22.381Z","updated_at":"2026-03-13T20:31:44.650Z","avatar_url":"https://github.com/El-Zedy.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ITI-Final-Project-App :curly_loop:\nBuild and Deploy simple web on `GKE` private cluster using `docker` and `kubernetes` automated through `jenkins` pipeline\n## Prerequisites\n- Linux system\n- Jenkins-slave up and running \n- Docker\n## Getting Started\n- To use this project, you will need to clone the repository to your local machine using the following command:\n    \n      git clone https://github.com/El-Zedy/Final-Project-App\n      \n- Jenkinsfile \n    - have to stages one for `build` and another for `deploy`\n        \n        - build stage:\n              \n              withCredentials([usernamePassword(credentialsId: 'Dockerhub-cred', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')])\n                    {\n                        sh   \"\"\"\n                            docker login -u $USERNAME -p $PASSWORD\n                            docker build -t moelzedy/app:${BUILD_NUMBER} .\n                            docker push moelzedy/app:${BUILD_NUMBER}\n                            echo ${BUILD_NUMBER} \u003e ../proj-build-number.txt\n                        \"\"\"\n                    }\n            \n            - login at dockerhub \n            - bulid our app image from our Dockerfile\n            - push our image to dockerhub to use it at our deployment later\n            \n         - deploy stage:\n            \n                def namespace = \"app-ns\"\n                      def namespaceExists = sh(returnStdout: true, script: \"kubectl get ns | grep ${namespace} | wc -l\").trim()\n                      if (namespaceExists == \"1\") \n                      {\n                          echo \"Namespace ${namespace} already exists, skipping creation step.\"\n                      } else {\n                          sh \"kubectl create namespace ${namespace}\"\n                      }\n                      sh    \"\"\"\n                          export BUILD_NUMBER=\\$(cat ../proj-build-number.txt)\n                          mv Deployment/deploy.yaml Deployment/deploy.yaml.tmp\n                          cat Deployment/deploy.yaml.tmp | envsubst \u003e Deployment/deploy.yaml\n                          rm -f Deployment/deploy.yaml.tmp\n                          kubectl apply -f Deployment\n                      \"\"\"\n            - check if app-ns namespace existing or no, if yes skip this point and if no create it \n            - apply our Deployment yml files\n  \n- Create pipline at jenkins ui\n  \n    - add piple metadata\n    - create credentials for dockrhub\n    - configure SCM\n    - start buliding our pipline\n    \n- check resource created by pipline\n    \n      kubectl get all -n app-ns\n      \n- get service external-ip to access our app from browser\n\n  Hit `EXTERNAL_IP` on your browser\n  \n- **Congratulation our web application is now available for users! :rocket::rocket:**\n## Contributing\n\nContributions to this project are welcome and appreciated. To contribute, please follow these steps:\n\n1. Fork the repository to your own account.\n2. Create a new branch for your changes.\n3. Make your changes and commit them to your branch.\n4. Create a pull request to merge your changes into the main branch.\n\n## Acknowledgements\nWe would like to acknowledge the following individuals and resources for their contributions to this project:\n\n- Our instructors, for providing guidance and support throughout the project.\n- The Google Cloud Platform documentation, which served as a valuable resource for understanding the various GCP services and how they can be used together.\n- Jenkins and Kubernetes documentation, which provided helpful guidance on building our resources.\n- We would also like to thank our classmates and peers for their feedback and contributions to this project.\n\n## Contact\nIf you have any questions or suggestions regarding this project, please contact the project owner at muhammadhassanelzedy@gmail.com .\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fel-zedy%2Ffinal-project-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fel-zedy%2Ffinal-project-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fel-zedy%2Ffinal-project-app/lists"}