Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/krisnova/kaar
Kubernetes Application Archive
https://github.com/krisnova/kaar
Last synced: about 1 month ago
JSON representation
Kubernetes Application Archive
- Host: GitHub
- URL: https://github.com/krisnova/kaar
- Owner: krisnova
- License: apache-2.0
- Created: 2022-03-26T02:08:34.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-05-04T14:27:12.000Z (over 2 years ago)
- Last Synced: 2024-11-01T01:42:27.545Z (about 1 month ago)
- Language: Go
- Size: 3.15 MB
- Stars: 151
- Watchers: 3
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-repositories - krisnova/kaar - Kubernetes Application Archive (Go)
README
# kaar - Active Development!
Kubernetes Application Archive.
Bundle up a Kubernetes application 📦 into a single static OCI compliant archive.
- Search for valid Kubernetes manifests (YAML)
- Identify references to container images (OCI)
- Create a single OCI compliant artifact that contains all the application data, and container image data## Runtime
`kaar` works just like Linux `tar`, which means good luck remembering the flags.
```
app/
├── deploy.yaml # References a container image
├── Dockerfile
├── main.go
└── service.yamlkaar [flags] [archive] [path]
kaar -cf myapp.kaar ./app Create an archive with container images referenced in deploy.yaml
kaar -xf myapp.karr ./app Extract an archive with container images referenced in deploy.yaml-x Extract
-f File
-z Zip
-c Create
```### How it works
`kaar` will recursively iterate through every file in the `path` and search for valid Kubernetes YAML.
Next `kaar` will identify all container images referenced from the YAML.
Finally `kaar` will archive the container images (local first, remote next) as well as the YAML from the local directory.
The resulting archive will be saved as an OCI compliant container image that can be uploaded to any container registry.### .kaar
Within each `kaar` archive there is a special directory `.kaar` which is used to store raw container image data, and meta information for each archive.