github.com/argoproj/argo-cd@v1.8.7/util/helm/testdata/helm2-dependency/README.md (about)

     1  # WordPress
     2  
     3  [WordPress](https://wordpress.org/) is one of the most versatile open source content management systems on the market. A publishing platform for building blogs and websites.
     4  
     5  ## TL;DR;
     6  
     7  ```console
     8  $ helm install stable/wordpress
     9  ```
    10  
    11  ## Introduction
    12  
    13  This chart bootstraps a [WordPress](https://github.com/bitnami/bitnami-docker-wordpress) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
    14  
    15  It also packages the [Bitnami MariaDB chart](https://github.com/kubernetes/charts/tree/master/stable/mariadb) which is required for bootstrapping a MariaDB deployment for the database requirements of the WordPress application.
    16  
    17  ## Prerequisites
    18  
    19  - Kubernetes 1.4+ with Beta APIs enabled
    20  - PV provisioner support in the underlying infrastructure
    21  
    22  ## Installing the Chart
    23  
    24  To install the chart with the release name `my-release`:
    25  
    26  ```console
    27  $ helm install --name my-release stable/wordpress
    28  ```
    29  
    30  The command deploys WordPress on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.
    31  
    32  > **Tip**: List all releases using `helm list`
    33  
    34  ## Uninstalling the Chart
    35  
    36  To uninstall/delete the `my-release` deployment:
    37  
    38  ```console
    39  $ helm delete my-release
    40  ```
    41  
    42  The command removes all the Kubernetes components associated with the chart and deletes the release.
    43  
    44  ## Configuration
    45  
    46  The following table lists the configurable parameters of the WordPress chart and their default values.
    47  
    48  |            Parameter             |                Description                 |                         Default                         |
    49  |----------------------------------|--------------------------------------------|---------------------------------------------------------|
    50  | `image.registry`                 | WordPress image registry                   | `docker.io`                                             |
    51  | `image.repository`               | WordPress image name                       | `bitnami/wordpress`                                     |
    52  | `image.tag`                      | WordPress image tag                        | `{VERSION}`                                             |
    53  | `image.pullPolicy`               | Image pull policy                          | `Always` if `imageTag` is `latest`, else `IfNotPresent` |
    54  | `image.pullSecrets`              | Specify image pull secrets                 | `nil`                                                   |
    55  | `wordpressUsername`              | User of the application                    | `user`                                                  |
    56  | `wordpressPassword`              | Application password                       | _random 10 character long alphanumeric string_          |
    57  | `wordpressEmail`                 | Admin email                                | `user@example.com`                                      |
    58  | `wordpressFirstName`             | First name                                 | `FirstName`                                             |
    59  | `wordpressLastName`              | Last name                                  | `LastName`                                              |
    60  | `wordpressBlogName`              | Blog name                                  | `User's Blog!`                                          |
    61  | `wordpressTablePrefix`           | Table prefix                               | `wp_`                                                   |
    62  | `allowEmptyPassword`             | Allow DB blank passwords                   | `true`                                                  |
    63  | `smtpHost`                       | SMTP host                                  | `nil`                                                   |
    64  | `smtpPort`                       | SMTP port                                  | `nil`                                                   |
    65  | `smtpUser`                       | SMTP user                                  | `nil`                                                   |
    66  | `smtpPassword`                   | SMTP password                              | `nil`                                                   |
    67  | `smtpUsername`                   | User name for SMTP emails                  | `nil`                                                   |
    68  | `smtpProtocol`                   | SMTP protocol [`tls`, `ssl`]               | `nil`                                                   |
    69  | `replicaCount`                   | Number of WordPress Pods to run            | `1`                                                     |
    70  | `mariadb.enabled`                | Deploy MariaDB container(s)                | `true`                                                  |
    71  | `mariadb.rootUser.password`      | MariaDB admin password                     | `nil`                                                   |
    72  | `mariadb.db.name`                | Database name to create                    | `bitnami_wordpress`                                     |
    73  | `mariadb.db.user`                | Database user to create                    | `bn_wordpress`                                          |
    74  | `mariadb.db.password`            | Password for the database                  | _random 10 character long alphanumeric string_          |
    75  | `externalDatabase.host`          | Host of the external database              | `localhost`                                             |
    76  | `externalDatabase.user`          | Existing username in the external db       | `bn_wordpress`                                          |
    77  | `externalDatabase.password`      | Password for the above username            | `nil`                                                   |
    78  | `externalDatabase.database`      | Name of the existing database              | `bitnami_wordpress`                                     |
    79  | `externalDatabase.port`          | Database port number                       | `3306`                                                  |
    80  | `serviceType`                    | Kubernetes Service type                    | `LoadBalancer`                                          |
    81  | `serviceExternalTrafficPolicy`   | Enable client source IP preservation       | `Cluster`                                               |
    82  | `nodePorts.http`                 | Kubernetes http node port                  | `""`                                                    |
    83  | `nodePorts.https`                | Kubernetes https node port                 | `""`                                                    |
    84  | `healthcheckHttps`               | Use https for liveliness and readiness     | `false`                                                 |
    85  | `ingress.enabled`                | Enable ingress controller resource         | `false`                                                 |
    86  | `ingress.hosts[0].name`          | Hostname to your WordPress installation    | `wordpress.local`                                       |
    87  | `ingress.hosts[0].path`          | Path within the url structure              | `/`                                                     |
    88  | `ingress.hosts[0].tls`           | Utilize TLS backend in ingress             | `false`                                                 |
    89  | `ingress.hosts[0].tlsSecret`     | TLS Secret (certificates)                  | `wordpress.local-tls-secret`                            |
    90  | `ingress.hosts[0].annotations`   | Annotations for this host's ingress record | `[]`                                                    |
    91  | `ingress.secrets[0].name`        | TLS Secret Name                            | `nil`                                                   |
    92  | `ingress.secrets[0].certificate` | TLS Secret Certificate                     | `nil`                                                   |
    93  | `ingress.secrets[0].key`         | TLS Secret Key                             | `nil`                                                   |
    94  | `persistence.enabled`            | Enable persistence using PVC               | `true`                                                  |
    95  | `persistence.existingClaim`      | Enable persistence using an existing PVC   | `nil`                                                   |
    96  | `persistence.storageClass`       | PVC Storage Class                          | `nil` (uses alpha storage class annotation)             |
    97  | `persistence.accessMode`         | PVC Access Mode                            | `ReadWriteOnce`                                         |
    98  | `persistence.size`               | PVC Storage Request                        | `10Gi`                                                  |
    99  | `nodeSelector`                   | Node labels for pod assignment             | `{}`                                                    |
   100  | `tolerations`                    | List of node taints to tolerate            | `[]`                                                    |
   101  | `affinity`                       | Map of node/pod affinities                 | `{}`                                                    |
   102  
   103  The above parameters map to the env variables defined in [bitnami/wordpress](http://github.com/bitnami/bitnami-docker-wordpress). For more information please refer to the [bitnami/wordpress](http://github.com/bitnami/bitnami-docker-wordpress) image documentation.
   104  
   105  Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
   106  
   107  ```console
   108  $ helm install --name my-release \
   109    --set wordpressUsername=admin,wordpressPassword=password,mariadb.mariadbRootPassword=secretpassword \
   110      stable/wordpress
   111  ```
   112  
   113  The above command sets the WordPress administrator account username and password to `admin` and `password` respectively. Additionally, it sets the MariaDB `root` user password to `secretpassword`.
   114  
   115  Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
   116  
   117  ```console
   118  $ helm install --name my-release -f values.yaml stable/wordpress
   119  ```
   120  
   121  > **Tip**: You can use the default [values.yaml](values.yaml)
   122  
   123  ## Production and horizontal scaling
   124  
   125  The following repo contains the recommended production settings for wordpress capture in an alternative [values file](values-production.yaml). Please read carefully the comments in the values-production.yaml file to set up your environment appropriately.
   126  
   127  To horizontally scale this chart, first download the [values-production.yaml](values-production.yaml) file to your local folder, then:
   128  
   129  ```console
   130  $ helm install --name my-release -f ./values-production.yaml stable/wordpress
   131  ```
   132  
   133  Note that [values-production.yaml](values-production.yaml) includes a replicaCount of 3, so there will be 3 WordPress pods. As a result, to use the /admin portal and to ensure you can scale wordpress you need to provide a ReadWriteMany PVC, if you don't have a provisioner for this type of storage, we recommend that you install the nfs provisioner and map it to a RWO volume.
   134  
   135  ```console
   136  $ helm install stable/nfs-server-provisioner --set persistence.enabled=true,persistence.size=10Gi
   137  $ helm install --name my-release -f values-production.yaml --set persistence.storageClass=nfs stable/wordpress
   138  ```
   139  
   140  ## Persistence
   141  
   142  The [Bitnami WordPress](https://github.com/bitnami/bitnami-docker-wordpress) image stores the WordPress data and configurations at the `/bitnami` path of the container.
   143  
   144  Persistent Volume Claims are used to keep the data across deployments. This is known to work in GCE, AWS, and minikube.
   145  See the [Configuration](#configuration) section to configure the PVC or to disable persistence.
   146  
   147  ## Using an external database
   148  
   149  Sometimes you may want to have Wordpress connect to an external database rather than installing one inside your cluster, e.g. to use a managed database service, or use run a single database server for all your applications. To do this, the chart allows you to specify credentials for an external database under the [`externalDatabase` parameter](#configuration). You should also disable the MariaDB installation with the `mariadb.enabled` option. For example:
   150  
   151  ```console
   152  $ helm install stable/wordpress \
   153      --set mariadb.enabled=false,externalDatabase.host=myexternalhost,externalDatabase.user=myuser,externalDatabase.password=mypassword,externalDatabase.database=mydatabase,externalDatabase.port=3306
   154  ```
   155  
   156  Note also if you disable MariaDB per above you MUST supply values for the `externalDatabase` connection.
   157  
   158  ## Ingress
   159  
   160  This chart provides support for ingress resources. If you have an
   161  ingress controller installed on your cluster, such as [nginx-ingress](https://kubeapps.com/charts/stable/nginx-ingress)
   162  or [traefik](https://kubeapps.com/charts/stable/traefik) you can utilize
   163  the ingress controller to serve your WordPress application.
   164  
   165  To enable ingress integration, please set `ingress.enabled` to `true`
   166  
   167  ### Hosts
   168  
   169  Most likely you will only want to have one hostname that maps to this
   170  WordPress installation, however, it is possible to have more than one
   171  host.  To facilitate this, the `ingress.hosts` object is an array.
   172  
   173  For each item, please indicate a `name`, `tls`, `tlsSecret`, and any
   174  `annotations` that you may want the ingress controller to know about.
   175  
   176  Indicating TLS will cause WordPress to generate HTTPS URLs, and
   177  WordPress will be connected to at port 443.  The actual secret that
   178  `tlsSecret` references do not have to be generated by this chart.
   179  However, please note that if TLS is enabled, the ingress record will not
   180  work until this secret exists.
   181  
   182  For annotations, please see [this document](https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md).
   183  Not all annotations are supported by all ingress controllers, but this
   184  document does a good job of indicating which annotation is supported by
   185  many popular ingress controllers.
   186  
   187  ### TLS Secrets
   188  
   189  This chart will facilitate the creation of TLS secrets for use with the
   190  ingress controller, however, this is not required.  There are three
   191  common use cases:
   192  
   193  * helm generates/manages certificate secrets
   194  * user generates/manages certificates separately
   195  * an additional tool (like [kube-lego](https://kubeapps.com/charts/stable/kube-lego))
   196  manages the secrets for the application
   197  
   198  In the first two cases, one will need a certificate and a key.  We would
   199  expect them to look like this:
   200  
   201  * certificate files should look like (and there can be more than one
   202  certificate if there is a certificate chain)
   203  
   204  ```
   205  -----BEGIN CERTIFICATE-----
   206  MIID6TCCAtGgAwIBAgIJAIaCwivkeB5EMA0GCSqGSIb3DQEBCwUAMFYxCzAJBgNV
   207  ...
   208  jScrvkiBO65F46KioCL9h5tDvomdU1aqpI/CBzhvZn1c0ZTf87tGQR8NK7v7
   209  -----END CERTIFICATE-----
   210  ```
   211  * keys should look like:
   212  ```
   213  -----BEGIN RSA PRIVATE KEY-----
   214  MIIEogIBAAKCAQEAvLYcyu8f3skuRyUgeeNpeDvYBCDcgq+LsWap6zbX5f8oLqp4
   215  ...
   216  wrj2wDbCDCFmfqnSJ+dKI3vFLlEz44sAV8jX/kd4Y6ZTQhlLbYc=
   217  -----END RSA PRIVATE KEY-----
   218  ````
   219  
   220  If you are going to use Helm to manage the certificates, please copy
   221  these values into the `certificate` and `key` values for a given
   222  `ingress.secrets` entry.
   223  
   224  If you are going are going to manage TLS secrets outside of Helm, please
   225  know that you can create a TLS secret by doing the following:
   226  
   227  ```
   228  kubectl create secret tls wordpress.local-tls --key /path/to/key.key --cert /path/to/cert.crt
   229  ```
   230  
   231  Please see [this example](https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx/examples/tls)
   232  for more information.