Documentation
¶
Overview ¶
Package aws implements providers.CloudProvider against AWS using aws-sdk-go-v2 and in-cluster identity (EKS Pod Identity / IRSA, resolved by the SDK's default credential chain). All calls are read-only: CloudTrail LookupEvents (the AWS "what changed" lens) and EC2/ASG/EKS describes (resource health).
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is the AWS cloud provider.
func New ¶
New builds a Client from the default AWS credential chain (Pod Identity / IRSA / env / profile). region may be empty (resolved from the environment/IMDS).
func (*Client) CloudChanges ¶
func (c *Client) CloudChanges(ctx context.Context, sel providers.Selector, w providers.TimeWindow) ([]providers.Change, error)
CloudChanges returns recent MUTATING AWS control-plane events (CloudTrail LookupEvents) in the window, normalized to the engine-agnostic Change model so they join the same "what changed" timeline as GitOps diffs. When the selector carries a Name, it scopes the lookup to that resource.
Note: CloudTrail is eventually consistent (~15 min), so a too-narrow window can miss a just-made change — callers should use a generous lookback.
func (*Client) ResourceHealth ¶
func (c *Client) ResourceHealth(ctx context.Context, sel providers.Selector, _ providers.TimeWindow) (providers.LogResult, error)
ResourceHealth returns cloud-side state/health for resources backing the selector: EKS nodegroup status (cluster-scoped), ASG recent scaling activities, and — when the selector names an EC2 instance (i-…) — its instance status. Best-effort: a failing sub-query contributes an error line, not a hard failure, so partial cloud visibility still helps.