Documentation
¶
Index ¶
- type APIError
- type AddProviderRequest
- type Client
- func (c *Client) AddDomain(ctx context.Context, host, provider, address, app string, confirm bool) (DomainResult, error)
- func (c *Client) AddProvider(ctx context.Context, req AddProviderRequest) (Provider, error)
- func (c *Client) Deploy(ctx context.Context, app string, req DeployRequest) (DeployResult, error)
- func (c *Client) Expose(ctx context.Context, app, host string, port int32, tls bool, issuer string, ...) (ExposeResult, error)
- func (c *Client) Guardrails(ctx context.Context) ([]Guardrail, error)
- func (c *Client) Logs(ctx context.Context, app string, tail int) ([]LogLine, error)
- func (c *Client) Providers(ctx context.Context) ([]Provider, error)
- func (c *Client) Reachability(ctx context.Context, app string) (ReachabilityResult, error)
- func (c *Client) RemoveDomain(ctx context.Context, host, provider string, confirm bool) (DomainResult, error)
- func (c *Client) Rollback(ctx context.Context, app string) (RollbackResult, error)
- func (c *Client) Scale(ctx context.Context, app string, replicas int32, confirm bool) (ScaleResult, error)
- func (c *Client) SetGuardrail(ctx context.Context, code, disposition string) ([]Guardrail, error)
- func (c *Client) Status(ctx context.Context, app string) (StatusResult, error)
- func (c *Client) Unexpose(ctx context.Context, app string) error
- type DeployRequest
- type DeployResult
- type DomainResult
- type ExposeResult
- type Guardrail
- type LogLine
- type Provider
- type ReachabilityResult
- type Release
- type RollbackResult
- type ScaleResult
- type StatusResult
- type WorkloadStatus
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type APIError ¶
type APIError struct {
StatusCode int
Code string
Message string
// NeedsConfirmation is true when a guardrail held the operation for confirmation
// rather than refusing it: retrying with confirm set lets it proceed (ADR-0020).
NeedsConfirmation bool
}
APIError is a non-2xx response from the control plane, carrying its structured error (a machine-readable code and a human message) so a tool can surface both.
type AddProviderRequest ¶ added in v0.2.0
type AddProviderRequest struct {
Name string `json:"name,omitempty"`
Type string `json:"type"`
SecretKey string `json:"secret_key,omitempty"`
}
AddProviderRequest registers a vendor credential. The token is not part of this request: the CLI writes it into the burrow-credentials Secret with the developer's kubeconfig, and only the registry entry — naming the Secret key — flows through the control plane.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a thin HTTP client for the control-plane API (ADR-0005). The MCP server holds the API bearer token to authenticate to the control plane, but never any cluster credentials — those live only in the control plane. These DTOs mirror the API's JSON contract; the MCP layer (Apache-2.0) deliberately does not import the control-plane packages (FSL), so it stays a decoupled client across the license boundary (LICENSING.md).
func NewClient ¶
NewClient returns a control-plane API client for baseURL authenticating with token, using a default HTTP client.
func NewClientWithHTTP ¶
NewClientWithHTTP is like NewClient but uses the supplied *http.Client. The connect package uses this to route requests through the Kubernetes API-server proxy with a kubeconfig-authenticated transport (ADR-0014). A nil hc gets a default client.
func (*Client) AddDomain ¶ added in v0.2.0
func (c *Client) AddDomain(ctx context.Context, host, provider, address, app string, confirm bool) (DomainResult, error)
AddDomain points host at an address through the named DNS provider (ADR-0018). Give either an explicit address or the name of an exposed app whose ingress address the control plane reads.
func (*Client) AddProvider ¶ added in v0.2.0
AddProvider registers a vendor credential in the control-plane registry and returns the recorded provider (ADR-0023).
func (*Client) Deploy ¶
func (c *Client) Deploy(ctx context.Context, app string, req DeployRequest) (DeployResult, error)
func (*Client) Guardrails ¶ added in v0.2.0
Guardrails lists the control-plane guardrails and their current dispositions.
func (*Client) Reachability ¶ added in v0.2.0
Reachability reports whether an app is reachable at its hostname, link by link.
func (*Client) RemoveDomain ¶ added in v0.2.0
func (c *Client) RemoveDomain(ctx context.Context, host, provider string, confirm bool) (DomainResult, error)
RemoveDomain removes the DNS record the provider holds for host.
func (*Client) SetGuardrail ¶ added in v0.2.0
SetGuardrail sets a guardrail's disposition and returns the updated policy.
type DeployRequest ¶
type DeployResult ¶
type DomainResult ¶ added in v0.2.0
type DomainResult struct {
Host string `json:"host"`
Provider string `json:"provider"`
Type string `json:"type,omitempty"`
Address string `json:"address,omitempty"`
}
DomainResult mirrors the control plane's DNS-record outcome (ADR-0018).
type ExposeResult ¶ added in v0.2.0
type Provider ¶ added in v0.2.0
type Provider struct {
Name string `json:"name"`
Type string `json:"type"`
Capabilities []string `json:"capabilities"`
SecretKey string `json:"secret_key"`
CreatedAt time.Time `json:"created_at"`
}
Provider mirrors a control-plane provider registry entry (ADR-0023). It carries no token — only the non-secret registry: the vendor type, the capabilities it serves, and the key under which its token lives in the burrow-credentials Secret.
type ReachabilityResult ¶ added in v0.2.0
type ReachabilityResult struct {
App string `json:"app"`
Deployed bool `json:"deployed"`
Ready bool `json:"ready"`
Exposed bool `json:"exposed"`
Host string `json:"host,omitempty"`
Address string `json:"address,omitempty"`
TLS bool `json:"tls"`
DNSPointsAtCluster bool `json:"dns_points_at_cluster"`
DNSAddresses []string `json:"dns_addresses,omitempty"`
Reachable bool `json:"reachable"`
Summary string `json:"summary"`
}
type Release ¶
type Release struct {
ID string `json:"id"`
App string `json:"app"`
Image string `json:"image"`
Digest string `json:"digest,omitempty"`
Env map[string]string `json:"env,omitempty"`
Command []string `json:"command,omitempty"`
Replicas int32 `json:"replicas"`
Status string `json:"status"`
Supersedes string `json:"supersedes,omitempty"`
CreatedAt time.Time `json:"created_at"`
}
type RollbackResult ¶
type ScaleResult ¶
type StatusResult ¶
type StatusResult struct {
App string `json:"app"`
HasRelease bool `json:"has_release"`
Release Release `json:"release,omitempty"`
Running bool `json:"running"`
Workload WorkloadStatus `json:"workload,omitempty"`
}