package v1alpha5

import "github.com/oslokommune/okctl/pkg/apis/eksctl.io/v1alpha5"

nolint stylecheck

Index

Constants

const (
	// ClusterConfigKind maps up the resource Kind defined by eksctl
	ClusterConfigKind = "ClusterConfig"
	// ClusterConfigAPIVersion maps up the API Version we currently use towards eksctl
	ClusterConfigAPIVersion = "eksctl.io/v1alpha5"
)
const (
	CloudWatchAPILogging               = "api"
	CloudWatchAuditLogging             = "audit"
	CloudWatchAuthenticatorLogging     = "authenticator"
	CloudWatchControllerManagerLogging = "controllerManager"
	CloudWatchSchedulerLogging         = "scheduler"
)

nolint: golint

Functions

func AllCloudWatchLogging

func AllCloudWatchLogging() []string

AllCloudWatchLogging returns all the available cloud watch loggers

Types

type Addon

type Addon struct {
	Name                string   `json:"name,omitempty"`
	AttachPolicyARNs    []string `json:"attachPolicyARNs,omitempty"`
	PermissionsBoundary string   `json:"permissionsBoundary,omitempty"`
	Version             string   `json:"version"`
}

Addon holds the EKS addon configuration

type ClusterCloudWatch

type ClusterCloudWatch struct {
	ClusterLogging *ClusterCloudWatchLogging `json:"clusterLogging,omitempty"`
}

ClusterCloudWatch maps up parts of the eksctl config that we require

type ClusterCloudWatchLogging

type ClusterCloudWatchLogging struct {
	EnableTypes []string `json:"enableTypes,omitempty"`
}

ClusterCloudWatchLogging maps up parts of the eksctl config that we require

type ClusterConfig

type ClusterConfig struct {
	metav1.TypeMeta `json:",inline"`

	Metadata        ClusterMeta        `json:"metadata"`
	IAM             ClusterIAM         `json:"iam"`
	VPC             *ClusterVPC        `json:"vpc,omitempty"`
	FargateProfiles []FargateProfile   `json:"fargateProfiles,omitempty"`
	NodeGroups      []NodeGroup        `json:"nodeGroups,omitempty"`
	Status          *ClusterStatus     `json:"status,omitempty"`
	CloudWatch      *ClusterCloudWatch `json:"cloudWatch,omitempty"`
	Addons          []*Addon           `json:"addons,omitempty"`
}

ClusterConfig is a recreation of: https://github.com/weaveworks/eksctl/blob/master/pkg/apis/eksctl.io/v1alpha5/types.go where we have extract the parts that we are interested in for managing a eksctl cluster

func (*ClusterConfig) YAML

func (c *ClusterConfig) YAML() ([]byte, error)

YAML returns a serializes version of the config

type ClusterEndpoints

type ClusterEndpoints struct {
	PrivateAccess bool `json:"privateAccess"`
	PublicAccess  bool `json:"publicAccess"`
}

ClusterEndpoints comes from eksctl and maps up what we need

type ClusterIAM

type ClusterIAM struct {
	ServiceRolePermissionsBoundary             string                      `json:"serviceRolePermissionsBoundary,omitempty"`
	FargatePodExecutionRolePermissionsBoundary string                      `json:"fargatePodExecutionRolePermissionsBoundary,omitempty"`
	WithOIDC                                   bool                        `json:"withOIDC"`
	ServiceAccounts                            []*ClusterIAMServiceAccount `json:"serviceAccounts,omitempty"`
}

ClusterIAM comes from eksctl and maps up what we need

type ClusterIAMMeta

type ClusterIAMMeta struct {
	Name      string            `json:"name,omitempty"`
	Namespace string            `json:"namespace,omitempty"`
	Labels    map[string]string `json:"labels,omitempty"`
}

ClusterIAMMeta holds information we can use to create ObjectMeta for service accounts

type ClusterIAMServiceAccount

type ClusterIAMServiceAccount struct {
	ClusterIAMMeta      `json:"metadata,omitempty"`
	AttachPolicyARNs    []string `json:"attachPolicyARNs"`
	PermissionsBoundary string   `json:"permissionsBoundary"`
}

ClusterIAMServiceAccount comes from eksctl and maps up what we need

type ClusterMeta

type ClusterMeta struct {
	Name    string            `json:"name"`
	Region  string            `json:"region"`
	Version string            `json:"version,omitempty"`
	Tags    map[string]string `json:"tags,omitempty"`
}

ClusterMeta comes from eksctl and maps up what we need

func (*ClusterMeta) String

func (c *ClusterMeta) String() string

type ClusterNetwork

type ClusterNetwork struct {
	ID   string `json:"id"`
	CIDR string `json:"cidr"`
}

ClusterNetwork comes from eksctl and maps up what we need

type ClusterStatus

type ClusterStatus struct {
	Endpoint                 string `json:"endpoint,omitempty"`
	CertificateAuthorityData []byte `json:"certificateAuthorityData,omitempty"`
	ARN                      string `json:"arn,omitempty"`
	StackName                string `json:"stackName,omitempty"`
}

ClusterStatus hold read-only attributes of a cluster

type ClusterSubnets

type ClusterSubnets struct {
	Private map[string]ClusterNetwork `json:"private"`
	Public  map[string]ClusterNetwork `json:"public"`
}

ClusterSubnets comes from eksctl and maps up what we need

type ClusterVPC

type ClusterVPC struct {
	ID               string           `json:"id"`
	CIDR             string           `json:"cidr"`
	ClusterEndpoints ClusterEndpoints `json:"clusterEndpoints"`
	Subnets          ClusterSubnets   `json:"subnets"`
}

ClusterVPC comes from eksctl and maps up what we need

type FargateProfile

type FargateProfile struct {
	Name      string                   `json:"name"`
	Selectors []FargateProfileSelector `json:"selectors"`
}

FargateProfile comes from eksctl and maps up what we need

type FargateProfileSelector

type FargateProfileSelector struct {
	Namespace string `json:"namespace"`
}

FargateProfileSelector comes from eksctl and maps up what we need

type NodeGroup

type NodeGroup struct {
	Name              string            `json:"name"`
	InstanceType      string            `json:"instanceType"`
	Labels            map[string]string `json:"labels"`
	Tags              map[string]string `json:"tags"`
	PrivateNetworking bool              `json:"privateNetworking"`
	AvailabilityZones []string          `json:"availabilityZones"`

	VolumeSize      int  `json:"volumeSize"`
	VolumeEncrypted bool `json:"volumeEncrypted"`

	ScalingConfig `json:",inline"`
}

NodeGroup comes from eksctl and maps up what we need

type ScalingConfig

type ScalingConfig struct {
	DesiredCapacity int `json:"desiredCapacity"`
	MinSize         int `json:"minSize"`
	MaxSize         int `json:"maxSize"`
}

ScalingConfig comes from eksctl and maps up what we need

Source Files

clusterconfig_v1alpha5.go

Version
v0.0.106 (latest)
Published
Oct 21, 2022
Platform
linux/amd64
Imports
3 packages
Last checked
18 hours ago

Tools for package owners.