GitHunt
CO

Non-Kubernetes-specific utility libraries which are consumed by multiple projects.

Utils

Build Status GoDoc

A set of Go libraries that provide low-level,
kubernetes-independent packages supplementing the Go
standard libs
.

Purpose

As Kubernetes grows and spins functionality out of its
core and into cooperating repositories like
apiserver, kubectl, kubeadm, etc., the need
arises for leaf repositories to house shared code and
avoid cycles in repository relationships.

This repository is intended to hold shared utilities
with no Kubernetes dependence that may be of interest
to any Go project. See these instructions for moving
an existing package to this repository.

Criteria for adding code here

  • Used by multiple Kubernetes repositories.

  • Full unit test coverage.

  • Go tools compliant (go get, go test, etc.).

  • Complex enough to be worth vendoring, rather than copying.

  • Stable, or backward compatible, API.

  • No dependence on any Kubernetes repository.

Libraries

  • Exec provides an interface for os/exec. It makes it easier
    to mock and replace in tests, especially with
    the FakeExec struct.

  • Temp provides an interface to create temporary directories. It also
    provides a FakeDir implementation to replace in tests.

  • Clock provides an interface for time-based operations. It allows
    mocking time for testing.

  • Pointer provides some functions for pointer-based operations.

  • Io provides interfaces for working with file IO. Currently it provides
    functionality for consistently reading a file.

  • NSEnter provides interfaces for executing and interacting with
    processes running within a namespace.

Contributing

Please see CONTRIBUTING.md for instructions on how to contribute.

Languages

Go98.4%Shell1.0%Makefile0.5%
Apache License 2.0
Created July 12, 2019
Updated July 12, 2019
codenrhoden/utils | GitHunt