692b27578c
* Add context option to runtime; Add dynamic namespace to kubectl client * Add namespace runtime arg * Fixes & Debugging * Pass options in k8s runtime * Set namespace on k8s resources * Additional Logging * More debugging * Remove Debugging * Ensure namespace exists * Add debugging * Refactor namespaceExists check * Fix * Fix * Fix * Fix * Change the way we check for namespace * Fix * Tidying Up * Fix Test * Fix merge bugs * Serialize k8s namespaces * Add namespace to watch * Serialize namespace when creating k8s namespace Co-authored-by: Ben Toogood <ben@micro.mu> Co-authored-by: Asim Aslam <asim@aslam.me>
108 lines
2.4 KiB
Go
108 lines
2.4 KiB
Go
package client
|
|
|
|
type CreateOptions struct {
|
|
Namespace string
|
|
}
|
|
|
|
type GetOptions struct {
|
|
Namespace string
|
|
Labels map[string]string
|
|
}
|
|
type UpdateOptions struct {
|
|
Namespace string
|
|
}
|
|
type DeleteOptions struct {
|
|
Namespace string
|
|
}
|
|
type ListOptions struct {
|
|
Namespace string
|
|
}
|
|
|
|
type LogOptions struct {
|
|
Namespace string
|
|
Params map[string]string
|
|
}
|
|
|
|
type WatchOptions struct {
|
|
Namespace string
|
|
Params map[string]string
|
|
}
|
|
|
|
type CreateOption func(*CreateOptions)
|
|
type GetOption func(*GetOptions)
|
|
type UpdateOption func(*UpdateOptions)
|
|
type DeleteOption func(*DeleteOptions)
|
|
type ListOption func(*ListOptions)
|
|
type LogOption func(*LogOptions)
|
|
type WatchOption func(*WatchOptions)
|
|
|
|
// LogParams provides additional params for logs
|
|
func LogParams(p map[string]string) LogOption {
|
|
return func(l *LogOptions) {
|
|
l.Params = p
|
|
}
|
|
}
|
|
|
|
// WatchParams used for watch params
|
|
func WatchParams(p map[string]string) WatchOption {
|
|
return func(w *WatchOptions) {
|
|
w.Params = p
|
|
}
|
|
}
|
|
|
|
// CreateNamespace sets the namespace for creating a resource
|
|
func CreateNamespace(ns string) CreateOption {
|
|
return func(o *CreateOptions) {
|
|
o.Namespace = SerializeResourceName(ns)
|
|
}
|
|
}
|
|
|
|
// GetNamespace sets the namespace for getting a resource
|
|
func GetNamespace(ns string) GetOption {
|
|
return func(o *GetOptions) {
|
|
o.Namespace = SerializeResourceName(ns)
|
|
}
|
|
}
|
|
|
|
// GetLabels sets the labels for when getting a resource
|
|
func GetLabels(ls map[string]string) GetOption {
|
|
return func(o *GetOptions) {
|
|
o.Labels = ls
|
|
}
|
|
}
|
|
|
|
// UpdateNamespace sets the namespace for updating a resource
|
|
func UpdateNamespace(ns string) UpdateOption {
|
|
return func(o *UpdateOptions) {
|
|
o.Namespace = SerializeResourceName(ns)
|
|
}
|
|
}
|
|
|
|
// DeleteNamespace sets the namespace for deleting a resource
|
|
func DeleteNamespace(ns string) DeleteOption {
|
|
return func(o *DeleteOptions) {
|
|
o.Namespace = SerializeResourceName(ns)
|
|
}
|
|
}
|
|
|
|
// ListNamespace sets the namespace for listing resources
|
|
func ListNamespace(ns string) ListOption {
|
|
return func(o *ListOptions) {
|
|
o.Namespace = SerializeResourceName(ns)
|
|
}
|
|
}
|
|
|
|
// LogNamespace sets the namespace for logging a resource
|
|
func LogNamespace(ns string) LogOption {
|
|
return func(o *LogOptions) {
|
|
o.Namespace = SerializeResourceName(ns)
|
|
}
|
|
}
|
|
|
|
// WatchNamespace sets the namespace for watching a resource
|
|
func WatchNamespace(ns string) WatchOption {
|
|
return func(o *WatchOptions) {
|
|
o.Namespace = SerializeResourceName(ns)
|
|
}
|
|
}
|