Documentation ¶
Index ¶
- type Client
- type ClientConfig
- type Config
- type FakeClient
- func (cc *FakeClient) Apply(ctx context.Context, paths []string, serverSide bool) ([]byte, error)
- func (cc *FakeClient) Close() error
- func (cc *FakeClient) Config() *Config
- func (cc *FakeClient) Delete(ctx context.Context, ids []string) ([]byte, error)
- func (cc *FakeClient) Diff(ctx context.Context, paths []string, serverSide bool) ([]byte, error)
- func (cc *FakeClient) DiffStructured(ctx context.Context, paths []string, serverSide bool) ([]diff.Result, error)
- type FakeClientCall
- type KubeClient
- func (cc *KubeClient) Apply(ctx context.Context, paths []string, serverSide bool) ([]byte, error)
- func (cc *KubeClient) Close() error
- func (cc *KubeClient) Config() *Config
- func (cc *KubeClient) Delete(ctx context.Context, ids []string) ([]byte, error)
- func (cc *KubeClient) Diff(ctx context.Context, paths []string, serverSide bool) ([]byte, error)
- func (cc *KubeClient) DiffStructured(ctx context.Context, paths []string, serverSide bool) ([]diff.Result, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client interface { // Apply applies all of the configs at the given path. Apply(ctx context.Context, paths []string, serverSide bool) ([]byte, error) // Delete deletes the resources associated with one or more configs. Delete(ctx context.Context, ids []string) ([]byte, error) // Diff gets the diffs between the configs at the given path and the actual state of resources // in the cluster. It returns the raw output. Diff(ctx context.Context, paths []string, serverSide bool) ([]byte, error) // DiffStructured gets the diffs between the configs at the given path and the actual state of // resources in the cluster. It returns structured output. DiffStructured(ctx context.Context, paths []string, serverSide bool) ([]diff.Result, error) // Config returns the config for this cluster. Config() *Config // Close cleans up this client. Close() error }
Client is an interface that interacts with the API of a single Kubernetes cluster.
func NewFakeClient ¶
func NewFakeClient( ctx context.Context, config *ClientConfig, ) (Client, error)
NewFakeClient returns a FakeClient that works without errors.
func NewFakeClientError ¶
func NewFakeClientError( ctx context.Context, config *ClientConfig, ) (Client, error)
NewFakeClientError returns a FakeClient that simulates an error when running kubectl.
func NewKubeClient ¶
func NewKubeClient( ctx context.Context, config *ClientConfig, ) (Client, error)
NewKubeClient creates a new Client instance for a real Kubernetes cluster.
type ClientConfig ¶
type ClientConfig struct { // Config is the config for the cluster that we are communicating with. Config *Config // Debug indicates whether commands should be run with debug-level logging. Debug bool // KeepConfigs indicates whether kube client should keep around intermediate // yaml manifests. These are useful for debugging when there are apply errors. KeepConfigs bool // StreamingOutput indicates whether results should be streamed out to stdout and stderr. // Currently only applies to apply operations. StreamingOutput bool // Extra environment variables to add into kubectl calls. ExtraEnv []string }
ClientConfig stores the configuration necessary to create a Client.
type Config ¶
type Config struct { // Cluster is the name of the cluster. // // Required. Cluster string `json:"cluster"` // Region is the region for this cluster, e.g. us-west-2. // // Required. Region string `json:"region"` // Env is the environment for this cluster, e.g. production. // // Required. Environment string `json:"environment"` // AccountName is the name of the account where this cluster is running. // // Required. AccountName string `json:"accountName"` // AccountID is the ID of the account where this cluster is running. // // Required. AccountID string `json:"accountID"` // Version is the cluster version. // // Optional. Version string `json:"version"` // ConfigHash is a hash of the input configs and parameters for this cluster. It // can be used to compare the configuration states of various clusters. ConfigHash string `json:"configHash"` // ExpandedPath is the path to the results of expanding out all of the configs for this cluster. // // Optional, defaults to "expanded/[env]/[region]" if not set. ExpandedPath string `json:"expandedPath"` // Parameters are key/value pairs to be used for go templating. // // Optional. Parameters map[string]interface{} `json:"parameters"` // KubeConfigPath is the path to a kubeconfig that can be used with this cluster. // // Optional, defaults to value set on command-line (when running kubeapply manually) or // automatically generated via AWS API (when running in lambdas case). KubeConfigPath string `json:"kubeConfig"` // ServerSideApply sets whether we should be using server-side applies and diffs for this // cluster. ServerSideApply bool `json:"serverSideApply"` }
Config represents the configuration for a single Kubernetes cluster in a single region and environment / account.
func (Config) ShortRegion ¶
ShortRegion converts the region in the cluster config to a short form that may be used in some templates.
type FakeClient ¶
type FakeClient struct { NoDiffs bool Calls []FakeClientCall // contains filtered or unexported fields }
FakeClient is a fake implementation of a Client. For testing purposes only.
func (*FakeClient) Apply ¶
func (cc *FakeClient) Apply( ctx context.Context, paths []string, serverSide bool, ) ([]byte, error)
Apply runs a fake apply using the configs in the argument path.
func (*FakeClient) Config ¶
func (cc *FakeClient) Config() *Config
Config returns this client's cluster config.
func (*FakeClient) Diff ¶
Diff gets the diffs between the configs at the given path and the actual state of resources in the cluster. It returns the raw output.
func (*FakeClient) DiffStructured ¶
func (cc *FakeClient) DiffStructured( ctx context.Context, paths []string, serverSide bool, ) ([]diff.Result, error)
DiffStructured gets the diffs between the configs at the given path and the actual state of resources in the cluster. It returns structured output.
type FakeClientCall ¶
FakeClientCall records a call that was made using the FakeClient.
type KubeClient ¶
type KubeClient struct {
// contains filtered or unexported fields
}
KubeClient is an implementation of a Client that hits an actual Kubernetes API. It's backed by a kube.OrderedClient which, in turn, wraps kubectl.
func (*KubeClient) Apply ¶
func (cc *KubeClient) Apply( ctx context.Context, paths []string, serverSide bool, ) ([]byte, error)
Apply does a kubectl apply for the resources at the argument path.
func (*KubeClient) Close ¶
func (cc *KubeClient) Close() error
Close closes the client and cleans up all of the associated resources.
func (*KubeClient) Config ¶
func (cc *KubeClient) Config() *Config
Config returns this client's cluster config.
func (*KubeClient) Delete ¶
Delete deletes one or more resources associated with the argument paths.
func (*KubeClient) Diff ¶
Diff gets the diffs between the configs at the given path and the actual state of resources in the cluster. It returns the raw output.
func (*KubeClient) DiffStructured ¶
func (cc *KubeClient) DiffStructured( ctx context.Context, paths []string, serverSide bool, ) ([]diff.Result, error)
DiffStructured gets the diffs between the configs at the given path and the actual state of resources in the cluster. It returns structured output.