manifests

package
v0.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 22, 2024 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	IngressControllerComponentName = "ingress-controller"
)

Variables

View Source
var (
	// NginxResourceTypes is a list of resource types used to deploy the Nginx Ingress Controller
	NginxResourceTypes = []resourceType{
		{
			Group:   netv1.GroupName,
			Version: netv1.SchemeGroupVersion.Version,
			Name:    "IngressClass",
		},
		{
			Group:   corev1.GroupName,
			Version: corev1.SchemeGroupVersion.Version,
			Name:    "ServiceAccount",
		},
		{
			Group:   rbacv1.GroupName,
			Version: rbacv1.SchemeGroupVersion.Version,
			Name:    "ClusterRole",
		},
		{
			Group:   rbacv1.GroupName,
			Version: rbacv1.SchemeGroupVersion.Version,
			Name:    "Role",
		},
		{
			Group:   rbacv1.GroupName,
			Version: rbacv1.SchemeGroupVersion.Version,
			Name:    "ClusterRoleBinding",
		},
		{
			Group:   rbacv1.GroupName,
			Version: rbacv1.SchemeGroupVersion.Version,
			Name:    "RoleBinding",
		},
		{
			Group:   corev1.GroupName,
			Version: corev1.SchemeGroupVersion.Version,
			Name:    "Service",
		},
		{
			Group:   appsv1.GroupName,
			Version: appsv1.SchemeGroupVersion.Version,
			Name:    "Deployment",
		},
		{
			Group:   corev1.GroupName,
			Version: corev1.SchemeGroupVersion.Version,
			Name:    "ConfigMap",
		},
		{
			Group:   policyv1.GroupName,
			Version: policyv1.SchemeGroupVersion.Version,
			Name:    "PodDisruptionBudget",
		},
		{
			Group:   autov1.GroupName,
			Version: autov1.SchemeGroupVersion.Version,
			Name:    "HorizontalPodAutoscaler",
		},
	}
)
View Source
var (
	// OldExternalDnsGks is a slice of GroupKinds that were previously used by ExternalDns.
	// If the manifests used by app routing's external dns removes a GroupKind be sure to add
	// it here to clean it up
	OldExternalDnsGks []schema.GroupKind
)

Functions

func AddComponentLabel added in v0.2.2

func AddComponentLabel(originalLabels map[string]string, componentName string) map[string]string

func ExternalDnsResources added in v0.0.2

func ExternalDnsResources(conf *config.Config, externalDnsConfigs []*ExternalDnsConfig) []client.Object

ExternalDnsResources returns Kubernetes objects required for external dns

func GetOwnerRefs added in v0.1.0

func GetOwnerRefs(owner client.Object, controller bool) []metav1.OwnerReference

GetOwnerRefs returns the owner references for the given object

func GetTopLevelLabels added in v0.0.3

func GetTopLevelLabels() map[string]string

GetTopLevelLabels returns labels that every resource App Routing manages have

func HasTopLevelLabels added in v0.0.6

func HasTopLevelLabels(objLabels map[string]string) bool

HasTopLevelLabels returns true if the given labels match the top level labels

func Namespace added in v0.1.0

func Namespace(conf *config.Config) *corev1.Namespace

func WithPreferSystemNodes

func WithPreferSystemNodes(spec *corev1.PodSpec) *corev1.PodSpec

Types

type ExternalDnsConfig added in v0.0.2

type ExternalDnsConfig struct {
	TenantId, Subscription, ResourceGroup string
	Provider                              Provider
	DnsZoneResourceIDs                    []string
}

ExternalDnsConfig defines configuration options for required resources for external dns

type NginxIngressConfig added in v0.0.2

type NginxIngressConfig struct {
	ControllerClass       string         // controller class which is equivalent to controller field of IngressClass
	ResourceName          string         // name given to all resources
	IcName                string         // IngressClass name
	ServiceConfig         *ServiceConfig // service config that specifies details about the LB, defaults if nil
	DefaultSSLCertificate string         // namespace/name used to create SSL certificate for the default HTTPS server (catch-all)
	MinReplicas           int32
	MaxReplicas           int32
	// TargetCPUUtilizationPercentage is the target average CPU utilization of the Ingress Controller
	TargetCPUUtilizationPercentage int32
}

NginxIngressConfig defines configuration options for required resources for an Ingress

func (*NginxIngressConfig) PodLabels added in v0.0.2

func (n *NginxIngressConfig) PodLabels() map[string]string

type NginxResources added in v0.1.0

type NginxResources struct {
	Namespace               *corev1.Namespace
	IngressClass            *netv1.IngressClass
	ServiceAccount          *corev1.ServiceAccount
	ClusterRole             *rbacv1.ClusterRole
	Role                    *rbacv1.Role
	ClusterRoleBinding      *rbacv1.ClusterRoleBinding
	RoleBinding             *rbacv1.RoleBinding
	Service                 *corev1.Service
	Deployment              *appsv1.Deployment
	ConfigMap               *corev1.ConfigMap
	HorizontalPodAutoscaler *autov1.HorizontalPodAutoscaler
	PodDisruptionBudget     *policyv1.PodDisruptionBudget
}

NginxResources is a struct that represents the Kubernetes resources that are created for the Nginx Ingress Controller. When these resources are acted upon by client-go, the fields here are updated since they are pointers to the actual resources.

func GetNginxResources added in v0.1.0

func GetNginxResources(conf *config.Config, ingressConfig *NginxIngressConfig) *NginxResources

func (*NginxResources) Objects added in v0.1.0

func (n *NginxResources) Objects() []client.Object

type Provider added in v0.0.2

type Provider int
const (
	PublicProvider Provider = iota
	PrivateProvider
)

func (Provider) Labels added in v0.0.2

func (p Provider) Labels() map[string]string

func (Provider) ResourceName added in v0.0.2

func (p Provider) ResourceName() string

func (Provider) String added in v0.0.2

func (p Provider) String() string

type ServiceConfig added in v0.0.2

type ServiceConfig struct {
	Annotations map[string]string
}

ServiceConfig defines configuration options for required resources for a Service that goes with an Ingress

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL