Deprecate 'bases:' field.

This commit is contained in:
Jeffrey Regan
2019-06-18 07:28:58 -07:00
parent 0dbe78149d
commit cc531af665
24 changed files with 156 additions and 152 deletions

View File

@@ -71,7 +71,7 @@ mkdir -p $DEMO_HOME/breakfast/overlays/alice
cat <<EOF >$DEMO_HOME/breakfast/overlays/alice/kustomization.yaml
commonLabels:
who: alice
bases:
resources:
- ../../base
patchesStrategicMerge:
- temperature.yaml
@@ -94,7 +94,7 @@ mkdir -p $DEMO_HOME/breakfast/overlays/bob
cat <<EOF >$DEMO_HOME/breakfast/overlays/bob/kustomization.yaml
commonLabels:
who: bob
bases:
resources:
- ../../base
patchesStrategicMerge:
- topping.yaml

View File

@@ -191,7 +191,7 @@ dbpassword=mothersMaidenName
EOF
cat <<EOF >$OVERLAYS/development/kustomization.yaml
bases:
resources:
- ../../base
namePrefix: dev-
nameSuffix: -v1
@@ -273,7 +273,7 @@ dbpassword=thisShouldProbablyBeInASecretInstead
EOF
cat <<EOF >$OVERLAYS/production/kustomization.yaml
bases:
resources:
- ../../base
namePrefix: prod-
configMapGenerator:

View File

@@ -66,7 +66,7 @@ commonLabels:
org: acmeCorporation
commonAnnotations:
note: Hello, I am staging!
bases:
resources:
- ../../base
patchesStrategicMerge:
- map.yaml

View File

@@ -148,7 +148,7 @@ commonLabels:
org: acmeCorporation
commonAnnotations:
note: Hello, I am staging!
bases:
resources:
- ../../base
patchesStrategicMerge:
- map.yaml
@@ -189,7 +189,7 @@ commonLabels:
org: acmeCorporation
commonAnnotations:
note: Hello, I am production!
bases:
resources:
- ../../base
patchesStrategicMerge:
- deployment.yaml

View File

@@ -1,4 +1,4 @@
bases:
resources:
- ../../base
patchesStrategicMerge:
- deployment.yaml

View File

@@ -1,9 +1,9 @@
bases:
- ../../base
resources:
- ../../base
patchesStrategicMerge:
- deployment.yaml
nameprefix: staging-
- deployment.yaml
namePrefix: staging-
configMapGenerator:
- name: env-config
files:
- config.env
- name: env-config
files:
- config.env

View File

