Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kylemcc/kube-gen
Generate files from Kubernetes events
https://github.com/kylemcc/kube-gen
automation golang kubernetes kubernetes-events templates
Last synced: about 1 month ago
JSON representation
Generate files from Kubernetes events
- Host: GitHub
- URL: https://github.com/kylemcc/kube-gen
- Owner: kylemcc
- License: bsd-3-clause
- Created: 2016-08-04T16:37:34.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-06-15T23:57:58.000Z (7 months ago)
- Last Synced: 2024-08-04T05:01:32.669Z (5 months ago)
- Topics: automation, golang, kubernetes, kubernetes-events, templates
- Language: Go
- Size: 15.2 MB
- Stars: 64
- Watchers: 4
- Forks: 22
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# kube-gen
![latest 0.4.0](https://img.shields.io/badge/latest-0.4.0-green.svg?style=flat)
[![license](http://img.shields.io/badge/license-BSD-red.svg?style=flat)](https://raw.githubusercontent.com/kylemcc/kube-gen/master/LICENSE)
[![Check Commit](https://github.com/kylemcc/kube-gen/actions/workflows/check.yml/badge.svg)](https://github.com/kylemcc/kube-gen/actions/workflows/check.yml)`kube-gen` is a template rendering tool that generates files and executes commands based on Kubernetes events and metadata.
## Installation
#### Binary Download
See the [Releases](https://github.com/kylemcc/kube-gen/releases) page
#### Docker Container
`kube-gen` can be run as a standalone container, or bundled in a container with other applications.
Images are available on [Dockerhub](https://hub.docker.com/r/kylemcc/kube-gen):
```sh
$ docker run kylemcc/kube-gen ...
```Or [Github Package Registry](https://github.com/kylemcc/kube-gen/pkgs/container/kube-gen%2Fkube-gen):
```sh
$ docker run ghcr.io/kylemcc/kube-gen/kube-gen ...
```## Usage
When run with no arguments (or with `-h/-help`), `kube-gen` prints the following usage message.
```shell
$ kube-gen
Usage: kube-gen [options] []Render templates using Kubernetes metadata and events
Options:
-host string
If not set will use kubeconfig. If using proxy - set it to http://localhost:8001
-interval int-kubeconfig string
(optional) absolute path to the kubeconfig file (default "/Users/kyle/.kube/config")
-log-cmd
log the output of the pre/post commands (default true)
-overwrite
overwrite the output file if it exists (default true)
-post-cmd string
command to run after template generation in complete
-pre-cmd string
command to run before template generation
-quiet
when set to true, nothing is logged
-type value
types of resources to pull [pods, services, endpoints] - May be specified multiple times. If not specified, all types will be returned
-version
display version information
-wait string
[:] - the minimum and optional maximum time to wait after an event fires.E.g.: 500ms:5s
-watch
watch for new eventsArguments:
template: path or URL of the template file to render, or - to read from STDIN
output: (Optional) path to write the rendered content. If not specified,
rendered content is printed to STDOUT. By default, this file will
be overwritten if it exists. Use -overwrite=false to return an
error instead
```#### Authentication / Connecting to the Kubernetes API
By default, `kube-gen` will look for a kubeconfig file at `$HOME/.kube/config`. A different kubeconfig file may be specified by using the `-kubeconfig` flag. Alternatively, `kube-gen` provides a `-host` flag that, if set, will supersede the `-kubeconfig`. The `-host` flag is best paired with `kubectl proxy`, which listens on 127.0.0.1:8001 by default. The `-host` flag may also be set to the value of `kube-apiserver`'s `--insecure-bind-address` / `--insecure-port`.#### Watching for changes
The `-watch` flag configures `kube-gen` to watch the API for changes to `Services`, `Pods`, and `Endpoints` (support for other types is forthcoming). This mode is useul when combined with the `-pre-cmd`, `-post-cmd`, and `-wait` parameters.
## Template Language
`kube-gen` supports templates written in Go`s [text/template](https://golang.org/pkg/text/template/) language. It supports all of the [built in](https://golang.org/pkg/text/template/#hdr-Functions) functions, as well as numerous custom functions described below. Many of the custom functions (and the documentation for those functions) have been borrowed from [docker-gen](https://github.com/jwilder/docker-gen). Those functions, along with the accompanying License and Copyright are located in the [dockergen_template_functions.go](https://github.com/kylemcc/kube-gen/blob/master/dockergen_template_functions.go) source file.