86 lines
7.2 KiB
Markdown
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`.
|