New to Kubepack? Please start here.
Scenario-10
This docs trying to explain the behavior of Pack
This section explain how jsonnet
appears Pack,
more complex situation than scenario-9
Above diagram shows the dependency chain. Here,
test-10
depend on repositorykube-a
(branchtest-10
).kube-a
depends on repositorykube-b
(branchtest-10
). Also, contains a jsonnet file.kube-b
depends on repositorykube-c
(branchtest-10
). Also, contains a patch of yaml file fromkube-a
repository. This yaml is generated from jsonnet file.kube-c
depend on nothing.
See manifest.yaml
file below:
$ cat manifest.yaml
package: github.com/kubepack/kubepack/_testdata/test-10
owners:
- name: Appscode
email: team@appscode.com
dependencies:
- package: github.com/kubepack/kube-a
branch: test-10
Get Dependencies
$ pack dep
command gets all the dependencies and place it under _vendor
folder.
In this scenario, following things happen:
kube-b
repository contains patch of jsonnet file’s yaml, sokube-c
’s jsonnet will be yaml. This yaml is combination of jsonnet’s yaml and this yaml’s patch which exists in kube-b repository.kube-a
contains a jsonnet file. In_vendor
folder, thisjsonnet
file will be converted into yaml file.
Now, $ pack up
command will generate the final output in _outlook
folder.
$ tree _outlook/
_outlook/
└── github.com
└── kubepack
├── kube-a
│ ├── foocorp-shard.jsonnet
│ ├── nginx-deployment.yaml
│ └── nginx-dm.yaml
├── kube-b
│ ├── nginx-deployment.yaml
│ ├── nginx-dm.yaml
│ ├── _outlook
│ │ └── github.com
│ │ └── kubepack
│ │ └── kube-c
│ │ ├── foocorp-shard.jsonnet
│ │ ├── nginx-deployment.yaml
│ │ └── nginx-dm.yaml
│ ├── patch
│ │ └── github.com
│ │ └── kubepack
│ │ └── kube-c
│ │ └── foocorp-shard.jsonnet
│ └── _vendor
│ └── github.com
│ └── kubepack
│ └── kube-c
│ ├── foocorp-shard.jsonnet
│ ├── nginx-deployment.yaml
│ └── nginx-dm.yaml
└── kube-c
├── foocorp-shard.jsonnet
├── nginx-deployment.yaml
└── nginx-dm.yaml
17 directories, 15 files