{"id":19902603,"url":"https://github.com/keivanipchihagh/hello-k8s","last_synced_at":"2026-04-13T06:51:35.090Z","repository":{"id":193891254,"uuid":"689611437","full_name":"keivanipchihagh/hello-k8s","owner":"keivanipchihagh","description":"Hello-World, written in Python, served by Flask, integrated with GitHub Actions, Packaged by Helm, orchestrated by Kubernetes and Delivered with FluxCD","archived":false,"fork":false,"pushed_at":"2024-10-31T16:17:14.000Z","size":446,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-11T21:22:33.657Z","etag":null,"topics":["actions","cicd","flask","flux","fluxcd","hello-word","helm-charts","kubernetes","python"],"latest_commit_sha":null,"homepage":"","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/keivanipchihagh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-09-10T11:22:05.000Z","updated_at":"2024-10-31T16:17:17.000Z","dependencies_parsed_at":"2025-01-11T21:21:42.307Z","dependency_job_id":"4972c233-a767-4b3d-ae5e-fc4e30240dde","html_url":"https://github.com/keivanipchihagh/hello-k8s","commit_stats":null,"previous_names":["keivanipchihagh/hello-k8s"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keivanipchihagh%2Fhello-k8s","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keivanipchihagh%2Fhello-k8s/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keivanipchihagh%2Fhello-k8s/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keivanipchihagh%2Fhello-k8s/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keivanipchihagh","download_url":"https://codeload.github.com/keivanipchihagh/hello-k8s/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241329419,"owners_count":19944985,"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":["actions","cicd","flask","flux","fluxcd","hello-word","helm-charts","kubernetes","python"],"created_at":"2024-11-12T20:18:37.418Z","updated_at":"2026-04-13T06:51:30.050Z","avatar_url":"https://github.com/keivanipchihagh.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# hello-k8s\nSimple Hello-World single-page site, written in [Python](https://www.python.org/), served by [Flask](https://flask.palletsprojects.com/), integrated with [GitHub Actions](https://github.com/features/actions), Packaged by [Helm](https://helm.sh/), orchestrated by [Kubernetes](https://kubernetes.io/) and Delivered with [FluxCD](https://fluxcd.io/). *Oh wait*, that's the an entire **CI/CD**! 🚀\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./archive/img/logo.png\" /\u003e\n\u003c/p\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\u003ca href=\"#what-is-a-cicd\"\u003eWhat is a CI/CD?\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#install-kubernetes\"\u003eInstall Kubernetes\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#install-helm\"\u003eInstall Helm\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#install-flux\"\u003eInstall flux\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#components\"\u003eComponents\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#python\"\u003ePython\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#flask\"\u003eFlask\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#github-actions\"\u003eGitHub Actions\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#kubernetes\"\u003eKubernetes\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#helm\"\u003eHelm\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#fluxcd\"\u003eFluxCD\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n## What is a CI/CD?\nCI and CD stand for **continuous integration** and **continuous delivery**/**continuous deployment**. In other words, CI is a modern software development practice in which incremental code changes are made frequently and reliably.\n\n\u003c!-- Installation --\u003e\n## Installation\n### Install Kubernetes\nYou can follow the [official](https://kubernetes.io/docs/setup/production-environment/tools/) documentation to install a Kubernetes Cluster on production environment. In case you believe the documentation is written in japanese, follow [this](https://www.linuxtechi.com/install-kubernetes-on-ubuntu-22-04/) tutorial.\n\n### Install Helm\nTo install Helm3, run the script below which will automatically connect to your Kubernetes cluster:\n```bash\ncurl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash\n```\n\n### Install flux\nInstalling FluxCD is as easy as running the below script:\n```bash\ncurl -s https://fluxcd.io/install.sh | sudo bash\n```\nHowever, to bootstamp FluxCD to your repository, follow [these](https://fluxcd.io/flux/installation/) instructions.\n\n\u003c!-- Components --\u003e\n## Components\n### Python\n[Python](https://www.python.org/) is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation. Python is dynamically typed and garbage-collected. It supports multiple programming paradigms, including structured, object-oriented and functional programming ([wikipedia](https://en.wikipedia.org/wiki/Python_(programming_language))).\n\n### Flask\n[Flask](https://flask.palletsprojects.com/) is a micro web framework written in Python. It is classified as a microframework because it does not require particular tools or libraries. It has no database abstraction layer, form validation, or any other components where pre-existing third-party libraries provide common functions ([wikipedia](https://en.wikipedia.org/wiki/Flask_(web_framework))).\n\n### GitHub Actions\n[GitHub Actions](https://github.com/features/actions) makes it easy to automate all your software workflows, now with world-class CI/CD. Build, test, and deploy your code right from GitHub. Make code reviews, branch management, and issue triaging work the way you want ([github](https://github.com/features/actions)).\n\n### Kubernetes\n[Kubernetes](https://kubernetes.io/) is an open-source container orchestration system for automating software deployment, scaling, and management. Originally designed by Google, the project is now maintained by the Cloud Native Computing Foundation. The name Kubernetes originates from Ancient Greek, meaning 'helmsman' or 'pilot' ([wikipedia](https://en.wikipedia.org/wiki/Kubernetes)).\n\n### Helm\n[Helm](https://helm.sh/) is a tool that automates the creation, packaging, configuration, and deployment of Kubernetes applications by combining your configuration files into a single reusable package. In a microservice architecture, you create more microservices as the application grows, making it increasingly difficult to manage ([circleci](https://circleci.com/blog/what-is-helm/#:~:text=Helm%20is%20a%20tool%20that,it%20increasingly%20difficult%20to%20manage.)).\n\n### FluxCD\n[FluxCD](https://fluxcd.io/) is a Continuous Delivery tool to help keep Kubernetes clusters in sync with configuration sources such as Git repositories and automate configuration updates when available. Flux is built with the GitOps toolkit and supports multi-tenancy and syncing an arbitrary number of Git repositories ([internaldeveloperplatform](https://internaldeveloperplatform.org/cd-operators/flux-cd/)).\n\n\n\u003c!-- USAGE --\u003e\n## Usage\nYou need the following files under your FluxCD bootstrap repository:\n\n`namespace.yaml`:\n```yaml\napiVersion: v1\nkind: Namespace\nmetadata:\n    name: hello-k8s\n```\n`source.yaml:`\n```yaml\napiVersion: source.toolkit.fluxcd.io/v1beta2\nkind: GitRepository\nmetadata:\n  name: hello-k8s\n  namespace: hello-k8s\nspec:\n  interval: 5m\n  url: https://github.com/keivanipchihagh/hello-k8s\n  ref:\n    branch: main\n  ignore: |-\n    # exclude all\n    /*\n    # include charts directory\n    !/charts/\n```\n`release.yaml`:\n```yaml\napiVersion: helm.toolkit.fluxcd.io/v2beta1\nkind: HelmRelease\nmetadata:\n  name: hello-k8s\n  namespace: hello-k8s\nspec:\n  interval: 1m\n  releaseName: hello-k8s\n  chart:\n    spec:\n      chart: charts\n      sourceRef:\n        kind: GitRepository\n        name: hello-k8s\n  install:\n    createNamespace: true\n```\n`kustomization.yaml`:\n```yaml\napiVersion: kustomize.config.k8s.io/v1beta1\nkind: Kustomization\nresources:\n  - namespace.yaml\n  - source.yaml\n  - release.yaml\n```\n\n\u003c!-- CONTRIBUTING --\u003e\n## Contributing\nContributions are warmly welcomed. In case you have a suggestion, please fork the repo and create a pull request. You can also simply open an issue with the relevant tags.\n\n⭐ Also, don't forget to give the project a star!\n\n\u003c!-- LICENSE --\u003e\n## License\nDistributed under the MIT License. See `LICENSE` for more information.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeivanipchihagh%2Fhello-k8s","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeivanipchihagh%2Fhello-k8s","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeivanipchihagh%2Fhello-k8s/lists"}