@@ -1,12 +1,22 @@
# Demo: multibases with a common base
`kustomize` encourages defining multiple variants - e.g. dev, staging and prod, as overlays on a common base.
`kustomize` encourages defining multiple variants -
e.g. dev, staging and prod,
as overlays on a common base.
It's possible to create an additional overlay to compose these variants together - just declare the overlays as the bases of a new kustomization.
It's possible to create an additional overlay to
compose these variants together - just declare the
overlays as the bases of a new kustomization.
This is also a means to apply a common label or annotation across the variants, if for some reason the base isn't under your control. It also allows one to define a left-most namePrefix across the variants - something that cannot be done by modifying the common base.
This is also a means to apply a common label or
annotation across the variants, if for some reason
the base isn't under your control. It also allows
one to define a left-most namePrefix across the
variants - something that cannot be
done by modifying the common base.
The following demonstrates this using a base that's just one pod.
The following demonstrates this using a base
that is just a single pod.
Define a place to work:
@@ -47,7 +57,7 @@ DEV=$DEMO_HOME/dev
mkdir $DEV
cat <<EOF >$DEV/kustomization.yaml
bases:
resources:
- ./../base
namePrefix: dev-
EOF
@@ -60,7 +70,7 @@ STAG=$DEMO_HOME/staging
mkdir $STAG
cat <<EOF >$STAG/kustomization.yaml
bases:
resources:
- ./../base
namePrefix: stag-
EOF
@@ -73,7 +83,7 @@ PROD=$DEMO_HOME/production
mkdir $PROD
cat <<EOF >$PROD/kustomization.yaml
bases:
resources:
- ./../base
namePrefix: prod-
EOF
@@ -83,7 +93,7 @@ Then define a _Kustomization_ composing three variants together:
<!-- @makeTopLayer @test -->
```
cat <<EOF >$DEMO_HOME/kustomization.yaml
bases:
resources:
- ./dev
- ./staging
- ./production

View File

@@ -1,4 +1,3 @@
bases:
- ./../base
namePrefix: dev-
resources:
- ../base
namePrefix: dev-

View File

@@ -1,6 +1,5 @@
bases:
- ./dev
- ./staging
- ./production
resources:
- dev
- staging
- production
namePrefix: cluster-a-

View File

@@ -2,7 +2,9 @@
`kustomize` supports defining multiple variants with different namespace, as overlays on a common base.
It's possible to create an additional overlay to compose these variants together - just declare the overlays as the bases of a new kustomization. The following demonstrates this using a base that's just one pod.
It's possible to create an additional overlay to compose these variants
together - just declare the overlays as the bases of a new kustomization. The
following demonstrates this using a base that's just one pod.
Define a place to work:
@@ -43,10 +45,9 @@ NSA=$DEMO_HOME/namespace-a
mkdir $NSA
cat <<EOF >$NSA/kustomization.yaml
bases:
- ./../base
resources:
- namespace.yaml
- ../base
namespace: namespace-a
EOF
@@ -65,10 +66,9 @@ NSB=$DEMO_HOME/namespace-b
mkdir $NSB
cat <<EOF >$NSB/kustomization.yaml
bases:
- ./../base
resources:
- namespace.yaml
- ../base
namespace: namespace-b
EOF
@@ -84,9 +84,9 @@ Then define a _Kustomization_ composing two variants together:
<!-- @makeTopLayer @test -->
```
cat <<EOF >$DEMO_HOME/kustomization.yaml
bases:
- ./namespace-a
- ./namespace-b
resources:
- namespace-a
- namespace-b
EOF
```
@@ -112,4 +112,4 @@ Confirm that the `kustomize build` output contains two pod objects from namespac
test 2 == \
$(kustomize build $DEMO_HOME| grep -B 4 "namespace: namespace-[ab]" | grep "name: myapp-pod" | wc -l); \
echo $?
```
```

View File

@@ -1,4 +1,3 @@
bases:
- ./../base
resources:
- ../base
namePrefix: prod-

View File

@@ -1,4 +1,3 @@
bases:
- ./../base
resources:
- ../base
namePrefix: staging-

View File

@@ -39,7 +39,7 @@ A base can be a URL:
DEMO_HOME=$(mktemp -d)
cat <<EOF >$DEMO_HOME/kustomization.yaml
bases:
resources:
- github.com/kubernetes-sigs/kustomize//examples/multibases?ref=v1.0.6
namePrefix: remote-
EOF

View File

@@ -1,4 +1,4 @@
bases:
resources:
- ../../base
patchesStrategicMerge:
- patch.yaml

View File

@@ -1,4 +1,4 @@
bases:
resources:
- ../../base
namePrefix: staging-
configMapGenerator:

View File

@@ -44,17 +44,19 @@ curl -s -o "$MYSQL_HOME/#1.yaml" \
```
### Create kustomization.yaml
Create a new kustomization with two bases:
Create a new kustomization with two bases,
`wordpress` and `mysql`:
<!-- @createKustomization @test -->
```
cat <<EOF >$DEMO_HOME/kustomization.yaml
bases:
- wordpress
- mysql
resources:
- wordpress
- mysql
namePrefix: demo-
patchesStrategicMerge:
- patch.yaml
- patch.yaml
EOF
```
@@ -143,4 +145,4 @@ Expect this in the output:
> image: debian
> name: init-command
>
> ```
> ```

View File

@@ -1,19 +1,19 @@
bases:
- wordpress
- mysql
resources:
- wordpress
- mysql
patchesStrategicMerge:
- patch.yaml
- patch.yaml
namePrefix: demo-
vars:
- name: WORDPRESS_SERVICE
objref:
kind: Service
name: wordpress
apiVersion: v1
- name: MYSQL_SERVICE
objref:
kind: Service
name: mysql
apiVersion: v1
- name: WORDPRESS_SERVICE
objref:
kind: Service
name: wordpress
apiVersion: v1
- name: MYSQL_SERVICE
objref:
kind: Service
name: mysql
apiVersion: v1

View File

@@ -136,7 +136,7 @@ commonLabels:
org: acmeCorporation
commonAnnotations:
note: Hello, I am staging!
bases:
resources:
- ../../base
patchesStrategicMerge:
- map.yaml
@@ -175,7 +175,7 @@ commonLabels:
org: acmeCorporation
commonAnnotations:
note: Hello, I am production!
bases:
resources:
- ../../base
patchesStrategicMerge:
- deployment.yaml
@@ -298,4 +298,4 @@ kustomize build $OVERLAYS/production
> ```
> kubectl apply -k $OVERLAYS/production
> ```
> ```