From c6ab1de22e43a85b4b47e59e2d92804fc71fcb8a Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Hernandez Date: Thu, 28 May 2020 07:16:31 +0000 Subject: [PATCH] Remove _docs folder --- _docs/README_TEMPLATE.md | 131 ------ _docs/authoring-helm-charts.md | 167 -------- _docs/authoring-kubernetes-manifests.md | 418 -------------------- _docs/redmine_gke/README.md | 362 ----------------- _docs/redmine_gke/images/Kubernetes.png | Bin 9355 -> 0 bytes _docs/redmine_gke/images/Redmine_logo_0.png | Bin 11127 -> 0 bytes _docs/redmine_gke/images/architecture.png | Bin 59306 -> 0 bytes _docs/redmine_gke/images/logo-Mariadb.png | Bin 16832 -> 0 bytes _docs/redmine_gke/images/redmine.ep | 283 ------------- 9 files changed, 1361 deletions(-) delete mode 100644 _docs/README_TEMPLATE.md delete mode 100644 _docs/authoring-helm-charts.md delete mode 100644 _docs/authoring-kubernetes-manifests.md delete mode 100644 _docs/redmine_gke/README.md delete mode 100644 _docs/redmine_gke/images/Kubernetes.png delete mode 100644 _docs/redmine_gke/images/Redmine_logo_0.png delete mode 100644 _docs/redmine_gke/images/architecture.png delete mode 100644 _docs/redmine_gke/images/logo-Mariadb.png delete mode 100644 _docs/redmine_gke/images/redmine.ep diff --git a/_docs/README_TEMPLATE.md b/_docs/README_TEMPLATE.md deleted file mode 100644 index b582bfc63..000000000 --- a/_docs/README_TEMPLATE.md +++ /dev/null @@ -1,131 +0,0 @@ -# _Application_ - -- _Short introduction to the application deployed by the chart with link to the project homepage_ - -> **Sample** -> -> [MediaWiki](https://www.mediawiki.org) is an extremely powerful, scalable software and a feature-rich wiki implementation that uses PHP to process and display data stored in a database, such as MySQL. - -## TL;DR; - -- _List the `helm install` command required to deployed the chart_ - -> **Sample** -> -> ```bash -> $ helm install my-release stable/mediawiki -> ``` - -## Introduction - -- _A brief introduction to the chart and the chart(s) it depends upon._ - -> **Sample** -> -> This chart bootstraps a MediaWiki deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. The chart depends upon the [MariaDB chart](https://github.com/helm/charts/tree/master/stable/mariadb) for the database requirements of MediaWiki. -> -> The chart uses the [Bitnami MediaWiki Docker Image](https://hub.docker.com/r/bitnami/mediawiki) for setting up the MediaWiki deployment and is developed, contributed and maintained by [Bitnami](https://bitnami.com). - -## Prerequisites - -_List the cluster requirements for a successful deployment of the chart_ - -> **Sample** -> -> - Kubernetes 1.4+ with Beta APIs enabled -> - PV provisioner support in the underlying infrastructure - -## Installing - -- _Provide chart deployment instructions. This may include steps to pull chart dependencies and so on._ -- _Use a release name in the `helm install` commands and refer to it in the upgrading and uninstalling sections._ -- _Link to the configuration section for customizing a chart deployment._ - - -> **Sample** -> -> Install the chart using: -> -> ```bash -> $ helm install my-release stable/mediawiki -> ``` -> -> The command deploys MediaWiki on the Kubernetes cluster in the default configuration and with the release name `my-release`. The deployment configuration can be customized by specifying the customization parameters with the `helm install` command using the `--values` or `--set` arguments. Find more information in the [configuration section](#configuration) of this document. - -## Upgrading - -- _Provide instructions to upgrade a chart deployment using the `helm upgrade` commands_ - -> **Sample** -> -> Upgrade the chart deployment using: -> -> ```bash -> $ helm upgrade my-release stable/mediawiki -> ``` -> -> The command upgrades the existing `my-release` deployment with the most latest release of the chart. -> -> **TIP**: Use `helm repo update` to update information on available charts in the chart repositories. - -## Uninstalling - -- _Provide instructions to uninstall a chart deployment from the cluster_ - -> **Sample** -> -> Uninstall the `my-release` deployment using: -> -> ```bash -> $ helm delete my-release -> ``` -> -> The command deletes the release named `my-release` and frees all the kubernetes resources associated with the release. -> -> **TIP**: _Specify the `--purge`_ argument to the above command to remove the release from the store and make its name free for later use. - -## Configuration - -- _Insert a table listing all the configurations that can be customized via the `values.yaml` file._ -- _**TIP**: The `Table Editor` plugin for SublimeText is useful for creating and updating this table_ -- _Provide information on how to specify these parameters, ie. using a `myvals.yml` file or using the `--set` option and possibly an example_ - -> **Sample** -> -> The following table lists all the configurable parameters expose by the MediaWiki chart and their default values. -> -> | Name | Decription | Default | -> |-------------------------------|------------------------------|------------------------------------------| -> | `mediawikiUser` | Admin user name | `user` | -> | `mediawikiPassword` | Admin user password | _randomly generated alphanumeric string_ | -> | `mediawikiEmail` | Admin user email | `user@example.com` | -> | `mariadb.mariadbRootPassword` | MariaDB admin password | _no password_ | -> | `persistence.enabled` | Enable persistence using PVC | `true` | -> -> Specify the parameters you which to customize using the `--set` argument to the `helm install` command. For instance, -> -> ```bash -> $ helm install my-release \ -> --set mediawikiUser=admin,mediawikiPassword=password stable/mediawiki -> ``` -> -> The above command sets the MediaWiki administrator account username and password to `admin` and `password` respectively. -> -> Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, -> -> ```bash -> $ helm install my-release \ -> --values values.yaml stable/mediawiki -> ``` -> -> **Tip**: You can use the default [values.yaml](values.yaml). - -## Persistence - -- _Describe how the chart handles persistence and the options to enable/disable persistence_ - -> **Sample** -> -> The [Bitnami MediaWiki Docker Image](https://hub.docker.com/r/bitnami/mediawiki) saves persistent data in the `/bitnami/mediawiki` and `/bitnami/apache` paths of the container. The chart makes use of [Persistent Volumes Claims](http://kubernetes.io/docs/user-guide/persistent-volumes/#persistentvolumeclaims) to set up data persistence across chart upgrades and is known to work in GKE, AWS and Minikube Kubernetes cluster setups. -> -> See the [configuration section](#configuration) to configure the PVC or to disable persistence. diff --git a/_docs/authoring-helm-charts.md b/_docs/authoring-helm-charts.md deleted file mode 100644 index d1d0fda67..000000000 --- a/_docs/authoring-helm-charts.md +++ /dev/null @@ -1,167 +0,0 @@ -# Guidelines for writing Helm Classic Charts - -A Chart is a unit of Kubernetes manifests describing one or more kubernetes objects (i.e. RC, Pod, Service, etc) that provides a recipe for installing and running a containerized application inside of Kubernetes. - -This document describes guidelines for writing Helm Classic Charts and builds on the guidelines laid out by the [Authoring Kubernetes Manifests Guide](authoring-kubernetes-manifests.md). - -## Chart Directory - -A typical Chart directory consists of the following files: - -``` -foo -├── Chart.yaml -├── manifests -│   └── foo-svc.yaml -├── README.md -└── tpl - ├── foo-rc.yaml - ├── foo-secrets.yaml - └── values.toml -``` - -- The chart name is the top-level directory name. -- `manifests/` directory contains the kubernetes manifests. -- `tpl/` directory contains helmc generator templates and `values.toml`. -- Manifests are prefixed with the chart name. -- Replication controller manifests bear the `-rc` suffix. -- Service manifests bear the `-svc` suffix. -- Secrets manifests bear `-secret` suffix. -- Manifests should be written in `YAML` with 2 space indentation. - -*Manifests can also be written in the JSON format. The `YAML` format is preferred for readability.* - -## Chart.yaml - -The [Chart.yaml](https://github.com/helm/helm-classic/blob/master/docs/awesome.md#the-chartyaml-file) format is defined by the [Helm Classic](https://github.com/helm/helm-classic) project and looks like this: - -```yaml -name: -home: -source: -- -version: -description: -maintainers: -- Author -dependencies: -- name: - repo: - version: -details: |- - -``` - -- `name`: chart name, same as the top-level chart directory -- `home`: URL to the project homepage (eg. http://redmine.org) -- `source`: List of URL's to resource used in the chart, eg. https://github.com/bitnami/bitnami-docker-redmine -- `version`: version of the chart -- `description`: A short one line chart description -- `maintainers`: List of maintainers with their email -- `dependencies`: List of charts this chart depends on - + `name`: Name of the chart - + `repo`: Git URL to chart repo - + `version`: Semver version filter -- `details`: One paragraph description of the chart - -Refer to the [dependency resolution](https://github.com/helm/helm-classic/blob/master/docs/awesome.md#dependency-resolution) section of the Helm Classic docs to learn about how Helm Classic handles dependencies. - -## Manifest Files - -The [Authoring Kubernetes Manifests Guide](authoring-kubernetes-manifests.md) provides guidelines to write Kubernetes manifests files. The topics covered include Replication Controllers, Services, Secrets, Labels, Health Checks, Environment variables and so on. The same guidelines apply while authoring Charts. - -In this section we only look at Labels and Generators. - -### Labels - -A cluster can be used to deploy multiple applications and services. To be able to correctly filter components in services and replication controllers we should define labels. - -This section defines a set mandatory labels that should be used. - -#### heritage - -All manifests must specify the `heritage: bitnami` label in the metadata section. This enables querying a cluster to list all components deployed using manifests made available by Bitnami with: - -```bash -kubectl get pods,rc,services -l heritage=bitnami -``` - -#### provider - -The provider label indicates that the manifests provide a specific backend service, eg. `mysql`, `mariadb`, `postgresql`, `redis`, etc. - -If the manifest configures an application server the provider should be suffixed with `-server`, eg. `redmine-server` in case of a Redmine application server or `wordpress-server` in the case of a `apache + php + wordpress`. - -#### app (for applications) - -When the manifests deploy more than one replication controller, the `app` label should be defined that groups all the components under one label. - -For example, if in a GitLab deployment `gitlab-workhorse` and `sidekiq` are defined in different replication controllers then the manifests should have the `app: gitlab` label that groups these components. - -Standalone backend services, eg. MariaDB, will not have a app label. If the MariaDB service is part of an applications manifests (not recommended), then it would have a `app` label. - -#### version (when applicable) - -To make rolling updates possible the `version` label should be defined and set to the version of the docker image in use. Note that we should ensure that versioned images are in use for making rolling updates possible. - -**IMPORTANT:** Service manifests should not apply the `version` label filters on the `selector` field. - -#### other - -Custom labels can be be defined to provide fine-grained filtering of pods in services and replication controllers. For example, a MariaDB pod can have a `mode:` label to indicate if it’s a `master` or `slave` allowing the Services to correctly filter Pods. - -### Generators - -Helm Classic includes a templating solution to based on Go templates and supports most of the [Sprig](https://github.com/Masterminds/sprig) functions. - -Running `helmc generate ` compiles manifest files from the templates. The `tpl/` directory should be used for the templates and a `values.toml` file for customizing env variables and secrets. - -`tpl/values.toml` provides a clean way for users configure environment variables, secrets, etc. The `values.toml` should define place holders for the configurable parameters with default values, which can be `nil`. - -The following is an example of a `values.toml` file. - -```toml -postgresUser = "postgres" -postgresPassword = "" -postgresDb = "" -``` - -Templates are manifests files with sprig functions that are evaluated during the compilation. The first line of a template should specify the command that should be executed to compile the template. - -``` -#helm:generate helmc tpl -d tpl/values.toml -o manifests/foo-rc.yaml $HELM_GENERATE_FILE -``` - -This instructs `helmc generate` to execute the listed command where the compiled output will be generated in the `manifests/` directory. `-d` specifies the file containing values to substitute into the template. - -The following snippet demostrates the substitution of a value specified in `tpl/values.toml`. - -```yaml - env: - - name: POSTGRES_USER - value: {{ .postgresUser | quote }} -``` - -When compiled, `.postgresUser` will be replaced with the value of `postgresUser` specified in `values.toml`. - -All environment variables should be quoted as the kubernetes linter will error out if the value begins with a number or is a truth value. The sprig `quote` function ensures that the final evaluated output is quoted with double quotes. - -Learn more about [Helm Classic Generate and Templates](https://github.com/helm/helm-classic/blob/master/docs/generate-and-template.md) - -## Readme - -The readme file should provide brief instructions on how to deploy the chart and its dependencies. It should avoid listing detailed setup and configuration instructions. - -## Examples - -Examples manifests following these guidelines can be found in the Official [Bitnami Helm Classic Charts Repo](https://github.com/bitnami/charts) - -## References - -- [Helm Classic](https://github.com/helm/helm-classic) -- [Helm Classic Charts](https://github.com/helm/charts) -- [Authoring Helm Classic Charts](https://github.com/helm/helm-classic/blob/master/docs/authoring_charts.md) -- [The Helm Classic Guide to Writing Awesome Charts](https://github.com/helm/helm-classic/blob/master/docs/awesome.md) -- [Helm Classic Generate and Template](https://github.com/helm/helm-classic/blob/master/docs/generate-and-template.md) -- [Authoring Kubernetes Manifests Guide](authoring-kubernetes-manifests.md) - diff --git a/_docs/authoring-kubernetes-manifests.md b/_docs/authoring-kubernetes-manifests.md deleted file mode 100644 index e8a9e4821..000000000 --- a/_docs/authoring-kubernetes-manifests.md +++ /dev/null @@ -1,418 +0,0 @@ -# Guidelines for writing Kubernetes Templates - -## Components - -Provide the following minimal set of files. - -- `foo-rc.yaml` -- `foo-svc.yaml` -- `README.md` - -## Readme - -The readme is intended to help users get started with using the bitnami images on their kubernetes clusters. It's function is to: - -- Provide brief usage example -- Overview of the architecture (diagrams, screenshots, etc.) -- List Dependencies -- List exposed volumes -- Explain logging features -- List environment variables, secrets, labels, etc. -- Provide URLs to external sources that are helpful -- Licensing information (should be permissive) - -## Manifest Files - -The manifests should deploy one component. For example, to deploy Redmine the manifests would only deploy the Redmine application components. Dependent components such as MariaDB should be separated into their own repo for better reusability and maintenance. - -All manifests should be written in YAML format - -- Use `.yaml` extension -- Use 2 spaces for indentation - -A good set of manifests typically include: - -- A replication controller (`foo-rc.yaml`) -- A service definition (`foo-svc.yaml`) -- A secrets file (`foo-secrets.yaml`) - -### Images - -- Use versioned images, avoid using the `latest` tag -- If the `latest` tag is used, define `imagePullPolicy: Always` - -### Labels - -A cluster can be used to deploy multiple applications and services. To be able to correctly filter components in services and replication controllers we should define labels to achieve this. - -This section defines a set of labels that should be used. - -#### heritage (mandatory) - -All manifests must specify the `heritage: bitnami` label in the metadata section. This enables querying a cluster to list all components deployed using manifests made available by Bitnami with: - -```bash -kubectl get pods,rc,services -l heritage=bitnami -``` - -#### provider (mandatory) - -The provider label indicates that the manifests provide a specific backend service, eg. `mysql`, `mariadb`, `postgresql`, `redis`, etc. - -If the manifest configures an application server the provider should be suffixed with `-server`, eg. `redmine-server` in case of a Redmine application server or `wordpress-server` in the case of a `apache + php + wordpress`. - -#### app (for applications) - -When the manifests deploy more than one replication controller, the `app` label should be defined that groups all the components under one label. - -For example, if in a GitLab deployment `gitlab-workhorse` and `sidekiq` are defined in different replication controllers then the manifests should have the `app: gitlab` label that groups these components. - -Standalone backend services, eg. MariaDB, will not have a app label. If the MariaDB service is part of an applications manifests (not recommended), then it would have a `app` label. - -#### version (when applicable) - -To make rolling updates possible the `version` label should be defined and set to the version of the docker image in use. Note that additionally we should ensure that versioned images are also in use for making rolling updates possible. - -**IMPORTANT:** Service manifests should not apply the `version` label filters on the `selector` field. - -#### other - -Custom labels can be be defined to provide fine-grained filtering of pods in services and replication controllers. For example, a MariaDB pod can have a `mode:` label to indicate if it’s a `master` or `slave` allowing the Services to correctly filter Pods. - -### Ports - -Always define named ports in the replication controller templates. Whenever possible name the ports with the IANA defined service name (eg. http://www.speedguide.net/port.php?port=80). - -Avoid using `hostPort` in the manifests unless absolutely necessary. When you bind a Pod to a `hostPort`, there are a limited number of places that pod can be scheduled, due to port conflicts — you can only schedule as many such Pods as there are nodes in your Kubernetes cluster. - -## Replication Controller - -Pods aren't intended to be treated as durable. They won't survive scheduling failures, node failures, etc. A Replication Controller (RC) provides better lifecycle management. We recommend using a replication controller even if a single instance of the Pod will be deployed at any given time. - -A replication controller ensures that a specified number of pods "replicas" are running at any one time. It replaces pods that are deleted or terminated for any reason. - -The following in an sample of a simple `ReplicationController.yaml` manifest: - -```yaml -apiVersion: v1 -kind: ReplicationController -metadata: - name: mariadb - labels: - provider: mariadb - version: 5.5.46-0-r01 - heritage: bitnami -spec: - replicas: 1 - selector: - provider: mariadb - version: 5.5.46-0-r01 - heritage: bitnami - template: - metadata: - labels: - provider: mariadb - version: 5.5.46-0-r01 - heritage: bitnami - spec: - containers: - - name: mariadb - image: bitnami/mariadb:5.5.46-0-r01 - env: - - name: MARIADB_PASSWORD - value: my_password - ports: - - name: mysql - containerPort: 3306 -``` - -Here we’ve set the `selector` field to filter based on the `provider`, `version` and `heritage` labels. This ensures that only Pods bearing these labels are under the purview of the replication controller. - -If the manifest defines additional labels you may want to add them to the `selector` so that the replication controller correctly picks up the correct Pods at any give time. - -### Environment Variables - -The manifest file should include placeholders for configurable parameters exposed by images as environment variables. Defining environment variables for parameters that expose sensitive information should be avoided and instead be defined in a Secret manifest. - -The README should appropriately document or link to the image documentation for information on the environment variables. - -### Health Checks - -For better lifecycle management the replication controller manifests should define liveness and readiness probes using the `livenessProbe` and `readinessProbe` fields respectively. - -Three primitives are available for setting up these probes: - -- HTTP check (`httpGet`) - - A webhook is used to determine the healthiness of the container. The check is deemed successful if the hook returns with `200` or `399` status code. - -- Container Execution Check (`exec`) - - A command is executed inside the container. Exiting the check with status `0` is considered a success. - -- TCP Socket Check (`tcpSocket`) - - A connection to a TCP socket is attempted. The container is considered healthy if the connection can be established. - -#### Liveness Probe - -A liveness probe checks if the container is running and responding normally. If the liveness probe fails, the container is terminated and subject to the restart policy it will be restarted. In replication controllers the default restart policy is to always restart a terminated container. - -The following example adds a `livenessProbe` to our sample RC manifest. - -```yaml -apiVersion: v1 -kind: ReplicationController -metadata: - name: mariadb - labels: - provider: mariadb - version: 5.5.46-0-r01 - heritage: bitnami -spec: - replicas: 1 - selector: - provider: mariadb - version: 5.5.46-0-r01 - heritage: bitnami - template: - metadata: - labels: - provider: mariadb - version: 5.5.46-0-r01 - heritage: bitnami - spec: - containers: - - name: mariadb - image: bitnami/mariadb:5.5.46-0-r01 - env: - - name: MARIADB_PASSWORD - value: my_password - ports: - - name: mysql - containerPort: 3306 - livenessProbe: - exec: - command: - - mysqladmin - - ping - initialDelaySeconds: 30 - timeoutSeconds: 5 -``` - -Here an `exec` probe is setup to check the status of the MariaDB server at 5 second intervals using the `mysqladmin ping` command. The Pod will be restarted if the command returns an error for any reason. - -To allow the container to boot up before the liveness probe kicks in the `initialDelaySeconds` should be configured. It's value should be high enough to allow the container to start or the container will be prematurely terminated by the probe. - -#### Readiness Probe - -When a Pod is started, regardless of its initialization state, it is configured to receive traffic. Ideally the Pod should receive traffic only when it's ready to avoid downtime, especially in horizontally scalable deployments. - -A readiness probe checks if a container is ready to service requests and is used to signal to the endpoints controller that even though a container is running it should not receive any traffic from a proxy. Additionally it helps containers to recover from temporary service disruptions. - -The setup of a readiness probe is similar to a liveness probe. Building on our sample replication controller manifest the following snippet adds a `readinessProbe`. - -```yaml -apiVersion: v1 -kind: ReplicationController -metadata: - name: mariadb - labels: - provider: mariadb - version: 5.5.46-0-r01 - heritage: bitnami -spec: - replicas: 1 - selector: - provider: mariadb - version: 5.5.46-0-r01 - heritage: bitnami - template: - metadata: - labels: - provider: mariadb - version: 5.5.46-0-r01 - heritage: bitnami - spec: - containers: - - name: mariadb - image: bitnami/mariadb:5.5.46-0-r01 - env: - - name: MARIADB_PASSWORD - value: my_password - ports: - - name: mysql - containerPort: 3306 - livenessProbe: - exec: - command: - - mysqladmin - - ping - initialDelaySeconds: 30 - timeoutSeconds: 5 - readinessProbe: - exec: - command: - - mysqladmin - - ping - initialDelaySeconds: 5 - timeoutSeconds: 1 -``` - -Because we want the Pod to start receiving traffic as soon as it's ready a lower `initialDelaySeconds` value is specified. - -A lower `timeoutSeconds` ensures that the Pod does not receive any traffic as soon as it becomes unresponsive. If the failure was temporary, the Pod would resume normal functioning after it has recovered. - -### Lifecycle hooks - -To terminate a container Kubernetes sends the `TERM` signal to `PID 1` of the container and if container is not terminated within a 10 second grace period a `KILL` signal is sent to forcefully terminate the container. In most cases this default behaviour is sufficient for the graceful termination of the daemons and processes running inside the container. - -However, in some containerized applications may expect a custom termination sequence for its clean and graceful termination. For such cases a `preStop` hook can be setup to define a command that should be executed before the default container termination behaviour is executed. - -For example, the NGINX daemon expects the `QUIT` signal to initiate a clean shutdown of the daemon. This can be achieved by setting up a `preStop` hook to initiate the shutdown with the command `nginx -s quit`. - -The following snippet demonstrates the use of a `preStop` lifecycle hook. - -```yaml -apiVersion: v1 -kind: ReplicationController -... - spec: - containers: - - name: nginx - image: bitnami/nginx:1.9.9-0 - ... - lifecycle: - preStop: - exec: - command: ["nginx", "-s", "quit"] -``` - -Similarly a `postStart` hook can be specified to execute a command after a container has been started. - -### Volumes - -Volumes are required to persist a containers data and should be specified as `emptyDir` volumes in the replication controllers manifest. Continuing with our sample, the following snippet defines a volume named `data` for persistence of the MariaDB data. - -```yaml -apiVersion: v1 -kind: ReplicationController -metadata: - name: mariadb - labels: - provider: mariadb - version: 5.5.46-0-r01 - heritage: bitnami -spec: - replicas: 1 - selector: - provider: mariadb - version: 5.5.46-0-r01 - heritage: bitnami - template: - metadata: - labels: - provider: mariadb - version: 5.5.46-0-r01 - heritage: bitnami - spec: - containers: - - name: mariadb - image: bitnami/mariadb:5.5.46-0-r01 - env: - - name: MARIADB_PASSWORD - value: my_password - ports: - - name: mysql - containerPort: 3306 - volumeMounts: - - name: data - mountPath: /bitnami/mariadb - livenessProbe: - exec: - command: - - mysqladmin - - ping - initialDelaySeconds: 30 - timeoutSeconds: 5 - readinessProbe: - exec: - command: - - mysqladmin - - ping - initialDelaySeconds: 5 - timeoutSeconds: 1 - volumes: - - name: data - emptyDir: {} -``` - -## Services - -A Service is an abstraction which defines a logical set of Pods and a policy by which to access them - sometimes called a micro-service. The set of Pods targeted by a Service is determined by label selectors. The following is a sample of a simple `Service.yaml` manifest. - -```yaml -apiVersion: v1 -kind: Service -metadata: - name: mariadb - labels: - provider: mariadb - heritage: bitnami -spec: - ports: - - name: mysql - port: 3306 - targetPort: mysql - selector: - provider: mariadb - heritage: bitnami -``` - -We’ve specified the label selectors `provider` and `heritage`. This will ensure that only the desired Pods will receive traffic from this Service. Notice that the `version` label is not used in the label selectors as its inclusion will not allow for rolling updates. If your Pods use additional labels, such as `mode`, you may want to add them to the selector field of the Service manifest. - -Lastly, named ports are used to specify the `targetPort` field. This enables us to change the port numbers in the replication controller manifests without the need to change the Service manifests. - -#### Load Balancer - -A backend Service is generally accessed by containers within the cluster and as such the Service is not required to be exposed outside the cluster. - -A frontend Service on the other hand, would typically be accessed externally over the internet. Such Services should be configured as `type: LoadBalancer`. - -### Secrets - -Objects of type secret are intended to hold sensitive information, such as passwords, OAuth tokens, and ssh keys. Putting this information in a secret is safer and more flexible than putting it verbatim in a pod definition or in a docker image. - -A simple `Secrets.yml` file would look like: - -```yaml -apiVersion: v1 -kind: Secret -metadata: - name: mariadb - labels: - provider: mariadb - heritage: bitnami -type: Opaque -data: - mariadb-password: dmFsdWUtMg0K -``` - -## Examples - -Examples manifests following these guidelines can be found in the Official [Bitnami Helm Charts Repo](https://github.com/bitnami/charts) - -## References - -- [Kubernetes User Guide](http://kubernetes.io/v1.0/docs/user-guide/) -- [Replication Controller](http://kubernetes.io/v1.0/docs/user-guide/replication-controller.html) -- [Service](http://kubernetes.io/v1.0/docs/user-guide/services.html) -- [Labels](http://kubernetes.io/v1.0/docs/user-guide/labels.html) -- [Volumes](http://kubernetes.io/v1.0/docs/user-guide/volumes.html) -- [Health Checks](http://kubernetes.io/v1.0/docs/user-guide/production-pods.html#liveness-and-readiness-probes-aka-health-checks) -- [Lifecycle hooks](http://kubernetes.io/v1.0/docs/user-guide/production-pods.html#lifecycle-hooks-and-termination-notice) -- [Secrets](http://kubernetes.io/v1.0/docs/user-guide/secrets.html) -- [Lifetime of a Pod](http://kubernetes.io/v1.0/docs/user-guide/pod-states.html) -- [Helm Docs](https://github.com/helm/helm/tree/master/docs) -- [Helm Authoring Guide](https://github.com/helm/helm/blob/master/docs/authoring_charts.md) -- [Kubernetes Configuration Best Practices](http://kubernetes.io/docs/user-guide/config-best-practices/) diff --git a/_docs/redmine_gke/README.md b/_docs/redmine_gke/README.md deleted file mode 100644 index 0a0bdc9a1..000000000 --- a/_docs/redmine_gke/README.md +++ /dev/null @@ -1,362 +0,0 @@ -# Deploying Redmine on GKE using Bitnami Helm Classic Charts - -- [TL;DR;](#tldr) -- [Introduction](#introduction) -- [Before you begin](#before-you-begin) - - [Kubernetes environment](#kubernetes-environment) - - [Helm Classic](#helm-classic) - - [Bitnami Charts](#bitnami-charts) -- [Create the cluster](#create-the-cluster) -- [Deploy MariaDB](#deploy-mariadb) -- [Deploy Redmine](#deploy-redmine) -- [Accessing the Redmine application](#accessing-the-redmine-application) -- [Uninstalling Redmine](#uninstalling-redmine) -- [Configuration](#configuration) - - [MariaDB persistence](#mariadb-persistence) - - [Redmine persistence](#redmine-persistence) - - [Redmine Language](#redmine-language) - - [Redmine Admin](#redmine-admin) - - [Email Delivery](#email-delivery) - -## TL;DR; - -**Step 1: Create a Kubernetes cluster** - -```bash -$ gcloud container clusters create my-cluster -``` - -**Step 2: Add the Bitnami Charts repo to Helm Classic** - -```bash -$ helmc repo add bitnami https://github.com/bitnami/charts -$ helmc update -``` - -**Step 3: Deploy MariaDB** - -```bash -$ helmc fetch bitnami/mariadb -$ helmc install mariadb -``` - -**Step 4: Deploy Redmine** - -```bash -$ helmc fetch bitnami/redmine -$ helmc install redmine -``` - -To learn how you can access the Redmine application please refer to the [Accessing the Redmine Instance](#accessing-the-redmine-application) section. - -## Introduction - -[Redmine](http://redmine.org) is a [feature-rich](http://www.redmine.org/projects/redmine/wiki/Features) open source project management web application written using the Ruby on Rails framwork and released under the terms of the [GNU General Public License v2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html) (GPL). - -In this tutorial we walk through deploying Redmine on [Google Container Engine](https://cloud.google.com/container-engine/) (GKE) using [Helm Classic](http://helm.sh/) and the [Official Bitnami Helm Classic Charts](https://github.com/bitnami/charts). The following illustration provides an overview of the deployment. - -![Architecture](images/architecture.png) - -## Before you begin - -### Kubernetes environment - -[Kubernetes](http://kubernetes.io) is an open source container cluster manager by Google. It aims to provide a *"platform for automating deployment, scaling, and operations of application containers across clusters of hosts"*. - -Before you create a Kubernetes cluster follow [these instructions](https://cloud.google.com/container-engine/docs/before-you-begin) to set up your GKE account. - -### Helm - -Dubbed as the Kubernetes Package Manager, Helm Classic bootstraps a Kubernetes cluster with Charts that provide ready-to-use workloads. - -[Install Helm Classic](https://github.com/helm/helm-classic#installing-helm) with the following commands. - -```bash -$ curl -s https://get.helm.sh | bash -$ sudo mv helmc /usr/local/bin -$ sudo chmod +x /usr/local/bin/helmc -``` - -### Bitnami Charts - -The [Bitnami Helm Classic Charts](https://github.com/bitnami/charts) repo is the easiest way to deploy [Bitnami Docker Containers](https://bitnami.com/docker) on a Kubernetes cluster. - -In addition to deploying containers on the cluster, the Bitnami Charts also set up [Container Probes](http://kubernetes.io/docs/user-guide/pod-states/#container-probes) to perform diagnostic checks on the containers to maximize the responsiveness and uptime of applications and services deployed on the cluster. - -The Charts in this repo are actively developed and maintained by [Bitnami](https://bitnami.com/) so that you have a pleasant experience deploying applications on Kubernetes. So lets get started... - -Add the Bitnami Charts repo to Helm Classic. - -```bash -$ helmc repo add bitnami https://github.com/bitnami/charts -``` - -(Periodically) Update the Charts to get the latest and greatest Charts from Bitnami. - -```bash -$ helmc update -``` - -## Create the cluster - -*This is optional if you want to use an existing Kubernetes cluster.* - -```bash -$ gcloud container clusters create my-cluster -``` - -The above command creates a cluster named `my-cluster` on GKE. You can name the cluster whatever you like. - -> **Tip**: -> -> Multiple applications and services can be deployed on a single cluster and the various applications and services share the resources of the cluster thereby optimally utilizing the cluster resources. As the need arises resources can be added or removed by [resizing the cluster](https://cloud.google.com/container-engine/docs/resize-cluster). - -## Deploy MariaDB - -The [Bitnami Redmine Chart](https://github.com/bitnami/charts/tree/master/redmine) depends on the [Bitnami MariaDB Chart](https://github.com/bitnami/charts/tree/master/mariadb) for the database needs of the Redmine application. As such we'll first deploy the MariaDB Chart. - -Begin by fetching the MariaDB Chart from the Bitnami Helm Classic Charts repo. - -```bash -$ helmc fetch bitnami/mariadb -``` - -Bitnami Charts use [Helm Classic templates and generators](https://github.com/helm/helm-classic/blob/master/docs/generate-and-template.md) allowing users to easily update the deployment parameters. The configurable parameters are stored in the `~/.helmc/workspace/charts/mariadb/tpl/values.toml` file of the Chart and in the default configuration the administrative user `root` is created without a password. To change the defaults, update the relevant parameters. - -> **Hint**: -> -> If your default editor is set to `vim` and you have issues running the following command, add `se autochdir` to your `~/.vimrc` profile and retry or directly edit `~/.helmc/workspace/charts/mariadb/tpl/values.toml` in your favourite editor. - -```bash -$ helmc edit mariadb -``` - -> **Tip:** -> -> It's suggested to set up the administrative user `root` especially if you wish to share the MariaDB instance with other applications. This allows each application to create a database using the `root` credentials. - -Refer to the [MariaDB persistence](#mariadb-persistence) section for setting up the persistence of MariaDB data. - -Apply the changes. - -```bash -$ helmc generate --force mariadb -``` - -It's time to deploy the MariaDB Chart. - -```bash -$ helmc install mariadb -``` - -The above command deploys the MariaDB Chart on the cluster in the `default` namespace and will be accessible by any container running in the same namespace. - -Using `kubectl` you can query the deployment status of the MariaDB [Replication Controller](http://kubernetes.io/docs/user-guide/replication-controller/), [Pods](http://kubernetes.io/docs/user-guide/pods/) and [Services](http://kubernetes.io/docs/user-guide/services/). - -```bash -$ kubectl get rc,pods,services -l provider=mariadb,heritage=bitnami -``` - -*In the above command we are filtering the command output using labels used in the MariaDB Chart.* - -## Deploy Redmine - -With the MariaDB Chart deployed on the cluster, thus satisfying the dependencies of the Redmine Chart, we are now ready to deploy the Redmine Chart. - -Fetch the Chart from the repo. - -```bash -$ helmc fetch bitnami/redmine -``` - -Just like the MariaDB Chart, the Redmine Chart uses Helm Classic templates and generators with the configurable parameters stored in the `~/.helmc/workspace/charts/redmine/tpl/values.toml` file of the Chart. - -Edit the deployment parameters. - -```bash -$ helmc edit redmine -``` - -*or directly edit `~/.helmc/workspace/charts/redmine/tpl/values.toml` in your favourite text editor* - -In the default configuration the Redmine administrator username and password credentials are `user` and `bitnami` respectively. - -To configure Redmine data persistence refer to the [Redmine persistence](#redmine-persistence) section. - -Refer to the [Redmine Language](#redmine-language) section to change the Redmine language which defaults to `en`. - -To specify custom Redmine admin credentials, which default to `user` with password `bitnami`, refer to the [Redmine Admin](#redmine-admin) section. - -For information on setting up email notifications please read the [Email Delivery](#email-delivery) section. - -Once your done updating the deployment parameters, apply the changes with. - -```bash -$ helmc generate --force redmine -``` - -And finally we're ready to deploy the Redmine Chart. - -```bash -$ helmc install redmine -``` - -The above command deploys the Redmine Chart under the `default` namespace and the deployment status of the Redmine Replication Controller, Pods and Services can be queried. - -```bash -$ kubectl get rc,pods,services -l app=redmine,heritage=bitnami -``` - -> **Bonus Tip** -> -> `kubectl get rc,pods,services -l heritage=bitnami` will list all the Pods and Services deployed using the Bitnami components. - -## Accessing the Redmine application - -The Redmine Chart exposes the HTTP interface of the Redmine application so that -the application can be accessed over the internet using the external IP address of the Redmine service. - -Get the external IP address. - -```bash -$ kubectl get services -l app=redmine,heritage=bitnami -NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE -redmine 10.63.248.111 104.197.247.57 80/TCP 43 -``` - -> **Note:** -> -> You may need to execute the above command a couple of times as it could take a while for GKE to assign an external IP address to the service. - -Point your web browser to the IP address listed in the `EXTERNAL-IP` column of the command output and login using the Redmine administrator account credentials as you may have configured while deploying the Redmine Chart. If the defaults were not changed, then the login credentials are - - - Username: `user` - - Password: `bitnami` - -## Uninstalling Redmine - -The Redmine deployment can easily be uninstalled with Helm Classic. - -```bash -$ helmc uninstall --namespace default redmine -``` - -The command uninstalls the Kubernetes components set up by the Redmine Chart in the `default` namespace. - -Similarly, if the MariaDB deployment is not being used for any other application, you can uninstall the MariaDB Chart as well: - -```bash -$ helmc uninstall --namespace default mariadb -``` - -To destroy the cluster in it's entirety use the following command. Note that any applications and services running on the cluster will also be removed. - -```bash -$ gcloud container clusters delete my-cluster -``` - -If you had created `gcePersistentDisk`'s for setting up [MariaDB persistence](#mariadb-persistence) and [Redmine persistence](#redmine-persistence) you should be able to restore the deployment by simply redeploying the respective Charts with the existing disks. - -However, to delete these disks: - -```bash -$ gcloud compute disks delete redmine-data-disk mariadb-data-disk -``` - -The above command will delete both the `redmine-data-disk` and `mariadb-data-disk` disks and the data therein will be lost forever. - -## Configuration - -### MariaDB persistence - -By default the MariaDB Chart mounts a [emptyDir](http://kubernetes.io/docs/user-guide/volumes/#emptydir) volume for the data. When a Pod is removed for any reason, the data in the `emptyDir` is deleted forever. - -To persist the data across Pod shutdown and startup we should replace the `emptyDir` data volume with a persistent [storage volume](http://kubernetes.io/v1.0/docs/user-guide/volumes.html). For demonstration purposes we'll use a [gcePersistentDisk](http://kubernetes.io/docs/user-guide/volumes/#gcepersistentdisk). - -Begin by creating a GCE persistent disk. - -```bash -$ gcloud compute disks create mariadb-data-disk -``` - -Next you'll need to update the `data` volume specification in `~/.helmc/workspace/charts/mariadb/tpl/mariadb-rc.yaml` to: - -```yaml - volumes: - - name: data - gcePersistentDisk: - pdName: mariadb-data-disk - fsType: ext4 -``` - -Apply the changes before [deploying the MariaDB Chart](#deploy-mariadb). - -### Redmine persistence - -Like the MariaDB Chart, the the Redmine Chart mounts a [emptyDir](http://kubernetes.io/docs/user-guide/volumes/#emptydir) volume for the Redmine data by default. - -For the persistence of data across Pod shutdown and startup we should replace the `emptyDir` data volume with a persistent storage volume. We'll use a `gcePersistentDisk` for demonstration purposes. - -Create the GCE persistent disk. - -```bash -$ gcloud compute disks create redmine-data-disk -``` - -Update the `data` volume specification in `~/.helmc/workspace/charts/redmine/tpl/redmine-rc.yaml` to: - -```yaml - volumes: - - name: data - gcePersistentDisk: - pdName: redmine-data-disk - fsType: ext4 -``` - -Apply the changes before [deploying the Redmine Chart](#deploy-redmine). - -### Redmine Language - -The Redmine application language defaults to English and can be configured using the `redmineLanguage` deployment parameter. - -Please refer to the [IANA Language Subtag Registry](http://www.iana.org/assignments/language-subtag-registry) for your language code. The accepted values for the `redmineLanguage` parameter are `bg`, `cs`, `de`, `en`, `es`, `fr`, `he`, `it`, `ja`, `ko`, `nl`, `pl`, `pt`, `pt_br`, `ro`, `ru`, `sr`, `sv`, `zh` and `zh_tw`. - -For example, to configure the Redmine language to Español, edit the `~/.helmc/workspace/charts/redmine/tpl/values.toml` file of the Redmine Chart and specify the following configuration. - -```toml -redmineLanguage = "es" -``` - -Apply the changes before [deploying the Redmine Chart](#deploy-redmine). - -### Redmine Admin - -The default Redmine admin username and password credentials are `user` and `bitnami` respectively and the email address is set up as `user@example.com`. These parmeters can be configured using the `redmineUser`, `redminePassword` and `redmineEmail` parameters in the `~/.helmc/workspace/charts/redmine/tpl/values.toml` file of the Redmine Chart. - -For example, if you want to create the admin user `jon.snow` with password `winteriscoming` and email address `jon.snow@thenightswatch.com`. - -```toml -redmineUser = "jon.snow" -redminePassword = "winteriscoming" -redmineEmail = "jon.snow@thenightswatch.com" -``` - -Apply the changes before [deploying the Redmine Chart](#deploy-redmine). - -### Email Delivery - -The Redmine Chart exposes deployment parameters to easily and effortlessly enable email notifications in Redmine. By default email delivery is disabled and can be enabled by simply providing the SMTP details of the mail delivery service. - -For example, to configure email delivery via Gmail, edit the `~/.helmc/workspace/charts/redmine/tpl/values.toml` file of the Redmine Chart and specify the following configuration. - -```toml -smtpHost = "smtp.gmail.com" -smtpPort = "587" -smtpUser = "notifications@example.com" -smtpPassword = "secret-password" -smtpTls = "true" -``` - -Remember to update `notifications@example.com` and `secret-password` in the above configuration with the Gmail username and password respectively. - -That's all there is to it. Go ahead and apply the changes before [deploying the Redmine Chart](#deploy-redmine). diff --git a/_docs/redmine_gke/images/Kubernetes.png b/_docs/redmine_gke/images/Kubernetes.png deleted file mode 100644 index ec2d3c029bc1a49d383504a30f7efceaae06a7d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9355 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 diff --git a/_docs/redmine_gke/images/Redmine_logo_0.png b/_docs/redmine_gke/images/Redmine_logo_0.png deleted file mode 100644 index f3209baf1e5b303ee231712fb8ee403910e03195..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11127 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

