Documentation ¶
Index ¶
- Constants
- Variables
- type Behavior
- type BodyIncluderFunction
- type CallerRefFn
- type DistRepository
- type Distribution
- type DistributionBuilder
- func (b DistributionBuilder) AppendTags(tags map[string]string) DistributionBuilder
- func (b DistributionBuilder) Build() (Distribution, error)
- func (b DistributionBuilder) WithARN(arn string) DistributionBuilder
- func (b DistributionBuilder) WithAlternateDomains(domains []string) DistributionBuilder
- func (b DistributionBuilder) WithIPv6() DistributionBuilder
- func (b DistributionBuilder) WithLogging(bucketAddress, prefix string) DistributionBuilder
- func (b DistributionBuilder) WithOrigin(o Origin) DistributionBuilder
- func (b DistributionBuilder) WithTLS(certARN, securityPolicyID string) DistributionBuilder
- func (b DistributionBuilder) WithWebACL(id string) DistributionBuilder
- type DistributionRepository
- type Function
- type OAC
- type OACLister
- type OACRepository
- type Origin
- type OriginBuilder
- func (b OriginBuilder) Build() Origin
- func (b OriginBuilder) WithBehavior(pathPattern string, functions ...Function) OriginBuilder
- func (b OriginBuilder) WithCachePolicy(policy string) OriginBuilder
- func (b OriginBuilder) WithRequestPolicy(policy string) OriginBuilder
- func (b OriginBuilder) WithResponseTimeout(rpTimeout int64) OriginBuilder
- type PostCreationOperationsFunc
- type Service
Constants ¶
const ( OriginAccessPublic = k8s.CFUserOriginAccessPublic OriginAccessBucket = k8s.CFUserOriginAccessBucket )
Variables ¶
var ErrDistNotFound = errors.New("distribution not found")
ErrDistNotFound represents failure when finding/fetching a distribution
Functions ¶
This section is empty.
Types ¶
type Behavior ¶
type Behavior struct { // PathPattern is the path pattern used when configuring the Behavior PathPattern string // RequestPolicy is the ID of the origin request policy to be associated with this Behavior RequestPolicy string // CachePolicy is the ID of the cache policy to be associated with this Behavior CachePolicy string // OriginHost the origin's host this behavior belongs to OriginHost string // FunctionAssociations is a slice of Function that should be bound to this Behavior FunctionAssociations []Function }
Behavior represents a CloudFront Cache Behavior
type BodyIncluderFunction ¶ added in v0.4.0
type CallerRefFn ¶ added in v0.0.8
type CallerRefFn func() string
CallerRefFn is the function that should be called when setting the request's caller reference. It should be a unique identifier to prevent the request from being replayed. https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html
type DistRepository ¶ added in v0.1.1
type DistRepository struct { CloudFrontClient cloudfrontiface.CloudFrontAPI OACRepo OACRepository TaggingClient resourcegroupstaggingapiiface.ResourceGroupsTaggingAPIAPI CallerRef CallerRefFn WaitTimeout time.Duration RunPostCreationOperations PostCreationOperationsFunc Cfg config.Config }
func (DistRepository) ARNByGroup ¶ added in v0.1.1
func (r DistRepository) ARNByGroup(group string) (string, error)
func (DistRepository) Create ¶ added in v0.1.1
func (r DistRepository) Create(d Distribution) (Distribution, error)
func (DistRepository) Delete ¶ added in v0.1.1
func (r DistRepository) Delete(d Distribution) error
func (DistRepository) Sync ¶ added in v0.1.1
func (r DistRepository) Sync(d Distribution) (Distribution, error)
type Distribution ¶ added in v0.0.7
type Distribution struct { ID string ARN string Address string AlternateDomains []string CustomOrigins []Origin DefaultOrigin Origin Description string Group string IPv6Enabled bool Logging loggingConfig PriceClass string Tags map[string]string TLS tlsConfig WebACLID string }
Distribution represents a CloudFront distribution
func (Distribution) Exists ¶ added in v0.0.13
func (d Distribution) Exists() bool
Exists returns whether this Distribution exists on AWS or not
func (Distribution) HasOrigin ¶ added in v0.1.1
func (d Distribution) HasOrigin(originHost string) bool
func (Distribution) IsEmpty ¶ added in v0.0.13
func (d Distribution) IsEmpty() bool
IsEmpty return whether this Distribution has custom origins/behaviors
func (Distribution) OACs ¶ added in v0.1.1
func (d Distribution) OACs() []OAC
func (Distribution) SortedCustomBehaviors ¶ added in v0.0.13
func (d Distribution) SortedCustomBehaviors() []Behavior
SortedCustomBehaviors returns a slice of all custom Behavior sorted by descending path length
type DistributionBuilder ¶ added in v0.0.7
type DistributionBuilder struct {
// contains filtered or unexported fields
}
DistributionBuilder allows the construction of a Distribution
func NewDistributionBuilder ¶ added in v0.0.7
func NewDistributionBuilder(group string, cfg config.Config) DistributionBuilder
NewDistributionBuilder takes required arguments for a distribution and returns a DistributionBuilder
func (DistributionBuilder) AppendTags ¶ added in v0.0.15
func (b DistributionBuilder) AppendTags(tags map[string]string) DistributionBuilder
AppendTags takes in custom tags which should be present at the Distribution
func (DistributionBuilder) Build ¶ added in v0.0.7
func (b DistributionBuilder) Build() (Distribution, error)
Build constructs a Distribution taking into account all configuration set by previous "With*" method calls
func (DistributionBuilder) WithARN ¶ added in v0.0.13
func (b DistributionBuilder) WithARN(arn string) DistributionBuilder
WithARN takes in identifying information from an existing CloudFront to populate the resulting Distribution
func (DistributionBuilder) WithAlternateDomains ¶ added in v0.0.7
func (b DistributionBuilder) WithAlternateDomains(domains []string) DistributionBuilder
WithAlternateDomains takes a slice of domains to be added to the Distribution's alternate domains
func (DistributionBuilder) WithIPv6 ¶ added in v0.0.7
func (b DistributionBuilder) WithIPv6() DistributionBuilder
WithIPv6 enables IPv6
func (DistributionBuilder) WithLogging ¶ added in v0.0.7
func (b DistributionBuilder) WithLogging(bucketAddress, prefix string) DistributionBuilder
WithLogging takes in bucket address and file prefix to enable sending CF logs to S3
func (DistributionBuilder) WithOrigin ¶ added in v0.0.8
func (b DistributionBuilder) WithOrigin(o Origin) DistributionBuilder
WithOrigin takes in an Origin that should be part of the Distribution. If called more than once, input Origins with matching host overwrite each other, and the last one to be processed remains.
func (DistributionBuilder) WithTLS ¶ added in v0.0.7
func (b DistributionBuilder) WithTLS(certARN, securityPolicyID string) DistributionBuilder
WithTLS takes in an ACM certificate ARN and a Security Policy ID to enable TLS termination
func (DistributionBuilder) WithWebACL ¶ added in v0.0.7
func (b DistributionBuilder) WithWebACL(id string) DistributionBuilder
WithWebACL takes the ID of the Web ACL that should be associated with the Distribution
type DistributionRepository ¶ added in v0.0.8
type DistributionRepository interface { // ARNByGroup fetches the ARN from an existing Distribution in AWS that is owned by the operator and was created for // the given group. // Returns ErrDistNotFound if no existing Distribution was found. ARNByGroup(group string) (string, error) // Create creates the given Distribution on CloudFront. Returns the created dist. Create(Distribution) (Distribution, error) // Sync ensures the given Distribution is correctly configured on CloudFront. Returns synced dist. Sync(Distribution) (Distribution, error) // Delete deletes the Distribution at AWS Delete(Distribution) error }
DistributionRepository provides a DistRepository for manipulating CloudFront distributions to match desired configuration
type Function ¶ added in v0.4.0
type Function interface { ARN() string Type() k8s.FunctionType EventType() string }
func NewFunctions ¶ added in v0.4.0
func NewFunctions(fa k8s.FunctionAssociations) []Function
type OAC ¶ added in v0.1.1
type OAC struct { ID string `json:"id"` Name string `json:"name"` Description string `json:"description"` OriginName string `json:"originName"` OriginAccessControlOriginType string `json:"originAccessControlOriginType"` SigningBehavior string `json:"signingBehavior"` SigningProtocol string `json:"signingProtocol"` }
type OACLister ¶ added in v0.1.1
type OACLister interface { ListOriginAccessControlsPages(input *awscloudfront.ListOriginAccessControlsInput, fn func(*awscloudfront.ListOriginAccessControlsOutput, bool) bool) error ListOriginAccessControlsPagesWithContext(ctx context.Context, input *awscloudfront.ListOriginAccessControlsInput, fn func(*awscloudfront.ListOriginAccessControlsOutput, bool) bool, opts ...request.Option) error }
OACLister lists OACs. Using an interface to make it more testable, since otherwise we'd need to create fake requests, which can't be mocked because they are not interfaces.
func NewOACLister ¶ added in v0.1.1
func NewOACLister(client cloudfrontiface.CloudFrontAPI) OACLister
type OACRepository ¶ added in v0.1.1
type OACRepository interface { // Sync updates or creates a desired OAC. If successful, returns current OAC Sync(desired OAC) (OAC, error) // Delete deletes the OAC of given id. If successful, returns deleted OAC Delete(toBeDeleted OAC) (OAC, error) }
func NewOACRepository ¶ added in v0.1.1
func NewOACRepository(client cloudfrontiface.CloudFrontAPI, oacLister OACLister, cfg config.Config) OACRepository
type Origin ¶
type Origin struct { // Host is the origin's hostname Host string // Behaviors is the collection of Behaviors associated with this Origin Behaviors []Behavior // ResponseTimeout is how long CloudFront will wait for a response from the Origin in seconds ResponseTimeout int64 // Access is this Origin's access type (Bucket or Public) Access string // OAC configures Access Origin Control for this Origin OAC OAC }
Origin represents a CloudFront Origin and aggregates Behaviors associated with it
func (Origin) HasEqualParameters ¶ added in v0.0.8
HasEqualParameters returns whether both Origins have the same parameters. It ignores differences in Behaviors
type OriginBuilder ¶
type OriginBuilder struct {
// contains filtered or unexported fields
}
OriginBuilder allows the construction of an Origin
func NewOriginBuilder ¶
func NewOriginBuilder(distributionName, host, accessType string, cfg config.Config) OriginBuilder
NewOriginBuilder returns an OriginBuilder for a given host
func (OriginBuilder) Build ¶
func (b OriginBuilder) Build() Origin
Build creates an Origin based on configuration made so far
func (OriginBuilder) WithBehavior ¶
func (b OriginBuilder) WithBehavior(pathPattern string, functions ...Function) OriginBuilder
WithBehavior adds a Behavior to the Origin being built given a path pattern the Behavior should respond for. Also receives optional functions that should be associated to this behavior.
func (OriginBuilder) WithCachePolicy ¶ added in v0.0.10
func (b OriginBuilder) WithCachePolicy(policy string) OriginBuilder
WithCachePolicy associates a given cache policy ID with all Behaviors in the Origin being built
func (OriginBuilder) WithRequestPolicy ¶ added in v0.0.8
func (b OriginBuilder) WithRequestPolicy(policy string) OriginBuilder
WithRequestPolicy associates a given origin request policy ID with all Behaviors in the Origin being built
func (OriginBuilder) WithResponseTimeout ¶ added in v0.0.6
func (b OriginBuilder) WithResponseTimeout(rpTimeout int64) OriginBuilder
WithResponseTimeout associates a custom response timeout to custom origin
type PostCreationOperationsFunc ¶ added in v0.1.1
type PostCreationOperationsFunc func(Distribution) (Distribution, error)
PostCreationOperationsFunc executes necessary operations on a recently-created Distribution. Useful for stuff that requires the Distribution to already exist in the first place, like attaching OACs to origins.
type Service ¶ added in v0.0.13
type Service struct { client.Client Config config.Config Recorder record.EventRecorder AliasRepo route53.AliasRepository DistRepo DistributionRepository Fetcher k8s.IngressFetcher CertService certificate.Service }
Service handles operations involving CloudFront