Skip to content
This repository has been archived by the owner on Jan 31, 2020. It is now read-only.

Commit

Permalink
Update README.md and CONTRIBUTING.md
Browse files Browse the repository at this point in the history
  • Loading branch information
shaneutt committed Sep 10, 2019
1 parent 06d6983 commit a03bc32
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 0 deletions.
44 changes: 44 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Contributing

Kubeaddons-Configs is an Addon Repository which manages a predefined set of Addons and their configurations for deployment via [Kubeaddons](https://github.com/mesosphere/kubeaddons).

The [Kubeaddons Contributing Documentation](https://github.com/mesosphere/kubeaddons/blob/master/CONTRIBUTING.md) governs contributions to this repo in addition to other sections of this document.

## PR Readiness

PR's should be marked `wip` until the following are taken care of:

1. Manual testing of the Addon has succeeded against the most recent release of the `kubeaddons` controller
2. CI must pass

Once these are complete the PR can be marked as `ready`.

## Creating New Addons

You can create new Addons by providing an `Addon` [resource](https://kubernetes.io/docs/concepts/) in a [manifest](https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/) placed in the `templates/` directory.

See the [Custom Resource Definition](https://github.com/mesosphere/kubeaddons/blob/master/config/crd/bases/kubeaddons.mesosphere.io_addons.yaml) for the `Addon` type for structure, and the [samples](https://github.com/mesosphere/kubeaddons/tree/master/config/samples) for more explicit implementation examples.

The overall workflow for contributing a new Addon is:

1. define an `Addon` resource as discussed above
2. install the [Kubeaddons Controller](https://github.com/mesosphere/kubeaddons/blob/master/config/samples/manager.yaml) to your Kubernetes cluster
3. deploy the new `Addon`
4. watch the pod logs for the controller, and ensure that the `Addon` status becomes `ready: true`
5. test the addon functionality as appropriate for its type

1. Manual testing of the Addon has succeeded against the most recent release of the `kubeaddons` controller
2. CI must pass

## Customizing Existing Addons

Addons can be customized via their manifests in the `templates/` directory.

Changing an addons name or namespace is done in the `metadata` field.

Configuration of the `Addon` resource itself is primarily done via via the `spec` field, particularly changing the [helm values configuration](https://v3.helm.sh/docs/topics/chart_best_practices/values/) of a helm-based addon is done via the `spec.ChartReference.Values` field.

## ExtraSteps

Some addons may be in need of additional logic beyond what's available in the implementing driver (e.g. Helm). For instance: it may be desired to have an addo generate a password for a user interface on startup and store that in a [Kubernetes Secret](https://kubernetes.io/docs/concepts/configuration/secret/). These kinds of tasks can be accomplished by adding functionality to the [Kubeaddons Extrasteps](https://github.com/mesosphere/kubeaddons-extrasteps) repo which packages tooling into [initContainers](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) and [jobs](https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/) for after-deployment Addon logic.

16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
# Addon Repository

This is a repository for `Addon` resources managed by `Kubeaddons`.

# Contributing

See our [contributing documentation](/CONTRIBUTING.md) for details on how to contribute to this repo.

## Goals

* provides a repository for storing addon resources with default configurations
* provides alternative configurations for addons for specific cloud providers

## Non-Goals

Logic for addon configurations doesn't belong in these configurations, nor should changes here cover the scope of adding or managing additional resources for an addon (resources can be added via [charts](https://github.com/mesosphere/charts)).

If optional [initContainer](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) or [job](https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/) functionality is needed for an addon you're working on you may want to use [kubeaddons extrasteps](https://github.com/mesosphere/kubeaddons-extrasteps) to add your custom logic and build a docker image for use here. It may be more appropriate to add these containers to [Charts](https://github.com/mesosphere/charts) however if they're absolutely required for the application's function.

0 comments on commit a03bc32

Please sign in to comment.