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-10depend on repositorykube-a(branchtest-10).kube-adepends on repositorykube-b(branchtest-10). Also, contains a jsonnet file.kube-bdepends on repositorykube-c(branchtest-10). Also, contains a patch of yaml file fromkube-arepository. This yaml is generated from jsonnet file.kube-cdepend on nothing.
See manifest.yaml file below:
$ cat manifest.yaml
package: github.com/kubepack/kubepack/_testdata/test-10
owners:
- name: Appscode
email: [email protected]
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-brepository 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-acontains a jsonnet file. In_vendorfolder, thisjsonnetfile 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