{"id":19499766,"url":"https://github.com/apsl/kubernetes-charts","last_synced_at":"2025-10-28T23:02:00.111Z","repository":{"id":29754769,"uuid":"120876512","full_name":"APSL/kubernetes-charts","owner":"APSL","description":"Helm Charts to deploy Django apps in Kubernetes","archived":false,"fork":false,"pushed_at":"2021-11-25T15:46:23.000Z","size":2660,"stargazers_count":52,"open_issues_count":2,"forks_count":13,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-01-08T10:09:52.025Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Mustache","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/APSL.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}},"created_at":"2018-02-09T08:07:25.000Z","updated_at":"2024-12-19T12:31:21.000Z","dependencies_parsed_at":"2022-08-07T14:30:43.698Z","dependency_job_id":null,"html_url":"https://github.com/APSL/kubernetes-charts","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/APSL%2Fkubernetes-charts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/APSL%2Fkubernetes-charts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/APSL%2Fkubernetes-charts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/APSL%2Fkubernetes-charts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/APSL","download_url":"https://codeload.github.com/APSL/kubernetes-charts/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240746953,"owners_count":19850998,"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-11-10T22:06:15.201Z","updated_at":"2025-10-28T23:02:00.056Z","avatar_url":"https://github.com/APSL.png","language":"Mustache","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Overview\n\nUse this repository to submit Charts for Helm. All of them are used into\nAPSL organitzation to deploy our Django applications over GKE.\n\n\n\u003cimg src=\"./images/django-nginx-uwsgi.png\" width=\"20%\" height=\"20%\"\u003e \u003cimg src=\"./images/django-uwsgi.png\" width=\"20%\" height=\"20%\"\u003e \u003cimg src=\"./images/nginx-uwsgi.png\" width=\"20%\" height=\"20%\"\u003e \u003cimg src=\"./images/nginx.png\" width=\"20%\" height=\"20%\"\u003e\n\u003cimg src=\"./images/thumbor.png\" width=\"20%\" height=\"20%\"\u003e \u003cimg src=\"./images/uwsgi.png\" width=\"20%\" height=\"20%\"\u003e \u003cimg src=\"./images/varnish.png\" width=\"20%\" height=\"20%\"\u003e\n\n\n# Dependencies\n\n\n## Helm \u0026 Tiller\n\nFirst of all you need to install the `Helm` client following the next \ninstructions:\n\n```bash\ncurl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get \u003e get_helm.sh\nchmod 700 get_helm.sh\n./get_helm.sh\n```\n\nFor deploys is also needed the server portion of Helm, `Tiller` (it\ntalks to a remote Kubernetes cluster).\nTo install it into the cluster, simply runs:\n\n```bash\nhelm init\n```\n\nAfter the Helm 2 update, there were some changes that caused changes to the \nHelm package generation process for this repository and required additional \nsoftware.\nCurrently, you require install `ChartMuseum` following the next instructions:\n```bash\ncurl -LO https://s3.amazonaws.com/chartmuseum/release/latest/bin/linux/amd64/chartmuseum\nchmod +x ./chartmuseum\nmv ./chartmuseum /usr/local/bin\n```\n\nFor more information take a look at:\n[Install Helm](https://docs.helm.sh/using_helm/#installing-helm)\n[Install ChartMuseum](https://chartmuseum.com/docs/#installation)\n\n\n## Packages\n\nTo use this repository as a k8s charts repository for deploy your apps\nyou have to configure helm adding it:\n\n```bash\nhelm repo add apsl https://raw.githubusercontent.com/APSL/kubernetes-charts/master/packages/\n```\n\nCheck that it has been added.\n\n```bash\nhelm repo list\n\nNAME     \tURL\nstable      https://charts.helm.sh/stable                    \nincubator\thttps://charts.helm.sh/incubator\napsl     \thttps://raw.githubusercontent.com/APSL/kubernetes-charts/master/packages/\nlocal    \thttp://127.0.0.1:8879\n\n```\n## Helm upgrade\n\nAfter Helm upgrade  \n\n# Structure of repository\n\n```ignore\nkubernetes-charts/    \n├── packages/                           # Reult folder where construct temporaly packages before be installed.\n|    ...\n|    ├── index.yaml                     # Contains the configuration for a django app deployment.\n|    ├── django-nginx-uwsgi-0.1.1.tgz   # Django package. It includes nginx, uwsgi, redis, varnish packages.\n|    ├── uwsgi-0.1.1.tgz                # Uwsgi package.\n|    └── varnish-0.1.0.tgz              # Varnish package.\n...\n├── django/                             # Contains the configuration for a django app deployment.\n|    ├── .helmignore                    # List of patterns to ignore when build the package.\n|    ├── Chart.yaml                     # A YAML file containing information about the chart.\n|    ├── requirements.yaml              # List of required charts and their overriden configuration.\n|    ├── values.yaml                    # The default configuration values for this chart\n|    ├── charts/                        # Include all dependency packages\n|    |                                  # IMPORTANT: No commit packages into.\n|    └── templates/                     # A directory of templates that, when combined with values.\n|        └── _helpers.tpl               # Difinition of template variables.\n|                                       # Note that not require templates because this chart only encapsulate\n|                                       # dependencies.\n...\n└── uwsgi/                              # Contains the configuration for a uwsgi deployment.\n     ├── charts/                        # Folder that contains built packages for the dependecies of this chart.\n     |                                  # IMPORTANT: No commit packages into, will be auto-generated.\n     ├── .helmignore                    # List of patterns to ignore when build the package.\n     ├── Chart.yaml                     # A YAML file containing information about the chart.\n     ├── requirements.yaml              # List of required charts and their overriden configuration.\n     ├── values.yaml                    # The default configuration values for this chart\n     └── templates/                     # A directory of templates that, when combined with values.\n         ├── NOTES.txt                  # A plain text file containing short usage notes (rendered with Go Template engine)\n         ├── _helpers.tpl               # Definition of template variables.\n         ├── deployment.yaml            # Structure of deployment for this chart.\n         ├── secrets.yaml               # Base secrets for the chart.\n         └── service.yaml               # Structure of service for this chart.\n```\n\nTake a look to [The Chart File Structure](https://github.com/kubernetes/helm/blob/master/docs/charts.md) to get\nacquainted to chart structure.\n\n\n## Charts information\n\n- The [django-nginx-uwsgi](django-nginx-uwsgi/README.md) Chart.\n- The [django-celery](django-celery/README.md) Chart.\n- The [nginx](nginx/README.md) Chart.\n- The [varnish](varnish/README.md) Chart.\n- The [thumbor](thumbor/README.md) Chart.\n\n\n# How to\n\nThis section will try to explain you how to use this repository to\ndeploy your applications.\n\n\n## How to deploy a chart over Kubernetes?\n\nWill show you the procedure to deploy a Django application using this\ncharts.\n\nThis example we'll deploy an app called **_demo_**, suposing you satisfy\nall dependencies.\n\n1. Deploy the Django application.\n\n```bash\nhelm install PACKAGE --version VERSION --namespace NAMESPACE --name RELEASE_NAME -f VALUES\n```\n\n* *PACKAGE* \u0026rarr; The path to stored package.\n* *VERSION* \u0026rarr; The exact version of the package to install.\nIf it is not set the last version will be deployed.\n* *NAMESPACE* \u0026rarr; The namespace that will be create on\n _Google Cloud Platform_ and will be user with in the deployment.\n* *RELEASE_NAME* \u0026rarr; It must has a different value to\n_namespace_. It is used in the deployment and dependencies deployments.\n* *VALUES* \u0026rarr; Path to the file where are all values that\noverrides the Helm chart, for example `SECRET_KEY` or\n`DATABASE_PASSWORD`, etc.\n\n```bash\nhelm install apsl/django-nginx-uwsgi --version 0.1.1 --namespace demo --name r-demo -f your_demo_app_values.yaml\n```\n\n\n## How to test your deployment before apply it on your K8s cluster?\n\nHelm Template is a plugin used to render the resultant deployment of\nyour chart.\n\n1. Install:\n\n```bash\nhelm plugin install https://github.com/technosophos/helm-template\n```\n\n2. Use it:\n\n```bash\nhelm template -n NAMESPACE -r RELEASE_NAME -f VALUES --notes CHART \u003e output.yaml\n```\n\n* *NAMESPACE* \u0026rarr; The namespace used with in deployment.\n* *RELEASE_NAME* \u0026rarr; The release name used with in deployment.\n* *VALUES* \u0026rarr; Override specific values for application.\n* *CHART* \u0026rarr; Location path to the chart.\n\n```bash\nhelm template -n demo -r r-demo -f your_demo_app_values.yaml --notes . \u003e ~/k8s-deployment.yaml\n```\n\n## Structure example of data values\n\nThis section show you how structure the values to deploy a single\napplication using `django-nginx-uwsgi` chart.\n\n```\n# your_demo_app_values.yaml\nglobal:\n  image:\n    uwsgi: eu.gcr.io/project/my-app-uwsgi\n    nginx: eu.gcr.io/project/my-app-nginx\n\n  dataConfigMap:\n    - name: REDIS_HOST\n      value: \"10.0.0.1\"\n    - name: DEFAULT_FROM_EMAIL\n      key: django.emailDefaultFromEmail\n      value: Demo \u003cinfo@demo.org\u003e\n    - name: AWS_STORAGE_BUCKET_NAME\n      value: my-app-prod\n    - name: AWS_ACCESS_KEY_ID\n      value: aws-key-id\n\n  dataSecrets:\n    - name: AWS_SECRET_ACCESS_KEY\n      value: secret-aws-access-ley\n\napp:\n  deployment:\n    probes:\n      livenessEnabled: true\n      liveness:\n        enabled: false\n\n  replicaCount: 1\n\n  strategy:\n    rollingUpdate:\n      maxSurge: 1\n      maxUnavailable: 0\n    type: RollingUpdate\n\n  secrets:\n    secretKey: django-secret-key-value\n    passwordDB: django-passwd-db-value\n    sentryDSN: sentry-dsn-value\n\n  configMap:\n    enableSentry: \"True\"\n    databaseHost: 127.0.0.1\n    databaseName: myappdb\n    databasePort: \"5432\"\n    databaseUser: usrmyapp\n    enableBasicAuth: \"False\"\n    enableHttpsRedirect: \"True\"\n    enable3wRedirect: \"True\"\n\nvarnish:\n  enabled: true\n\ncrons:\n  enabled: false\n\nredis:\n  enabled: false\n\n```\n\n# Contributors\n\n\n## Developing new Helm charts\n\nThere are some notes and some command line instructions that can be\nuseful as a guide how to develop new charts.\n\nTo create a new chart:\n\n```bash\nhelm create CHART\n```\n\n* *CART* \u0026rarr; Full path to destination chart.\n\n```bash\nhelm create django-nginx-uwsgi\n```\n\nAfter develop your template chart, you can validate if your chart is valid running a **lint**.\n\n```bash\nhelm lint django-nginx-uwsgi\n```\n\n\n## Building package\n\nIf you contribute creating new Charts or improving the existent you\nshould do this:\n\n* Serve your packages locally\n* Resolve repository dependencies (local repository)\n* Update dependent locally repositories your Chart\n* Generate your package\n* Regenerate index-yaml\n\nTo simplify all this tasks, you only have to execute this:\n\n```bash\nmake helm-up \u0026 \\\nmake helm-packages \u0026\u0026 \\\nhelm repo index packages\n```\n\n*NOTE:* Its possible see some non-liveness message using make command\nto build packages. If the message is like _\"No requirements found in\n~/kubernetes-charts/nginx-uwsgi/charts\"_ ignore it.\nIt is because the commnand script try to get dependencies of all\npackages even if it has not _charts_ (the dependency folder).\n\n\n### Use case:\n\nWe will generate a new chart **_packagedemo_**:\n\n0. Create the chart\n```bash\nhelm create packagedemo\n```\n1. Serve built local packages:\n```bash\ncd packages\nhelm serve\n```\n2. Build all dependent packages:\n```bash\nhelm package -u -d packages uwsgi\nhelm package -u -d packages nginx\nhelm package -u -d packages packagedemo\n```\nor use the Makefile commands:\n```bash\nmake helm-packages\n```\n3. Generate index\n```bash\nhelm repo index packages\n```\nor use the Makefile commands:\n```bash\nmake helm-index\n```\n4. Test to show resultant _yaml_ for deployment:\n```bash\nhelm template packages/packagedemo-0.0.1.tgz -n demo -r r-demo -f your_demo_app_values.yaml --notes . \u003e ~/k8s-deployment.yaml\n```\nor \n```bash\nhelm template ./django-nginx-uwsgi\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapsl%2Fkubernetes-charts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapsl%2Fkubernetes-charts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapsl%2Fkubernetes-charts/lists"}