git clone https://github.com/rarick/fairwinds-pod-logger.git
cd fairwinds-pod-logger/chart
helm install <deployment-name> .
git clone https://github.com/rarick/fairwinds-pod-logger.git
cd fairwinds-pod-logger/src
go install .
Application configuration will be added in the future
Key | Default | Description |
---|---|---|
image.name | rarick/fairwinds-pod-logger | Image name |
image.tag | master | Image tag |
image.pullPolicy | Always | Image pull policy |
- Add configuration options via flags and/or env variables
- Error handling, error messages
- Add interface to allow customization and extensibility of logging messages
- Allow custom annotation key / timestamp format
- Unit tests, I'm sure there's a way to test this without installing into a cluster
- Update context / timeout
- Ability to filter which namespaces are desired with an annotation, or to list from namespaces by annotation
- This could be accomplished by using
corev1.Namespace(namespaceName)
to get a NamespaceInterface, and checking the metadata on it. Update thepodAdded
call to return if the desired annotation is not found. The same approach could be used with the PodInterface.
- This could be accomplished by using
- Leader election
- I did not look into leader election much due to time constraints, but it appears you'll want to use the client-go leader-election tools
- Docker image user creation/improvements there
- Make container use dumb-init, print out a startup message, etc
- Nicer NOTES.txt
- Usage of labels
- Countless customization options
- Use of
_helpers.tpl
to reduce possibilities of error- For example, the name of the service account is repeated in 3 different places