{"id":25428171,"url":"https://github.com/anqorithm/fastapi-helm-chart","last_synced_at":"2026-02-12T19:32:00.976Z","repository":{"id":277517365,"uuid":"932651021","full_name":"anqorithm/fastapi-helm-chart","owner":"anqorithm","description":"This repository contains a Helm chart for a FastAPI application to be deployed on OpenShift clusters with minimal effort with customizable configurations.","archived":false,"fork":false,"pushed_at":"2025-02-15T07:40:17.000Z","size":701,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-13T09:28:42.839Z","etag":null,"topics":["automation","cicd","deployment","devops","docker","fastapi","helm","k8s","kubernetes","oc","openshift","poetry","python","sre"],"latest_commit_sha":null,"homepage":"","language":"Smarty","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/anqorithm.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,"zenodo":null}},"created_at":"2025-02-14T09:16:06.000Z","updated_at":"2025-02-15T07:40:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"36e08888-09d7-40e0-a2c6-4fb8c6a29286","html_url":"https://github.com/anqorithm/fastapi-helm-chart","commit_stats":null,"previous_names":["anqorithm/fastapi-helm-chart"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/anqorithm/fastapi-helm-chart","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anqorithm%2Ffastapi-helm-chart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anqorithm%2Ffastapi-helm-chart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anqorithm%2Ffastapi-helm-chart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anqorithm%2Ffastapi-helm-chart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anqorithm","download_url":"https://codeload.github.com/anqorithm/fastapi-helm-chart/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anqorithm%2Ffastapi-helm-chart/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29378818,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T19:05:20.189Z","status":"ssl_error","status_checked_at":"2026-02-12T19:01:44.216Z","response_time":55,"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":["automation","cicd","deployment","devops","docker","fastapi","helm","k8s","kubernetes","oc","openshift","poetry","python","sre"],"created_at":"2025-02-17T01:38:10.004Z","updated_at":"2026-02-12T19:32:00.971Z","avatar_url":"https://github.com/anqorithm.png","language":"Smarty","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/fastapi-helm-openshift-logo.svg\" width=\"400\" alt=\"FastAPI Helm Chart\"\u003e\n\u003c/p\u003e\n\n\n[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/fastapi-helm-chart)](https://artifacthub.io/packages/search?repo=fastapi-helm-chart)\n[![Helm Version](https://img.shields.io/badge/Helm-v3.0%2B-blue)](https://helm.sh)\n[![OpenShift Version](https://img.shields.io/badge/OpenShift-v4.x-red)](https://www.openshift.com)\n[![Kubernetes](https://img.shields.io/badge/Kubernetes-v1.16%2B-326CE5)](https://kubernetes.io)\n[![FastAPI](https://img.shields.io/badge/FastAPI-0.100%2B-009688)](https://fastapi.tiangolo.com)\n[![Docker](https://img.shields.io/badge/Docker-v27%2B-2496ED)](https://www.docker.com)\n[![Poetry](https://img.shields.io/badge/Poetry-v1.8%2B-60A5FA)](https://python-poetry.org)\n[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n![GitHub last commit](https://img.shields.io/github/last-commit/anqorithm/fastapi-helm-chart)\n[![GitHub issues](https://img.shields.io/github/issues/anqorithm/fastapi-helm-chart)](https://github.com/anqorithm/fastapi-helm-chart/issues)\n[![GitHub pull requests](https://img.shields.io/github/issues-pr/anqorithm/fastapi-helm-chart)](https://github.com/anqorithm/fastapi-helm-chart/pulls)\n[![GitHub contributors](https://img.shields.io/github/contributors/anqorithm/fastapi-helm-chart)](https://github.com/anqorithm/fastapi-helm-chart/graphs/contributors)\n[![GitHub forks](https://img.shields.io/github/forks/anqorithm/fastapi-helm-chart)](https://github.com/anqorithm/fastapi-helm-chart/network)\n[![GitHub stars](https://img.shields.io/github/stars/anqorithm/fastapi-helm-chart)](https://github.com/anqorithm/fastapi-helm-chart/stargazers)\n[![GitHub watchers](https://img.shields.io/github/watchers/anqorithm/fastapi-helm-chart?style=social)](https://github.com/anqorithm/fastapi-helm-chart/watchers)\n\n# FastAPI Helm Chart\n\nThis repository contains a Helm chart for a FastAPI application to be deployed on OpenShift clusters with minimal effort with customizable configurations.\n\n## Prerequisites\n\n- Helm CLI (version 3+)\n- OpenShift Cluster (version 4.x recommended)\n- Docker (for building application images)\n- Poetry (for Python dependency management)\n\n\n![Checking version](./assets/2.png)\n\n## Configuration\n\nThe following tables describe the configurable parameters of the FastAPI Helm chart. You can override these values by creating your own values.yaml file.\n\n### Core Configuration\n| Parameter | Description | Default |\n|-----------|-------------|---------|\n| `replicaCount` | Number of replicas of the FastAPI application | `1` |\n\n### Image Configuration\n| Parameter | Description | Default |\n|-----------|-------------|---------|\n| `image.registry` | Docker registry for the FastAPI image | `\"\"` |\n| `image.repository` | Docker image repository | `\"\"` |\n| `image.tag` | Docker image tag | `\"\"` |\n| `image.pullPolicy` | Image pull policy (Always, IfNotPresent, Never) | `IfNotPresent` |\n| `imagePullSecrets` | Image pull secrets for private registries | `[]` |\n\n### Network Configuration\n| Parameter | Description | Default |\n|-----------|-------------|---------|\n| `service.type` | Kubernetes service type (ClusterIP, LoadBalancer, NodePort) | `ClusterIP` |\n| `service.port` | Service port for accessing the application | `80` |\n\n### Environment Variables (ConfigMap)\nYou can define as many environment variables as needed in the configMap. The chart comes with some default FastAPI application environment variables. These variables will be available to your FastAPI application at runtime.\n\n| Parameter | Description | Default |\n|-----------|-------------|---------|\n| `configMap.data.APP_NAME` | Name of the FastAPI application | `\"Example FastAPI App\"` |\n| `configMap.data.DEBUG` | Enable debug mode (true/false) | `false` |\n| `configMap.data.VERSION` | Application version | `\"0.1.0\"` |\n\nTo add or modify environment variables, you can update the `configMap.data` section in your values.yaml file. For example:\n\n```yaml\nconfigMap:\n  data:\n    APP_NAME: \"My FastAPI Application\"\n    DEBUG: \"false\"\n    VERSION: \"1.0.0\"\n    CUSTOM_VAR: \"custom-value\"  # Add your custom variables here\n```\n\n### OpenShift Route Configuration\n| Parameter | Description | Default |\n|-----------|-------------|---------|\n| `route.enabled` | Enable OpenShift route for external access | `false` |\n| `route.host` | Route hostname (e.g., myapp.apps.cluster.com) | `\"\"` |\n| `route.path` | Route path | `/` |\n| `route.tls.enabled` | Enable TLS for secure routes | `false` |\n| `route.tls.termination` | TLS termination type (edge, passthrough, reencrypt) | `edge` |\n| `route.tls.insecureEdgeTerminationPolicy` | How to handle insecure traffic | `Allow` |\n\n### Resource Management\n| Parameter | Description | Default |\n|-----------|-------------|---------|\n| `resources.limits.cpu` | Maximum CPU allocation | `\"\"` |\n| `resources.limits.memory` | Maximum memory allocation | `\"\"` |\n| `resources.requests.cpu` | Minimum CPU requirement | `\"\"` |\n| `resources.requests.memory` | Minimum memory requirement | `\"\"` |\n\n### Scheduling Configuration\n| Parameter | Description | Default |\n|-----------|-------------|---------|\n| `nodeSelector` | Node labels for pod assignment | `{}` |\n| `tolerations` | Pod tolerations for node taints | `[]` |\n| `affinity` | Pod affinity/anti-affinity rules | `{}` |\n\n\n## Build the Docker image\n\n### Build\n```bash\ndocker build -t {YOUR_DOCKER_REGISTRY}/{YOUR_DOCKER_IMAGE_NAME}:{YOUR_DOCKER_TAG} .\n```\n\n![Build](./assets/4.png)\n\n\n### Tag\n```bash\ndocker tag {YOUR_DOCKER_IMAGE_NAME}:{YOUR_DOCKER_TAG} {YOUR_DOCKER_REGISTRY}/{YOUR_DOCKER_IMAGE_NAME}:{YOUR_DOCKER_TAG}\n```\n\n![Tag](./assets/5.png)\n\n### Push\n```bash\ndocker push {YOUR_DOCKER_REGISTRY}/{YOUR_DOCKER_IMAGE_NAME}:{YOUR_DOCKER_TAG}\n```\n\n![Push](./assets/6.png)\n\n## Example of Implemented Values.yaml file\n\n```yaml\n# Number of application replicas to run\nreplicaCount: 1\n\n# Container image configuration\nimage:\n  repository: {YOUR_DOCKER_REGISTRY}  # e.g., quay.io/myorg/myapp\n  tag: {YOUR_DOCKER_TAG}  # e.g., latest, v1.0.0\n  pullPolicy: {YOUR_DOCKER_PULL_POLICY}  # Usually IfNotPresent or Always\n\n# Secrets for pulling images from private registries\nimagePullSecrets:\n  - name: {YOUR_IMAGE_PULL_SECRET_NAME}\n\n# Optional name overrides\nnameOverride: \"\"\nfullnameOverride: \"\"\n\n# Service configuration for accessing your application\nservice:\n  type: LoadBalancer  # Can be ClusterIP, LoadBalancer, or NodePort\n  port: 80  # Port your service will listen on\n\n# Environment variables for your application\nconfigMap:\n  data:\n    APP_NAME: {YOUR_APP_NAME}  # e.g., \"My FastAPI App\"\n    DEBUG: {YOUR_DEBUG_VALUE}  # e.g., \"false\"\n    VERSION: {YOUR_VERSION}  # e.g., \"1.0.0\"\n    # Add your custom environment variables here\n\n# Resource limits and requests\nresources:\n  limits:\n    cpu: 100m  # 100 millicores = 0.1 CPU\n    memory: 128Mi  # 128 megabytes\n  requests:\n    cpu: 100m\n    memory: 128Mi\n\n# Pod scheduling configurations\nnodeSelector: {}  # Add node selectors if needed\n\ntolerations: []  # Add tolerations if needed\n\naffinity: {}  # Add affinity rules if needed\n```\n\n## Add the repository to your Helm CLI\n\n```bash\nhelm repo add fastapi-helm-chart https://anqorithm.github.io/fastapi-helm-chart/charts/fastapi\n```\n\n## Install the chart\n\n```bash\nhelm install my-fastapi-helm-chart fastapi-helm-chart/fastapi-helm-chart --version 0.0.4\n```\n\n## Installation\n\nTo install the chart with the release name \"fastapi-chart\":\n\n#### Clone the repository\n\n```bash\ngit clone https://github.com/anqorithm/fastapi-helm-chart.git\n```\n\n\n#### Install the chart\n\n```bash\nhelm install fastapi-chart ./charts/fastapi\n```\n\n![Install](./assets/7.png)\n\n#### Open OpenShift to see the application\n\n![OpenShift](./assets/8.png)\n\n\n#### Create a route to access the application\n\n![Route](./assets/9.png)\n\n\n#### Access the application\n\n![Access](./assets/10.png)\n\n![Access](./assets/11.png)\n\n\nThis will deploy your FastAPI application to the OpenShift cluster using the default configuration values. For custom configurations, create a values.yaml file with your desired settings and use:\n\n```bash\nhelm install fastapi-chart ./charts/fastapi -f values.yaml\n```\n\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a PR.\n\n\n## Contributors\n\n- [Abdullah Alqahtani](https://github.com/anqorithm)\n\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n\n## Acknowledgments\n\n- [FastAPI](https://fastapi.tiangolo.com)\n- [OpenShift](https://www.openshift.com)\n- [Kubernetes](https://kubernetes.io)\n- [Helm](https://helm.sh)\n- [Artifact Hub](https://artifacthub.io)\n- [Poetry](https://python-poetry.org)\n- [Docker](https://www.docker.com)\n- [GitHub](https://github.com)\n- [Bitbucket](https://bitbucket.org)","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanqorithm%2Ffastapi-helm-chart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanqorithm%2Ffastapi-helm-chart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanqorithm%2Ffastapi-helm-chart/lists"}