Ordering

Generally, Kubes will apply resources in order so dependent resources are created first. If needed, you can completely customize the order: Custom Ordering.

Apply

Here’s an example that shows it creating the service and deployment first, and then the ingress last.

$ kubes apply
Compiled  .kubes/resources files
Deploying kubes files
=> kubectl apply -f .kubes/output/web/service.yaml
service/demo-web created
=> kubectl apply -f .kubes/output/web/deployment.yaml
deployment.apps/demo-web created
=> kubectl apply -f .kubes/output/web/ingress.yaml
ingress.networking.k8s.io/demo-web created
$

Delete

Kubes will delete in the reverse order.

$ kubes delete -y
Compiled  .kubes/resources files
=> kubectl delete -f .kubes/output/web/ingress.yaml
ingress.networking.k8s.io "demo-web" deleted
=> kubectl delete -f .kubes/output/web/deployment.yaml
deployment.apps "demo-web" deleted
=> kubectl delete -f .kubes/output/web/service.yaml
service "demo-web" deleted
$

Shared Resources First

Resources in the shared folder will be applied first. Example:

.kubes/resources
├── clock
│   └── deployment.yaml
├── web
│   ├── deployment.yaml
│   └── service.yaml
└── shared
    ├── config_map.yaml
    └── secret.yaml

Results in:

$ kubes apply
=> kubectl apply -f .kubes/output/shared/secret.yaml
secret/demo-secret created
=> kubectl apply -f .kubes/output/clock/deployment.yaml
deployment.apps/demo-clock created
=> kubectl apply -f .kubes/output/web/service.yaml
service/demo-web created
=> kubectl apply -f .kubes/output/web/deployment.yaml
deployment.apps/demo-web created
$