Skip to content
This repository was archived by the owner on Dec 16, 2020. It is now read-only.

Commit f7ee4a6

Browse files
authored
Merge pull request #32 from gruntwork-io/yori-switch-to-absolute-links
Use absolute links
2 parents bcd5cb8 + bd38eae commit f7ee4a6

File tree

5 files changed

+87
-41
lines changed

5 files changed

+87
-41
lines changed

README.md

+33-20
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,16 @@
22

33
# Tiller Module
44

5+
<!-- NOTE: We use absolute linking here instead of relative linking, because the terraform registry does not support
6+
relative linking correctly.
7+
-->
8+
59
This repo contains a Module for deploying Tiller (the server component of Helm) on Kubernetes clusters with
610
[Terraform](https://www.terraform.io). This repo is a part of [the Gruntwork Infrastructure as Code
711
Library](https://gruntwork.io/infrastructure-as-code-library/), a collection of reusable, battle-tested, production
8-
ready infrastructure code. Read the [Gruntwork Philosophy](GRUNTWORK_PHILOSOPHY.md) document to learn more about how
9-
Gruntwork builds production grade infrastructure code.
12+
ready infrastructure code. Read the [Gruntwork
13+
Philosophy](https://github.com/gruntwork-io/terraform-kubernetes-helm/blob/master/GRUNTWORK_PHILOSOPHY.md) document to
14+
learn more about how Gruntwork builds production grade infrastructure code.
1015

1116

1217
## Quickstart Guide
@@ -26,38 +31,44 @@ The general idea is to:
2631
Tiller instance.
2732
1. Deploy Tiller.
2833

29-
You can checkout the [`k8s-tiller-minikube` example documentation](/examples/k8s-tiller-minikube/README.md) for detailed
30-
instructions on deploying against `minikube`.
34+
You can checkout the [`k8s-tiller-minikube` example
35+
documentation](https://github.com/gruntwork-io/terraform-kubernetes-helm/tree/master/examples/k8s-tiller-minikube) for
36+
detailed instructions on deploying against `minikube`.
3137

3238

3339
## What is in this repo
3440

3541
This repo provides a Gruntwork IaC Package and has the following folder structure:
3642

37-
* [root](./): The root folder contains an example of how to deploy Tiller using
38-
[`kubergrunt`](https://github.com/gruntwork-io/kubergrunt), which implements all the logic for deploying Tiller with
39-
all the security best practices.
40-
* [modules](/modules): This folder contains the main implementation code for this Module, broken down into multiple
41-
standalone Submodules.
43+
* [root](https://github.com/gruntwork-io/terraform-kubernetes-helm): The root folder contains an example of how to
44+
deploy Tiller using [`kubergrunt`](https://github.com/gruntwork-io/kubergrunt), which implements all the logic for
45+
deploying Tiller with all the security best practices.
46+
* [modules](https://github.com/gruntwork-io/terraform-kubernetes-helm/tree/master/modules): This folder contains the
47+
main implementation code for this Module, broken down into multiple standalone Submodules.
4248

4349
The primary module is:
4450

45-
* [k8s-tiller](/modules/k8s-tiller): Deploy Tiller with all the security features turned on. This includes using
46-
`Secrets` for storing state and enabling TLS verification.
51+
* [k8s-tiller](https://github.com/gruntwork-io/terraform-kubernetes-helm/tree/master/modules/k8s-tiller): Deploy
52+
Tiller with all the security features turned on. This includes using `Secrets` for storing state and enabling TLS
53+
verification.
4754

4855
The deployed Tiller requires TLS certificate key pairs to operate. Additionally, clients will each need to their
4956
own TLS certificate key pairs to authenticate to the deployed Tiller instance. This is based on [kubergrunt model of
5057
deploying helm](https://github.com/gruntwork-io/kubergrunt/blob/master/HELM_GUIDE.md).
5158

5259
There are also several supporting modules that help with setting up the deployment:
5360

54-
* [k8s-namespace](/modules/k8s-namespace): Provision a Kubernetes `Namespace` with a default set of RBAC roles.
55-
* [k8s-namespace-roles](/modules/k8s-namespace-roles): Provision a default set of RBAC roles to use in a `Namespace`.
56-
* [k8s-service-account](/modules/k8s-service-account): Provision a Kubernetes `ServiceAccount`.
61+
* [k8s-namespace](https://github.com/gruntwork-io/terraform-kubernetes-helm/tree/master/modules/k8s-namespace):
62+
Provision a Kubernetes `Namespace` with a default set of RBAC roles.
63+
* [k8s-namespace-roles](https://github.com/gruntwork-io/terraform-kubernetes-helm/tree/master/modules/k8s-namespace-roles):
64+
Provision a default set of RBAC roles to use in a `Namespace`.
65+
* [k8s-service-account](https://github.com/gruntwork-io/terraform-kubernetes-helm/tree/master/modules/k8s-service-account):
66+
Provision a Kubernetes `ServiceAccount`.
5767

58-
* [examples](/examples): This folder contains examples of how to use the Submodules. The [example root
59-
README](/examples/README.md) provides a quickstart guide on how to use the Submodules in this Module.
60-
* [test](/test): Automated tests for the Submodules and examples.
68+
* [examples](https://github.com/gruntwork-io/terraform-kubernetes-helm/tree/master/examples): This folder contains
69+
examples of how to use the Submodules.
70+
* [test](https://github.com/gruntwork-io/terraform-kubernetes-helm/tree/master/test): Automated tests for the Submodules
71+
and examples.
6172

6273

6374
## What is Kubernetes?
@@ -113,13 +124,14 @@ Gruntwork can help with:
113124

114125
## How do I contribute to this Module?
115126

116-
Contributions are very welcome! Check out the [Contribution Guidelines](/CONTRIBUTING.md) for instructions.
127+
Contributions are very welcome! Check out the [Contribution
128+
Guidelines](https://github.com/gruntwork-io/terraform-kubernetes-helm/blob/master/CONTRIBUTING.md) for instructions.
117129

118130

119131
## How is this Module versioned?
120132

121133
This Module follows the principles of [Semantic Versioning](http://semver.org/). You can find each new release, along
122-
with the changelog, in the [Releases Page](../../releases).
134+
with the changelog, in the [Releases Page](https://github.com/gruntwork-io/terraform-kubernetes-helm/releases).
123135

124136
During initial development, the major version will be 0 (e.g., `0.x.y`), which indicates the code does not yet have a
125137
stable API. Once we hit `1.0.0`, we will make every effort to maintain a backwards compatible API and use the MAJOR,
@@ -128,6 +140,7 @@ MINOR, and PATCH versions on each release to indicate any incompatibilities.
128140

129141
## License
130142

131-
Please see [LICENSE](/LICENSE) for how the code in this repo is licensed.
143+
Please see [LICENSE](https://github.com/gruntwork-io/terraform-kubernetes-helm/blob/master/LICENSE) for how the code in
144+
this repo is licensed.
132145

133146
Copyright &copy; 2019 Gruntwork, Inc.

modules/k8s-namespace-roles/README.md

+12-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# K8S Namespace Roles Module
22

3+
<!-- NOTE: We use absolute linking here instead of relative linking, because the terraform registry does not support
4+
relative linking correctly.
5+
-->
6+
37
This Terraform Module defines a set of common Kubernetes
48
[RBAC `Roles`](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) for a `Namespace`. The following roles
59
will be provided by this module:
@@ -15,11 +19,15 @@ will be provided by this module:
1519

1620
## How do you use this module?
1721

18-
* See the [root README](/README.md) for instructions on using Terraform modules.
22+
* See the [root README](https://github.com/gruntwork-io/terraform-kubernetes-helm/blob/master/README.md) for
23+
instructions on using Terraform modules.
1924
* This module uses [the `kubernetes` provider](https://www.terraform.io/docs/providers/kubernetes/index.html).
20-
* See the [examples](/examples) folder for example usage.
21-
* See [variables.tf](./variables.tf) for all the variables you can set on this module.
22-
* See [outputs.tf](./outputs.tf) for all the variables that are outputed by this module.
25+
* See the [examples](https://github.com/gruntwork-io/terraform-kubernetes-helm/tree/master/examples) folder for example
26+
usage.
27+
* See [variables.tf](https://github.com/gruntwork-io/terraform-kubernetes-helm/blob/master/modules/k8s-namespace-roles/variables.tf)
28+
for all the variables you can set on this module.
29+
* See [outputs.tf](https://github.com/gruntwork-io/terraform-kubernetes-helm/blob/master/modules/k8s-namespace-roles/outputs.tf)
30+
for all the variables that are outputed by this module.
2331

2432

2533
## What is Kubernetes Role Based Access Control (RBAC)?

modules/k8s-namespace/README.md

+11-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# K8S Namespace Module
22

3+
<!-- NOTE: We use absolute linking here instead of relative linking, because the terraform registry does not support
4+
relative linking correctly.
5+
-->
6+
37
This Terraform Module manages Kubernetes
48
[`Namespaces`](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/). In addition to creating
59
namespaces, this module will create a set of default RBAC roles restricted to that namespace. The following roles will
@@ -16,11 +20,14 @@ be provided by this module:
1620

1721
## How do you use this module?
1822

19-
* See the [root README](/README.md) for instructions on using Terraform modules.
23+
* See the [root README](https://github.com/gruntwork-io/terraform-kubernetes-helm/blob/master/README.md) for instructions on using Terraform modules.
2024
* This module uses [the `kubernetes` provider](https://www.terraform.io/docs/providers/kubernetes/index.html).
21-
* See the [examples](/examples) folder for example usage.
22-
* See [variables.tf](./variables.tf) for all the variables you can set on this module.
23-
* See [outputs.tf](./outputs.tf) for all the variables that are outputed by this module.
25+
* See the [examples](https://github.com/gruntwork-io/terraform-kubernetes-helm/tree/master/examples) folder for example
26+
usage.
27+
* See [variables.tf](https://github.com/gruntwork-io/terraform-kubernetes-helm/blob/master/modules/k8s-namespace/variables.tf)
28+
for all the variables you can set on this module.
29+
* See [outputs.tf](https://github.com/gruntwork-io/terraform-kubernetes-helm/blob/master/modules/k8s-namespace/outputs.tf)
30+
for all the variables that are outputed by this module.
2431

2532

2633
## What is a Namespace?

modules/k8s-service-account/README.md

+12-4
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,25 @@
11
# K8S ServiceAccount Module
22

3+
<!-- NOTE: We use absolute linking here instead of relative linking, because the terraform registry does not support
4+
relative linking correctly.
5+
-->
6+
37
This Terraform Module manages Kubernetes
48
[`ServiceAccounts`](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/). This module
59
can be used to declaratively create and update `ServiceAccounts` and the bound permissions that it has.
610

711

812
## How do you use this module?
913

10-
* See the [root README](/README.md) for instructions on using Terraform modules.
14+
* See the [root README](https://github.com/gruntwork-io/terraform-kubernetes-helm/blob/master/README.md) for
15+
instructions on using Terraform modules.
1116
* This module uses [the `kubernetes` provider](https://www.terraform.io/docs/providers/kubernetes/index.html).
12-
* See the [examples](/examples) folder for example usage.
13-
* See [variables.tf](./variables.tf) for all the variables you can set on this module.
14-
* See [outputs.tf](./outputs.tf) for all the variables that are outputed by this module.
17+
* See the [examples](https://github.com/gruntwork-io/terraform-kubernetes-helm/tree/master/examples) folder for example
18+
usage.
19+
* See [variables.tf](https://github.com/gruntwork-io/terraform-kubernetes-helm/blob/master/modules/k8s-service-account/variables.tf)
20+
for all the variables you can set on this module.
21+
* See [outputs.tf](https://github.com/gruntwork-io/terraform-kubernetes-helm/blob/master/modules/k8s-service-account/outputs.tf)
22+
for all the variables that are outputed by this module.
1523

1624

1725
## What is a ServiceAccount?

modules/k8s-tiller/README.md

+19-9
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# K8S Tiller (Helm Server) Module
22

3+
<!-- NOTE: We use absolute linking here instead of relative linking, because the terraform registry does not support
4+
relative linking correctly.
5+
-->
6+
37
This Terraform Module can be used to declaratively deploy and manage multiple Tiller (the server component of Helm)
48
deployments in a single Kubernetes cluster.
59
Unlike the defaults installed by the helm client, the deployed Tiller instances:
@@ -14,11 +18,15 @@ repository will be updated with migration instructions to help smooth out the up
1418

1519
## How do you use this module?
1620

17-
* See the [root README](/README.md) for instructions on using Terraform modules.
21+
* See the [root README](https://github.com/gruntwork-io/terraform-kubernetes-helm/blob/master/README.md) for
22+
instructions on using Terraform modules.
1823
* This module uses [the `kubernetes` provider](https://www.terraform.io/docs/providers/kubernetes/index.html).
19-
* See [the example at the root of the repo](/) for example usage.
20-
* See [variables.tf](./variables.tf) for all the variables you can set on this module.
21-
* See [outputs.tf](./outputs.tf) for all the variables that are outputed by this module.
24+
* See [the example at the root of the repo](https://github.com/gruntwork-io/terraform-kubernetes-helm) for example
25+
usage.
26+
* See [variables.tf](https://github.com/gruntwork-io/terraform-kubernetes-helm/blob/master/modules/k8s-tiller/variables.tf)
27+
for all the variables you can set on this module.
28+
* See [outputs.tf](https://github.com/gruntwork-io/terraform-kubernetes-helm/blob/master/modules/k8s-tiller/outputs.tf)
29+
for all the variables that are outputed by this module.
2230

2331

2432
## What is Tiller?
@@ -48,10 +56,11 @@ installs to only manage resources in particular namespaces, or even restrict wha
4856

4957
The specific roles to use for Tiller depends on your infrastructure needs. At a minimum, Tiller needs enough permissions
5058
to manage its own metadata, and permissions to deploy resources in the target Namespace. We provide minimal permission
51-
sets that you can use in the [k8s-namespace-roles module](../k8s-namespace-roles). You can associate the
52-
`rbac_tiller_metadata_access_role` and `rbac_tiller_resource_access_role` roles created by the module to the Tiller
53-
`ServiceAccount` to grant those permissions. For example, the following terraform code will create these roles in the
54-
`kube-system` `Namespace` and attach it to a new `ServiceAccount` that you can then use in this module:
59+
sets that you can use in the [k8s-namespace-roles
60+
module](https://github.com/gruntwork-io/terraform-kubernetes-helm/tree/master/modules/k8s-namespace-roles). You can
61+
associate the `rbac_tiller_metadata_access_role` and `rbac_tiller_resource_access_role` roles created by the module to
62+
the Tiller `ServiceAccount` to grant those permissions. For example, the following terraform code will create these
63+
roles in the `kube-system` `Namespace` and attach it to a new `ServiceAccount` that you can then use in this module:
5564

5665
```hcl
5766
module "namespace_roles" {
@@ -118,5 +127,6 @@ To summarize, assuming a single client, in this model we have three sets of TLS
118127
You can use `kubergrunt` to manage TLS certificates optimized for use with Tiller. `kubergrunt` provides various
119128
primitives that can be used for generating and managing TLS certificates using Kubernetes `Secrets`. This allows you to
120129
manage access to Helm using the RBAC system of Kubernetes. See the [k8s-tiller-minikube
121-
example](/examples/k8s-tiller-minikube) for an example of how to use `kubergrunt` to generate TLS certs for use with
130+
example](https://github.com/gruntwork-io/terraform-kubernetes-helm/tree/master/examples/k8s-tiller-minikube) for an
131+
example of how to use `kubergrunt` to generate TLS certs for use with
122132
this module.

0 commit comments

Comments
 (0)