* 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)
 | |
| 	}
 | |
| }
 |