Runtime Namespace (#1547)
* 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>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package runtime
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io"
|
||||
)
|
||||
|
||||
@@ -66,6 +67,10 @@ type CreateOptions struct {
|
||||
Retries int
|
||||
// Specify the image to use
|
||||
Image string
|
||||
// Namespace to create the service in
|
||||
Namespace string
|
||||
// Specify the context to use
|
||||
Context context.Context
|
||||
}
|
||||
|
||||
// ReadOptions queries runtime services
|
||||
@@ -76,6 +81,10 @@ type ReadOptions struct {
|
||||
Version string
|
||||
// Type of service
|
||||
Type string
|
||||
// Namespace the service is running in
|
||||
Namespace string
|
||||
// Specify the context to use
|
||||
Context context.Context
|
||||
}
|
||||
|
||||
// CreateType sets the type of service to create
|
||||
@@ -92,6 +101,20 @@ func CreateImage(img string) CreateOption {
|
||||
}
|
||||
}
|
||||
|
||||
// CreateNamespace sets the namespace
|
||||
func CreateNamespace(ns string) CreateOption {
|
||||
return func(o *CreateOptions) {
|
||||
o.Namespace = ns
|
||||
}
|
||||
}
|
||||
|
||||
// CreateContext sets the context
|
||||
func CreateContext(ctx context.Context) CreateOption {
|
||||
return func(o *CreateOptions) {
|
||||
o.Context = ctx
|
||||
}
|
||||
}
|
||||
|
||||
// WithCommand specifies the command to execute
|
||||
func WithCommand(cmd ...string) CreateOption {
|
||||
return func(o *CreateOptions) {
|
||||
@@ -150,6 +173,66 @@ func ReadType(t string) ReadOption {
|
||||
}
|
||||
}
|
||||
|
||||
// ReadNamespace sets the namespace
|
||||
func ReadNamespace(ns string) ReadOption {
|
||||
return func(o *ReadOptions) {
|
||||
o.Namespace = ns
|
||||
}
|
||||
}
|
||||
|
||||
// ReadContext sets the context
|
||||
func ReadContext(ctx context.Context) ReadOption {
|
||||
return func(o *ReadOptions) {
|
||||
o.Context = ctx
|
||||
}
|
||||
}
|
||||
|
||||
type UpdateOption func(o *UpdateOptions)
|
||||
|
||||
type UpdateOptions struct {
|
||||
// Namespace the service is running in
|
||||
Namespace string
|
||||
// Specify the context to use
|
||||
Context context.Context
|
||||
}
|
||||
|
||||
// UpdateNamespace sets the namespace
|
||||
func UpdateNamespace(ns string) UpdateOption {
|
||||
return func(o *UpdateOptions) {
|
||||
o.Namespace = ns
|
||||
}
|
||||
}
|
||||
|
||||
// UpdateContext sets the context
|
||||
func UpdateContext(ctx context.Context) UpdateOption {
|
||||
return func(o *UpdateOptions) {
|
||||
o.Context = ctx
|
||||
}
|
||||
}
|
||||
|
||||
type DeleteOption func(o *DeleteOptions)
|
||||
|
||||
type DeleteOptions struct {
|
||||
// Namespace the service is running in
|
||||
Namespace string
|
||||
// Specify the context to use
|
||||
Context context.Context
|
||||
}
|
||||
|
||||
// DeleteNamespace sets the namespace
|
||||
func DeleteNamespace(ns string) DeleteOption {
|
||||
return func(o *DeleteOptions) {
|
||||
o.Namespace = ns
|
||||
}
|
||||
}
|
||||
|
||||
// DeleteContext sets the context
|
||||
func DeleteContext(ctx context.Context) DeleteOption {
|
||||
return func(o *DeleteOptions) {
|
||||
o.Context = ctx
|
||||
}
|
||||
}
|
||||
|
||||
// LogsOption configures runtime logging
|
||||
type LogsOption func(o *LogsOptions)
|
||||
|
||||
@@ -159,6 +242,10 @@ type LogsOptions struct {
|
||||
Count int64
|
||||
// Stream new lines?
|
||||
Stream bool
|
||||
// Namespace the service is running in
|
||||
Namespace string
|
||||
// Specify the context to use
|
||||
Context context.Context
|
||||
}
|
||||
|
||||
// LogsExistingCount confiures how many existing lines to show
|
||||
@@ -174,3 +261,17 @@ func LogsStream(stream bool) LogsOption {
|
||||
l.Stream = stream
|
||||
}
|
||||
}
|
||||
|
||||
// LogsNamespace sets the namespace
|
||||
func LogsNamespace(ns string) LogsOption {
|
||||
return func(o *LogsOptions) {
|
||||
o.Namespace = ns
|
||||
}
|
||||
}
|
||||
|
||||
// LogsContext sets the context
|
||||
func LogsContext(ctx context.Context) LogsOption {
|
||||
return func(o *LogsOptions) {
|
||||
o.Context = ctx
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user