---
# System prepended metadata

title: kapp 101
tags: [kapp]

---

# kapp 101
---
###### tags: `kapp`
---


Reference vs Workflow style?

1st video - SM 

- What kapp does?
- Comparison with kubectl
- Part of carvel
- Contents of 101 series 
- Installation (Maybe a separate video, along with part of carvel?)

2nd video (kapp deploy) SM
- basic of deploy
- changes, operations, reconciliation 
- -a and -f flags
- Show different flags using help?
- use kubectl to show created resources(watch)

3rd video (list, inspect and logs) RY
- different options for list
- inspect - raw and json?
- pod logs?

4th video (delete)  RY
- delete

---

5th video SM
- introduction to app support commands

6th video (app-change and app-group) RA
- app-change
- app-group

7th video (config-map, label, rename and service-account) PR
- config-map
- label
- rename
- service-account


----------------------------



1st video:

**[Proposed Title] - kapp Introduction**



~~It works around the notion of an application. In kapp, an application is nothing but a bunch of resources with the same label.~~

What is kapp:

kapp cli is used to deploy and view groups of Kubernetes resources as "application". It apply changes safely and predictably, watching resources as they converge to their desired state.

Side Note: Whenever we say application, it refers to the kapp application which is a group of resources.
~~kapp is a CLI tool which encourages Kubernetes users to manage resources in bulk. It works around the notion of a “Kubernetes Application” - a set of resources with the same label.~~

Why kapp:

~~As mentioned before, k~~Kapp works around the notion of an application. This brings several distinct advantages of using kapp over other tools to deploy the k8s resources. Some of them are:

* kapp shows the deployment summary before applying the changes. If application manifest is updated, it shows detailed diff against the verison of the K8s resouces that exist in the cluster. 

~~* It provides insight to the user about all the resources which will get affected before actually deploying them by doing a diff.(It empowers the user by providing a preview of all the resources which will get affected before deploy.)~~

* By default, kapp orders K8s resources so that the Kubernetes API server can successfully process them (e.g., CRDs and namespaces are created before other resources). It also let you define your own rules to declare dependencies (e.g. a Job running DB migrations must finish before the Deployment is updated).

~~* kapp provides continuous stream on the state of K8s resources. It waits for resources to be in their desired state before considering the application deployment as successful.~~

* kapp waits for resources to converge to their desired state while being transparent and indicating progress.
* kapp provides a set of commands to make GitOps workflow very easy. Assuming that you have a CI environment or some other place where kapp can run based on a trigger.

~~Carvel Tool Chain:~~ Note on Carvel Tools

kapp is part of the Carvel tool chain. Carvel is an open source project supported by an active community~~and backed by maintainers of VMWare~~. It consists of a set of reliable, single-purpose, composable tools that aid in building, configuring, and deploying applications to Kubernetes. 

More information about carvel can be found on the carvel.dev website.


In this series, we will cover primary commands of kapp cli - 

* kapp deploy – deploys the kapp application consisting of a set of K8s resources onto K8s server
* kapp inspect -  list the resources and their current state belonging to a kapp application
* Kapp list – list all the kapp applications and their current state
* kapp delete – delete kapp application and all the K8s resources belonging to it.
* Kapp app-group – combine multiple kapp deploy/delete.

Lets start with hands on and install the kapp in next video.


