Including external variables does not work. You must import them. This change corrects the External Variables section of the cluster-config README. Signed-off-by: Vincent Ambo <tazjin@google.com>
		
			
				
	
	
		
			106 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
Cluster configuration
 | 
						|
==========================
 | 
						|
 | 
						|
Every cluster (or "environment") that requires individual configuration is specified in
 | 
						|
a very simple YAML file in Kontemplate.
 | 
						|
 | 
						|
An example file for a hypothetical test environment could look like this:
 | 
						|
 | 
						|
```yaml
 | 
						|
---
 | 
						|
context: k8s.test.mydomain.com
 | 
						|
global:
 | 
						|
  clusterName: test-cluster
 | 
						|
  defaultReplicas: 2
 | 
						|
import:
 | 
						|
  - test-secrets.yaml
 | 
						|
include:
 | 
						|
  - name: gateway
 | 
						|
    path: tools/nginx
 | 
						|
    values:
 | 
						|
      tlsDomains:
 | 
						|
        - test.oslo.pub
 | 
						|
        - test.tazj.in
 | 
						|
  - path: backend
 | 
						|
    values:
 | 
						|
      env: test
 | 
						|
    include:
 | 
						|
      - name: blog
 | 
						|
        values:
 | 
						|
          url: test.tazj.in
 | 
						|
      - name: pub-service
 | 
						|
```
 | 
						|
 | 
						|
<!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-refresh-toc -->
 | 
						|
**Table of Contents**
 | 
						|
 | 
						|
- [Cluster configuration](#cluster-configuration)
 | 
						|
    - [Fields](#fields)
 | 
						|
        - [`context`](#context)
 | 
						|
        - [`global`](#global)
 | 
						|
        - [`import`](#import)
 | 
						|
        - [`include`](#include)
 | 
						|
    - [External variables](#external-variables)
 | 
						|
 | 
						|
<!-- markdown-toc end -->
 | 
						|
 | 
						|
## Fields
 | 
						|
 | 
						|
This is documentation for the individual fields in a cluster context file.
 | 
						|
 | 
						|
### `context`
 | 
						|
 | 
						|
The `context` field contains the name of the kubectl-context. You can list context names with
 | 
						|
'kubectl config get-contexts'.
 | 
						|
 | 
						|
This must be set here so that Kontemplate can use the correct context when calling kubectl.
 | 
						|
 | 
						|
This field is **required** for `kubectl`-wrapping commands. It can be left out if only the `template`-command is used.
 | 
						|
 | 
						|
### `global`
 | 
						|
 | 
						|
The `global` field contains a key/value map of variables that should be available to all resource
 | 
						|
sets in the cluster.
 | 
						|
 | 
						|
This field is **optional**.
 | 
						|
 | 
						|
### `import`
 | 
						|
 | 
						|
The `import` field contains the file names of additional YAML or JSON files from which global
 | 
						|
variables should be loaded. Using this field makes it possible to keep certain configuration that
 | 
						|
is the same for some, but not all, clusters in a common place.
 | 
						|
 | 
						|
This field is **optional**.
 | 
						|
 | 
						|
### `include`
 | 
						|
 | 
						|
The `include` field contains the actual resource sets to be included in the cluster.
 | 
						|
 | 
						|
Information about the structure of resource sets can be found in the [resource set documentation][].
 | 
						|
 | 
						|
This field is **required**.
 | 
						|
 | 
						|
## External variables
 | 
						|
 | 
						|
As mentioned above, extra variables can be loaded from additional YAML or JSON files. Assuming you
 | 
						|
have a file called `test-secrets.yaml` which contains variables that should be shared between a `test`
 | 
						|
and `dev` cluster, you could import it in your context as such:
 | 
						|
 | 
						|
```yaml
 | 
						|
# test-secrets.yaml:
 | 
						|
mySecretVar: foo-bar-12345
 | 
						|
 | 
						|
# test-cluster.yaml:
 | 
						|
context: k8s.test.mydomain.com
 | 
						|
import:
 | 
						|
  - test-secrets.yaml
 | 
						|
 | 
						|
# dev-cluster.yaml:
 | 
						|
context: k8s.dev.mydomain.com
 | 
						|
import:
 | 
						|
  - test-secrets.yaml
 | 
						|
```
 | 
						|
 | 
						|
The variable `mySecretVar` is then available as a global variable.
 | 
						|
 | 
						|
[resource set documentation]: resource-sets.md
 |