281 lines
5.3 KiB
Markdown
281 lines
5.3 KiB
Markdown
{% panel style="success", title="Providing Feedback" %}
|
|
**Provide feedback at the [survey](https://www.surveymonkey.com/r/C855WZW)**
|
|
{% endpanel %}
|
|
|
|
{% panel style="info", title="TL;DR" %}
|
|
- Customize Base Resource Namespaces
|
|
- Customize Base Resource Names with Prefixes or Suffixes
|
|
- Customize Base Resource Labels or Annotations
|
|
{% endpanel %}
|
|
|
|
# Customizing Resource Metadata
|
|
|
|
## Motivation
|
|
|
|
It is common for users to customize the metadata of their Applications - including
|
|
the **names, namespaces, labels and annotations**.
|
|
|
|
Examples:
|
|
|
|
- Overriding the Namespace
|
|
- Overriding the Names of Resources by supplying a Prefix or Suffix
|
|
- Overriding Labels and Annotations
|
|
- Running **multiple instances of the same White-Box Base** using the above techniques
|
|
|
|
{% panel style="info", title="Reference" %}
|
|
- [namespace](../reference/kustomize.md#namespace)
|
|
- [namePrefix](../reference/kustomize.md#nameprefix)
|
|
- [nameSuffix](../reference/kustomize.md#namesuffix)
|
|
{% endpanel %}
|
|
|
|
## Customizing Resource Namespaces
|
|
|
|
{% method %}
|
|
**Use Case:**
|
|
- Change the Namespace for Resources from Base.
|
|
|
|
Customize the Namespace of all Resources in the Base by adding `namespace`.
|
|
|
|
{% sample lang="yaml" %}
|
|
**Input:** The kustomization.yaml file
|
|
|
|
```yaml
|
|
# kustomization.yaml
|
|
bases:
|
|
- ../base
|
|
namespace: test
|
|
```
|
|
|
|
**Base:**
|
|
|
|
```yaml
|
|
# ../base/kustomization.yaml
|
|
resources:
|
|
- deployment.yaml
|
|
```
|
|
|
|
```yaml
|
|
# ../base/deployment.yaml
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
app: nginx
|
|
name: nginx-deployment
|
|
namespace: default
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
app: nginx
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: nginx
|
|
spec:
|
|
containers:
|
|
- image: nginx
|
|
name: nginx
|
|
```
|
|
|
|
**Applied:** The Resource that is Applied to the cluster
|
|
|
|
```yaml
|
|
# Modified Base Resource
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
app: nginx
|
|
name: nginx-deployment
|
|
# Namepace has been changed to test
|
|
namespace: test
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
app: nginx
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: nginx
|
|
spec:
|
|
containers:
|
|
- image: nginx
|
|
name: nginx
|
|
```
|
|
|
|
{% endmethod %}
|
|
|
|
## Customizing Resource Name Prefixes and Suffixes
|
|
|
|
{% method %}
|
|
**Use Case:**
|
|
- Run multiple instances of the same Base.
|
|
- Create naming conventions for different Environments (test, dev, staging, canary, prod).
|
|
|
|
Customize the Name of all Resources in the Base by adding `namePrefix` or `nameSuffix` in Variants.
|
|
|
|
{% sample lang="yaml" %}
|
|
**Input:** The kustomization.yaml file
|
|
|
|
```yaml
|
|
# kustomization.yaml
|
|
bases:
|
|
- ../base
|
|
namePrefix: test-
|
|
```
|
|
|
|
**Base:**
|
|
|
|
```yaml
|
|
# ../base/kustomization.yaml
|
|
resources:
|
|
- deployment.yaml
|
|
```
|
|
|
|
```yaml
|
|
# ../base/deployment.yaml
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
app: nginx
|
|
name: nginx-deployment
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
app: nginx
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: nginx
|
|
spec:
|
|
containers:
|
|
- image: nginx
|
|
name: nginx
|
|
```
|
|
|
|
**Applied:** The Resource that is Applied to the cluster
|
|
|
|
```yaml
|
|
# Modified Base Resource
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
app: nginx
|
|
# Name has been prefixed with the environment
|
|
name: test-nginx-deployment
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
app: nginx
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: nginx
|
|
spec:
|
|
containers:
|
|
- image: nginx
|
|
name: nginx
|
|
```
|
|
|
|
{% endmethod %}
|
|
|
|
See [Namespaces and Names](../app_management/namespaces_and_names.md).
|
|
|
|
{% panel style="success", title="Chaining Name Prefixes" %}
|
|
Name Prefix's and Suffix's in Bases will be concatenated with Name Prefix's
|
|
and Suffix's specified in Variants - e.g. if a Base has a Name Prefix of `app-name-`
|
|
and the Variant has a Name Prefix of `test-` the Applied Resources will have
|
|
a Name Prefix of `test-app-name-`.
|
|
{% endpanel %}
|
|
|
|
## Customizing Resource Labels and Annotations
|
|
|
|
{% method %}
|
|
**Use Case:**
|
|
- Create Label or Annotation conventions for different Environments (test, dev, staging, canary, prod).
|
|
|
|
Customize the Labels and Annotations of all Resources in the Base by adding a
|
|
`commonLabels` or `commonAnnotations` in the variants.
|
|
|
|
{% sample lang="yaml" %}
|
|
**Input:** The kustomization.yaml file
|
|
|
|
```yaml
|
|
# kustomization.yaml
|
|
bases:
|
|
- ../base
|
|
commonLabels:
|
|
app: test-nginx
|
|
environment: test
|
|
commonAnnotations:
|
|
oncallPager: 800-555-1212
|
|
```
|
|
|
|
**Base:**
|
|
|
|
```yaml
|
|
# ../base/kustomization.yaml
|
|
resources:
|
|
- deployment.yaml
|
|
```
|
|
|
|
```yaml
|
|
# ../base/deployment.yaml
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
app: nginx
|
|
base: label
|
|
name: nginx-deployment
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
app: nginx
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: nginx
|
|
spec:
|
|
containers:
|
|
- image: nginx
|
|
name: nginx
|
|
```
|
|
|
|
**Applied:** The Resource that is Applied to the cluster
|
|
|
|
```yaml
|
|
# Modified Base Resource
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
# labels have been overridden
|
|
labels:
|
|
app: test-nginx
|
|
environment: test
|
|
base: label
|
|
# annotations have been overridden
|
|
annotations:
|
|
oncallPager: 800-555-1212
|
|
name: nginx-deployment
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
app: test-nginx
|
|
environment: test
|
|
base: label
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: test-nginx
|
|
environment: test
|
|
base: label
|
|
spec:
|
|
containers:
|
|
- image: nginx
|
|
name: nginx
|
|
```
|
|
|
|
{% endmethod %} |