|F<%Krt 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 diff --git a/_docs/redmine_gke/images/logo-Mariadb.png b/_docs/redmine_gke/images/logo-Mariadb.png deleted file mode 100644 index 5c4efbd9cb096382d4554e20ef5b6c0405dff44c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16832 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 -Untitled Page1460446566515_76981120560true#FFFFFFFFtransparent - -

- - - -
-
-
- -
-
-
- -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SQL - - - - - -
-
-
Service]]> - - -
Service
-
-
- - - - - - - - - - - -
- -
-
-
Service]]> - - -
Service
-
-
- - - - - - - - - - - -
Kubernetes Master
]]>
- - -
Kubernetes Master
-
-
Kubernetes Minion 1
]]>
- - -
Kubernetes Minion 1
-
-
Kubernetes Minion 2
]]>
- - -
Kubernetes Minion 2
-
-
- - - - - - - - - - -
-
-
Browser Request
]]>
- - -
Browser Request
-
-
- - - - - - - - - -
- - - - - - - - HTTP - - - - - - - - - - - - - - - - Persistent Disk
Storage

]]>
- - -
Persistent Disk
Storage

-
-
- - - - - - - - - - - - - - -
-
-
- -
-
-
Pod]]> - - -
Pod
-
-
- - - - - - - - - - - - - -
-
-
Container]]> - - -
Container
-
-
Pod]]> - - -
Pod
-
-
- -
-
-
Container]]> - - -
Container
-
-
- - - - - - - - - - - -
- \ No newline at end of file