{"id":16366583,"url":"https://github.com/steebchen/portus-helm","last_synced_at":"2026-01-26T12:15:10.059Z","repository":{"id":85824589,"uuid":"184252850","full_name":"steebchen/portus-helm","owner":"steebchen","description":"Mirror of Portus chart for integration in Rancher catalogs","archived":false,"fork":false,"pushed_at":"2019-04-30T11:50:02.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-31T01:40:51.334Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://github.com/kubic-project/caasp-services/tree/master/contrib/helm-charts/portus","language":"Smarty","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/steebchen.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":"2019-04-30T11:49:33.000Z","updated_at":"2020-10-30T00:34:42.000Z","dependencies_parsed_at":"2023-03-13T06:56:12.846Z","dependency_job_id":null,"html_url":"https://github.com/steebchen/portus-helm","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/steebchen%2Fportus-helm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steebchen%2Fportus-helm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steebchen%2Fportus-helm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steebchen%2Fportus-helm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/steebchen","download_url":"https://codeload.github.com/steebchen/portus-helm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239828129,"owners_count":19703805,"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-11T02:46:57.509Z","updated_at":"2026-01-26T12:15:10.024Z","avatar_url":"https://github.com/steebchen.png","language":"Smarty","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Portus\n\n[Portus](http://port.us.org/) Portus is an open source authorization service and user interface for the next generation\nDocker Registry.\n\n## TL;DR;\n\n```console\n$ helm install incubator/portus\n```\n\n## Introduction\n\nThis chart bootstraps a [Portus](http://port.us.org/) deployment on a [Kubernetes](http://kubernetes.io) cluster using\nthe [Helm](https://helm.sh) package manager.\n\nIt also packages the [Bitnami MariaDB chart](https://github.com/kubernetes/charts/tree/master/stable/mariadb) which is\nrequired for bootstrapping a MariaDB deployment for the database requirements of the Portus application.\n\n## Prerequisites\n\n- Kubernetes 1.4+ with Beta APIs enabled\n- PV provisioner support in the underlying infrastructure\n\n## Installing the Chart\n\nTo install the chart with the release name `my-release`:\n\n```console\n$ helm install --name my-release incubator/portus\n```\n\n## Uninstalling the Chart\n\nTo uninstall/delete the `my-release` deployment:\n\n```console\n$ helm delete my-release\n```\n\nThe command removes nearly all the Kubernetes components associated with the\nchart and deletes the release.\n\n## Portus TLS\n\nTo run Portus securely you'll need an SSL key and certificate that cover the domain names that the Portus,\nDocker registry and Nginx services use. This chart does not use TLS by default, but it does support a TLS\ninstallation.\n\nTo use TLS you must set `portus.tls.enabled` to true.\n\nYou will need to generate an appropriate key and certificate if you would like to install the chart securely.\n\nIf you would like to enable TLS for the Portus installation you will need to store your key in the value\n`portus.tls.key` and the certificate in the value `portus.tls.cert`\n\n## Configuration\n\nThe following tables lists the configurable parameters of the portus chart and their default values.\n\n| Parameter                                         | Description                                | Default                                         |\n| ------------------------------------------------- | ------------------------------------------ | ----------------------------------------------- |\n| `portus.replicas`                                 | Portus deployment replica count            | ``                                              |\n| `portus.image.repository`                         | Portus image repository name               | `opensuse/portus`                               |\n| `portus.image.tag`                                | Portus image tag name                      | `2.3`                                           |\n| `portus.image.pullPolicy`                         | Portus image pull policy                   | `IfNotPresent`                                  |\n| `portus.service.port`                             | Portus service port                        | `3000`                                          |\n| `portus.resources.requests.memory`                | Portus memory resources                    | `512Mi`                                         |\n| `portus.resources.requests.cpu`                   | Portus cpu resources                       | `300m`                                          |\n| `portus.dbAdapter`                                | Database adapter Portus should use         | `mysql2`                                        |\n| `portus.dbHost`                                   | Name of host providing database            | ``                                              |\n| `portus.dbDatabase`                               | Name of database Portus will use           | ``                                              |\n| `portus.dbUsername`                               | Name of database user Portus will use      | ``                                              |\n| `portus.dbPassword`                               | Password to connect to database            | ``                                              |\n| `portus.password`                                 | Password used for background job user      | _random 10 character long alphanumeric string_  |\n| `portus.secretKeyBase`                            | Ruby on Rails secret app key               | _random 128 character long alphanumeric string_ |\n| `portus.config.email.from`                        | Email from address                         | `portus@example.com`                            |\n| `portus.config.email.name`                        | Email from name                            | `Portus`                                        |\n| `portus.config.email.reply_to`                    | Email reply-to                             | `no-reply@example.com`                          |\n| `portus.config.email.smtp.enabled`                | Enable SMTP email                          | `false`                                         |\n| `portus.config.email.smtp.address`                | SMTP address                               | `smtp.example.com`                              |\n| `portus.config.email.smtp.port`                   | SMTP config                                | `587`                                           |\n| `portus.config.email.smtp.domain`                 | SMTP port                                  | `example.com`                                   |\n| `portus.config.gravatar`                          | Use Gravatar                               | `true`                                          |\n| `portus.config.delete`                            | Allow repository deletion                  | `true`                                          |\n| `portus.config.first_user_admin`                  | Make initial user admin                    | `true`                                          |\n| `portus.config.signup`                            | Allow guests accounts                      | `true`                                          |\n| `portus.config.display_name`                      | Allow users to have display names          | `false`                                         |\n| `portus.config.user_permission.change_visibility` | Users can edit namespace visibility        | `true`                                          |\n| `portus.config.user_permission.create_team`       | Users can creat teams                      | `true`                                          |\n| `portus.config.user_permission.manage_team`       | Users can edit teams                       | `true`                                          |\n| `portus.config.user_permission.create_namespace`  | Users can create namespaces                | `true`                                          |\n| `portus.config.user_permission.manage_namespace`  | Users can edit namespaces                  | `true`                                          |\n| `portus.config.security.clair.server`             | Name of Clair server                       | ``                                              |\n| `portus.config.security.clair.health_port`        | Health port Clair is using                 | `6061`                                          |\n| `portus.config.security.zypper.server`            | Name of ZypperDocker server                | ``                                              |\n| `portus.config.anonymous_browsing`                | Allow anonymous repository browsing        | `true`                                          |\n| 'portus.config.ldap.enabled                       | Enable ldap authentication                 | `false`                                         |\n| 'portus.config.ldap.url                           | ldap url                                   | ``                                              |\n| 'portus.config.ldap.port                          | ldap port                                  | ``                                              |\n| 'portus.config.ldap.method                        | connection method                          | `plain`                                         |\n| 'portus.config.ldap.base                          | base where users are located               | ``                                              |\n| 'portus.config.ldap.uid                           | user filter                                | ``                                              |\n| 'portus.config.ldap.authentication.enabled        | enable authentication for query            | `false`                                         |\n| 'portus.config.ldap.authentication.bind_dn        | bind user                                  | ``                                              |\n| 'portus.config.ldap.authentication.password       | bind password                              | ``                                              |\n| 'portus.config.ldap.guess_email.enabled           | enable email guessing                      | `false`                                         |\n| 'portus.config.ldap.guess_email.attr              | attribute inside LDIF record               | ``                                              |\n| `portus.env.log_level`                            | log level                                  | `info`                                          |\n| `portus.tls.enabled`                              | Determines if internal services use tls    | `false`                                         |\n| `portus.tls.key`                                  | SSL key for internal services              | ``                                              |\n| `portus.tls.cert`                                 | SSL certificate for internal services      | ``                                              |\n| `portus.background.enabled`                       | Run background Portus jobs                 | `true`                                          |\n| `portus.background.resources.requests.memory`     | Portus background process memory resources | `512Mi`                                         |\n| `portus.background.resources.requests.cpu`        | Portus background process cpu resources    | `300m`                                          |\n| `registry.replicas`                               | Docker registry deployment replica count   | `1`                                             |\n| `registry.mountPath`                              | Path uploaded images are stored at         | `/storage`                                      |\n| `registry.persistence.enabled`                    | Docker registry use persistent storage     | `true`                                          |\n| `registry.persistence.accessMode`                 | Docker registry persistence access mode    | `ReadWriteOnce`                                 |\n| `registry.persistence.capacity`                   | Docker registry persistence capacity       | `10Gi`                                          |\n| `registry.image.repository`                       | Docker registry image repository name      | `library/registry`                              |\n| `registry.image.tag`                              | Docker registry image tag name             | `latest`                                        |\n| `registry.image.pullPolicy`                       | Docker registry image pull policy          | `IfNotPresent`                                  |\n| `registry.service.port`                           | Docker registry API port                   | `5000`                                          |\n| `registry.service.debugPort`                      | Docker registry debug port                 | `5001`                                          |\n| `registry.resources.requests.memory`              | Registry deployment memory resources       | `512Mi`                                         |\n| `registry.resources.requests.cpu`                 | Registry deployment cpu resources          | `300m`                                          |\n| `nginx.replicas`                                  | Nginx deployment replica count             | `1`                                             |\n| `nginx.image.repository`                          | Nginx image repository name                | `library/nginx`                                 |\n| `nginx.image.tag`                                 | Nginx image tag name                       | `alpine`                                        |\n| `nginx.image.pullPolicy`                          | Nginx registry image pull policy           | `IfNotPresent`                                  |\n| `nginx.host`                                      | Domain name nginx proxy should use         | ``                                              |\n| `nginx.service.type`                              | Nginx service type                         | `ClusterIP`                                     |\n| `nginx.service.port`                              | Nginx internal port                        | `80`                                            |\n| `nginx.service.nodePort`                          | Nginx external port                        | ``                                              |\n| `nginx.ingress.enabled`                           | Determines if nginx proxy uses ingress     | `false`                                         |\n| `nginx.ingress.annotations`                       | Nginx ingress annotations                  | `{}`                                            |\n| `nginx.ingress.tls.enabled`                       | Determines if ingress uses TLS             | `[]`                                            |\n| `nginx.resources.requests.memory`                 | Nginx deployment memory resources          | `512Mi`                                         |\n| `nginx.resources.requests.cpu`                    | Nginx deployment cpu resources             | `300m`                                          |\n| `mariadb.enabled`                                 | Mariadb chart should be installed          | `true`                                          |\n| `mariadb.persistence.enabled`                     | Mariadb use persistent storage             | `false`                                         |\n| `mariadb.persistence.accessMode`                  | Mariadb persistence access mode            | `ReadWriteOnce`                                 |\n| `mariadb.persistence.size`                        | Mariadb persistence capacity               | `8Gi`                                           |\n| `mariadb.mariadbUser`                             | Mariadb user account name                  | `portus`                                        |\n| `mariadb.mariadbDatabase`                         | Mariadb database name                      | `portus`                                        |\n\nSpecify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,\n\n```console\n$ helm install --name my-release --set portus.replicas=2 incubator/portus\n```\n\nThe above command will install Portus with a deployment set up to use two replicas.\n\nAlternatively, a YAML file that specifies the values for the above parameters can be provided while installing the\nchart. For example,\n\n```console\n$ helm install --name my-release -f values.yaml incubator/portus\n```\n\n\u003e **Tip**: You can use the default [values.yaml](values.yaml)\n\n## Persistence\n\nThe [Docker Registry](https://hub.docker.com/_/registry/) image stores the image data at the\n`.Values.registry.persistence.storagePath` path of the container.\n\nPersistent Volume Claims are used to keep the data across deployments. This is known to work in GCE, AWS, and\nminikube. See the [Configuration](#configuration) section to configure the PVC or to disable persistence.\n\n## Ingress\n\nThis chart provides support for ingress resources. If you have an ingress controller installed on your cluster,\nsuch as [nginx-ingress](https://kubeapps.com/charts/stable/nginx-ingress) or [traefik](https://kubeapps.com/charts/stable/traefik)\nyou can utilize the ingress controller to service your Portus application.\n\nTo enable ingress set `nginx.ingress.enabled` to `true`.\n\n### Host\nThe host set in `nginx.ingress.host` will be set as the host associated with the nginx proxy, which is the\nentrypoint into both the Portus application, and the Docker registry.\n\n### Annotations\nFor annotations, please see\n[this document](https://github.com/kubernetes/ingress-nginx/blob/master/docs/annotations.md).\nNot all annotations are supported by all ingress controllers, but this document does a good job of\nindicating which annotation is supported by many popular ingress controllers.\n\n### TLS Secrets\nIf your cluster allows automatic creation/retrieval of TLS certificates\n(e.g. [kube-lego](https://github.com/jetstack/kube-lego)), please refer to the documentation for\nthat mechanism.\n\nTo manually configure TLS for ingress, first create/retrieve a key \u0026 certificate pair for the address you\nwish to protect. Then create a TLS secret in the namespace:\n\n```console\nkubectl create secret tls portus-tls --cert=path/to/tls.cert --key=path/to/tls.key\n```\n\nInclude the secret's name, along with the desired hostnames, in the `nginx.ingress.tls`\nsection of your custom `values.yaml` file.\n\n## MariaDB\n\nBy default, this chart will use a MariaDB database deployed as a chart dependency. You can\nalso bring your own MariaDB. To do so set `mariadb.enabled` to `false`, and set\n`portus.productionHost` to the address of the host providing the MariaDB that you would like\nto use, and `portus.productionPassword` to the password of the database you would like to use.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteebchen%2Fportus-helm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsteebchen%2Fportus-helm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteebchen%2Fportus-helm/lists"}