helm-charts/pypiserver/README.md
2021-01-17 04:09:41 +03:00

86 lines
7.2 KiB
Markdown

# PyPi Sever Helm Chart
This chart installs a PyPI server
## Prerequisites Details
- Kubernetes 1.6+
- PV dynamic provisioning support on the underlying infrastructure
## Todo
- Document a setup using a `ReadWriteMany` storage that is resilient and scallable.
- Maybe use part of pypicloud in order to use S3 or GCS backend storage.
## Adding the repo
To add the repo to helm with the name `owkin`:
```bash
$ helm repo add owkin https://owkin.github.io/charts
```
## Installing the Chart
To install the chart with the release name `my-release`:
```bash
$ helm install --name my-release owkin/pypiserver
```
## Upgrading the Charts
Updating the chart is as straightforward as updating the helm release
```bash
$ helm upgrade my-release owkin/pypiserver
```
## Configuration
The following tables lists the configurable parameters of the PyPI server chart and their default values.
| Parameter | Description | Default |
| ---------------------------------- | ---------------------------------------------------------------------------------------- | ----------------------- |
| `replicaCount` | Deployment replica count | `1` |
| `image.repository` | Container image repository | `pypiserver/pypiserver` |
| `image.tag` | Container image name | `v1.3.2` |
| `image.pullPolicy` | Container pull policy | `IfNotPresent` |
| `image.pullSecrets` | Container pull secrets | `[]` |
| `pypiserver.extraArgs` | Additional arguments (beside -P, -p, -a) to be passed to the underyling pypiserver image | `[]` |
| `auth.actions` | Actions requiring authentication (comma separated list) | `update` |
| `auth.credentials` | Map of username / encoded password to write in a htpasswd file | `{}` |
| `ingress.enabled` | Ingress configuration flag | `false` |
| `ingress.labels` | Ingress labels | `{}` |
| `ingress.annotations` | Ingress annotations | `{}` |
| `ingress.path` | Ingress path | `nil` |
| `ingress.hosts` | Ingress hosts | `nil` |
| `ingress.tls` | Ingress TLS configuration | `[]` |
| `service.type` | Service type | `ClusterIP` |
| `service.port` | Service port | `8080` |
| `service.annotations` | Service annotations | `{}` |
| `service.labels` | Service labels | `{}` |
| `service.clusterIP` | Service cluster IP | `""` |
| `service.externalIPs` | Service external IPs | `[]` |
| `service.loadBalancerIP` | Service load balancer IP | `""` |
| `service.loadBalancerSourceRanges` | Service load balancer CIDR ranges | `[]` |
| `service.nodePort` | Service node port | `nil` |
| `persistence.enabled` | Persistence configuration flag | `false` |
| `persistence.storageClass` | Persistence storage class | `nil` |
| `persistence.existingClaim` | Persistent volume claim static name | `nil` |
| `persistence.accessMode` | Persistence access mode | `ReadWriteOnce` |
| `persistence.size` | Persistence volume size | `5Gi` |
| `persistence.mountPropagation` | Mount propagation method | `nil` |
| `securityContext.enabled` | Security context configuration flag | `true` |
| `securityContext.runAsUser` | User ID to run as | `0` |
| `securityContext.runAsGroup` | Group ID to run as | `0` |
| `securityContext.fsGroup` | Filesystem volume owner | `1000` |
| `resources` | Resources configuration bloc | `{}` |
| `nodeSelector` | Node selector of the deployment | `{}` |
| `tolerations` | Tolerations configuration for the deployment | `[]` |
| `affinity` | Affinity of the deployment | `{}` |
| `podLabels` | Extra labels applied to the pod | `{}` |
| `podAnnotations` | Extra annotations applied to the pod | `{}` |
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.