v1alpha1

package
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: Jul 16, 2018 License: BSD-3-Clause Imports: 15 Imported by: 0

Documentation

Overview

Package v1alpha1 contains data types for Heighliner components v1alpha1.

Index

Constants

View Source
const (
	// GroupName defines the name of the group we'll use for our components.
	GroupName = "hlnr.io"

	// Version defines the version of this API.
	Version = "v1alpha1"
)

Variables

View Source
var (
	// SchemeBuilder for the svc CRD
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)

	// AddToScheme method for the svc CRD
	AddToScheme = SchemeBuilder.AddToScheme

	// SchemeGroupVersion is the Group Version used for this scheme.
	SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: Version}
)
View Source
var (
	// SemVerLevelRelease is used for a release that is ready to be rolled out
	// to production.
	SemVerLevelRelease SemVerLevel = "release"

	// SemVerLevelReleaseCandidate is used for a release-candidate that is ready
	// for QA.
	SemVerLevelReleaseCandidate SemVerLevel = "candidate"

	// SemVerLevelPreview is used for a preview release. This is generally
	// associated with development deploys.
	SemVerLevelPreview SemVerLevel = "preview"

	// SemVerVersionMajor indicates that we will release major, minor and patch
	// releases.
	SemVerVersionMajor SemVerVersion = "major"

	// SemVerVersionMinor indicates that we will release minor and patch
	// releases.
	SemVerVersionMinor SemVerVersion = "minor"

	// SemVerVersionPatch indicates that we will release only patch releases.
	SemVerVersionPatch SemVerVersion = "patch"
)
View Source
var AvailabilityPolicyValidationSchema = apiextv1beta1.JSONSchemaProps{}

AvailabilityPolicyValidationSchema represents the OpenAPIV3Schema validation for the Availability CRD.

View Source
var ConfigPolicyValidationSchema = &v1beta1.CustomResourceValidation{
	OpenAPIV3Schema: &v1beta1.JSONSchemaProps{
		Properties: map[string]v1beta1.JSONSchemaProps{
			"status": {
				Required: []string{"lastUpdatedTime", "hashed"},
			},
		},
	},
}

ConfigPolicyValidationSchema represents the OpenAPIV3Schema validation for the ConfigPolicy CRD.

View Source
var DefaultAvailabilityPolicySpec = AvailabilityPolicySpec{
	Replicas:       func(i int32) *int32 { return &i }(2),
	MinAvailable:   k8sutils.PtrIntOrString(intstr.FromInt(1)),
	MaxUnavailable: k8sutils.PtrIntOrString(intstr.FromString("25%")),
	RestartPolicy:  corev1.RestartPolicyAlways,
	DeploymentStrategy: v1beta1.DeploymentStrategy{
		Type: v1beta1.RollingUpdateDeploymentStrategyType,
		RollingUpdate: &v1beta1.RollingUpdateDeployment{
			MaxUnavailable: k8sutils.PtrIntOrString(intstr.FromString("25%")),
			MaxSurge:       k8sutils.PtrIntOrString(intstr.FromString("25%")),
		},
	},
}

DefaultAvailabilityPolicySpec is the default availability spec that will be used when it's not defined. Affinity is DeploymentSpecific so will be filled in later on.

View Source
var GitHubRepositoryValidationSchema = &v1beta1.CustomResourceValidation{
	OpenAPIV3Schema: &v1beta1.JSONSchemaProps{
		Required: []string{"spec"},
		Properties: map[string]v1beta1.JSONSchemaProps{
			"spec": {
				Required: []string{"repo", "owner", "configSecret"},
			},
		},
	},
}

GitHubRepositoryValidationSchema represents the OpenAPIV3Schema validation for the GitHubRepository CRD.

View Source
var HealthPolicyValidationSchema = &v1beta1.CustomResourceValidation{
	OpenAPIV3Schema: &v1beta1.JSONSchemaProps{
		Required: []string{"spec"},
	},
}

HealthPolicyValidationSchema represents the OpenAPIV3Schema validation for the NetworkPolicy CRD.

View Source
var ImagePolicyValidationSchema = &v1beta1.CustomResourceValidation{
	OpenAPIV3Schema: &v1beta1.JSONSchemaProps{
		Required: []string{"spec"},
		Properties: map[string]v1beta1.JSONSchemaProps{
			"spec": {
				Required: []string{"image", "versioningPolicy", "filter"},
				Properties: map[string]v1beta1.JSONSchemaProps{
					"filter": filterValidationSchema,
					"match":  matchValidationSchema,
				},
			},
			"status": ReleaseValidationSchema,
		},
	},
}

ImagePolicyValidationSchema represents the OpenAPIV3Schema validation for the NetworkPolicy CRD.

View Source
var MicroserviceValidationSchema = &v1beta1.CustomResourceValidation{
	OpenAPIV3Schema: &v1beta1.JSONSchemaProps{
		Properties: map[string]v1beta1.JSONSchemaProps{
			"spec": {
				Required: []string{"imagePolicy"},
				Properties: map[string]v1beta1.JSONSchemaProps{
					"imagePolicy": requiredObjectReference,
				},
			},
			"status": ReleaseValidationSchema,
		},
		Required: []string{"spec"},
	},
}

MicroserviceValidationSchema represents the OpenAPIV3Scheme which defines the validation for the MicroserviceSpec.

View Source
var NetworkPolicyValidationSchema = &v1beta1.CustomResourceValidation{
	OpenAPIV3Schema: &v1beta1.JSONSchemaProps{
		Required: []string{"spec"},
		Properties: map[string]v1beta1.JSONSchemaProps{
			"spec": {
				Required: []string{"updateStrategy"},
				Properties: map[string]v1beta1.JSONSchemaProps{
					"ingressClass": {
						Type: proto.String,
					},
					"ports": {
						Items: &v1beta1.JSONSchemaPropsOrArray{
							Schema: &v1beta1.JSONSchemaProps{
								Required: []string{"name", "targetPort", "port"},
							},
						},
					},
					"externalDNS": {
						Items: &v1beta1.JSONSchemaPropsOrArray{
							Schema: &v1beta1.JSONSchemaProps{
								Required: []string{"domain"},
								Properties: map[string]v1beta1.JSONSchemaProps{
									"ttl": {
										Type: proto.Integer,
									},
									"disableTLS": {
										Type: proto.Boolean,
									},
									"tlsGroup": {
										Type: proto.String,
									},
									"port": {
										Type: proto.String,
									},
								},
							},
						},
					},
				},
			},
		},
	},
}

NetworkPolicyValidationSchema represents the OpenAPIV3Schema validation for the NetworkPolicy CRD.

View Source
var ReleaseValidationSchema = v1beta1.JSONSchemaProps{
	Properties: map[string]v1beta1.JSONSchemaProps{
		"releases": {
			Required: []string{"semVer", "image", "releaseTime"},
			Properties: map[string]v1beta1.JSONSchemaProps{
				"semVer": semVerReleaseValidation,
			},
		},
	},
}

ReleaseValidationSchema represents the OpenAPIv3 validation schema for a release object.

View Source
var SecurityPolicyValidationSchema = &v1beta1.CustomResourceValidation{
	OpenAPIV3Schema: &v1beta1.JSONSchemaProps{},
}

SecurityPolicyValidationSchema represents the OpenAPIV3Schema validation for the SecurityPolicy CRD.

View Source
var VersionedMicroserviceValidationSchema = apiextv1beta1.JSONSchemaProps{
	Properties: map[string]apiextv1beta1.JSONSchemaProps{
		"availability": AvailabilityPolicyValidationSchema,
		"config":       *ConfigPolicyValidationSchema.OpenAPIV3Schema,
		"security":     *SecurityPolicyValidationSchema.OpenAPIV3Schema,
		"containers": {
			MinItems: k8sutils.PtrInt64(1),
		},
	},
	Required: []string{
		"containers",
	},
}

VersionedMicroserviceValidationSchema represents the OpenAPIV3Scheme which defines the validation for the VersionedMicroserviceSpec.

View Source
var VersioningPolicyValidationSchema = apiextv1beta1.JSONSchemaProps{
	Properties: map[string]apiextv1beta1.JSONSchemaProps{
		"semVer": {
			Properties: map[string]apiextv1beta1.JSONSchemaProps{
				"version": {
					Type: proto.String,
					Enum: []apiextv1beta1.JSON{
						{Raw: k8sutils.JSONBytes(SemVerVersionMajor)},
						{Raw: k8sutils.JSONBytes(SemVerVersionMinor)},
						{Raw: k8sutils.JSONBytes(SemVerVersionPatch)},
					},
				},
				"level": {
					Type: proto.String,
					Enum: []apiextv1beta1.JSON{
						{Raw: k8sutils.JSONBytes(SemVerLevelRelease)},
						{Raw: k8sutils.JSONBytes(SemVerLevelReleaseCandidate)},
						{Raw: k8sutils.JSONBytes(SemVerLevelPreview)},
					},
				},
			},
			Required: []string{"version", "level"},
		},
	},
}

VersioningPolicyValidationSchema represents the OpenAPIV3Schema validation for the NetworkPolicy CRD.

Functions

This section is empty.

Types

type AvailabilityPolicy

type AvailabilityPolicy struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`

	Spec AvailabilityPolicySpec `json:"spec"`
}

AvailabilityPolicy defines the configuration options for the AvailabilityPolicy. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*AvailabilityPolicy) DeepCopy

func (in *AvailabilityPolicy) DeepCopy() *AvailabilityPolicy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AvailabilityPolicy.

func (*AvailabilityPolicy) DeepCopyInto

func (in *AvailabilityPolicy) DeepCopyInto(out *AvailabilityPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AvailabilityPolicy) DeepCopyObject

func (in *AvailabilityPolicy) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AvailabilityPolicyList

type AvailabilityPolicyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []AvailabilityPolicy `json:"items"`
}

AvailabilityPolicyList is a list of AvailabilityPolicy CRDs. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*AvailabilityPolicyList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AvailabilityPolicyList.

func (*AvailabilityPolicyList) DeepCopyInto

func (in *AvailabilityPolicyList) DeepCopyInto(out *AvailabilityPolicyList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AvailabilityPolicyList) DeepCopyObject

func (in *AvailabilityPolicyList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AvailabilityPolicySpec

type AvailabilityPolicySpec struct {
	// Number of desired replicas of the service.
	Replicas *int32 `json:"replicas"`

	// An eviction is allowed if at least "minAvailable" pods selected by
	// "selector" will still be available after the eviction, i.e. even in the
	// absence of the evicted pod.  So for example you can prevent all voluntary
	// evictions by specifying "100%".
	MinAvailable *intstr.IntOrString `json:"minAvailable,omitempty"`

	// An eviction is allowed if at most "maxUnavailable" pods selected by
	// "selector" are unavailable after the eviction, i.e. even in absence of
	// the evicted pod. For example, one can prevent all voluntary evictions
	// by specifying 0. This is a mutually exclusive setting with "minAvailable".
	MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"`

	// RestartPolicy describes how the container should be restarted. Only one
	// of `Always`, `OnFailure` or `Never` restart policies may be specified.
	// If none of the policies is specified, the default one is `Always`.
	RestartPolicy corev1.RestartPolicy `json:"restartPolicy,omitempty"`

	// The deployment strategy to use to replace existing pods with new ones.
	DeploymentStrategy v1beta1.DeploymentStrategy `json:"deploymentStrategy,omitempty"`

	// The microservice's scheduling constraints.
	Affinity *corev1.Affinity `json:"affinity,omitempty"`
}

AvailabilityPolicySpec is the specification for Availability.

func (*AvailabilityPolicySpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AvailabilityPolicySpec.

func (*AvailabilityPolicySpec) DeepCopyInto

func (in *AvailabilityPolicySpec) DeepCopyInto(out *AvailabilityPolicySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ConfigPolicy

type ConfigPolicy struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`

	Spec   ConfigPolicySpec   `json:"spec"`
	Status ConfigPolicyStatus `json:"status"`
}

ConfigPolicy describes the configuration options for the ConfigPolicy. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*ConfigPolicy) DeepCopy

func (in *ConfigPolicy) DeepCopy() *ConfigPolicy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigPolicy.

func (*ConfigPolicy) DeepCopyInto

func (in *ConfigPolicy) DeepCopyInto(out *ConfigPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ConfigPolicy) DeepCopyObject

func (in *ConfigPolicy) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ConfigPolicyList

type ConfigPolicyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []ConfigPolicy `json:"items"`
}

ConfigPolicyList is a list of ConfigPolicy CRDs. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*ConfigPolicyList) DeepCopy

func (in *ConfigPolicyList) DeepCopy() *ConfigPolicyList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigPolicyList.

func (*ConfigPolicyList) DeepCopyInto

func (in *ConfigPolicyList) DeepCopyInto(out *ConfigPolicyList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ConfigPolicyList) DeepCopyObject

func (in *ConfigPolicyList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ConfigPolicySpec

type ConfigPolicySpec struct {
	Args         []string               `json:"args,omitempty"`
	Command      []string               `json:"command,omitempty"`
	Env          []corev1.EnvVar        `json:"env,omitempty"`
	EnvFrom      []corev1.EnvFromSource `json:"envFrom,omitempty"`
	VolumeMounts []corev1.VolumeMount   `json:"volumeMounts,omitempty"`
	Volumes      []corev1.Volume        `json:"volumes,omitempty"`
}

ConfigPolicySpec describes the specification for Config.

func (*ConfigPolicySpec) DeepCopy

func (in *ConfigPolicySpec) DeepCopy() *ConfigPolicySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigPolicySpec.

func (*ConfigPolicySpec) DeepCopyInto

func (in *ConfigPolicySpec) DeepCopyInto(out *ConfigPolicySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ConfigPolicyStatus

type ConfigPolicyStatus struct {
	LastUpdatedTime metav1.Time `json:"lastUpdatedTime"`
	Hashed          string      `json:"hashed"`
}

ConfigPolicyStatus represents the current status of a ConfigPolicy.

func (*ConfigPolicyStatus) DeepCopy

func (in *ConfigPolicyStatus) DeepCopy() *ConfigPolicyStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigPolicyStatus.

func (*ConfigPolicyStatus) DeepCopyInto

func (in *ConfigPolicyStatus) DeepCopyInto(out *ConfigPolicyStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Deployment

type Deployment struct {
	ID            *int64                 `json:"deployment"`
	NetworkPolicy corev1.ObjectReference `json:"networkPolicy"`
	State         string                 `json:"state"`
	URL           *string                `json:"url,omitempty"`
}

Deployment represents a linking between a GitHub deployment and a network policy. Through the release information we can determine a specific domain.

func (*Deployment) DeepCopy

func (in *Deployment) DeepCopy() *Deployment

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Deployment.

func (*Deployment) DeepCopyInto

func (in *Deployment) DeepCopyInto(out *Deployment)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Domain

type Domain struct {
	// Url is the url that points to the application
	URL string `json:"url"`

	// SemVer is the SemVer release object linked to this NetworkPolicyStatus if the
	// VersioningPolicy associated with it is SemVer.
	SemVer *SemVerRelease `json:"semVer,omitempty"`
}

Domain is represents a url associated with the NetworkPolicy and the associated SemVer

func (*Domain) DeepCopy

func (in *Domain) DeepCopy() *Domain

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Domain.

func (*Domain) DeepCopyInto

func (in *Domain) DeepCopyInto(out *Domain)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalDNS

type ExternalDNS struct {
	// IngressClass represents the class that is given to the Ingress controller
	// to handle DNS entries. This defaults to the default at the controller
	// configuration level.
	IngressClass string `json:"ingressClass"`

	// The domain name that will be linked to the service. This can be a full
	// fledged domain like `dashboard.heighliner.com` or it could be a templated
	// domain like `{.StreamName}.pr.heighliner.com`. Templated domains get
	// the data from a Release object, possible values are `Name`, `StreamName`,
	// and `FullName`.
	Domain string `json:"domain"`

	// TTL in seconds for the DNS entry, defaults to `300`.
	// Note: if multiple DNS entries are provided, the TTL of the first record
	// will be used.
	TTL int32 `json:"ttl"`

	// By default, TLS will be enabled for external access to a service.
	// Defaults to `false`.
	DisableTLS bool `json:"disableTLS"`

	// TLSGroup specifies the certificate group in which we'll store the SSL
	// Certificates. This defaults to "heighliner-components". It is recommended
	// to set this up per group of applications, this way the certificates will
	// be stored together.
	TLSGroup string `json:"tlsGroup"`

	// Port links back to a NetworkPort and will be used to guide traffic for
	// this hostname through the specified port. Defaults to `headless`.
	Port string `json:"port"`
}

ExternalDNS describes a DNS entry for a given service, allowing external access to the service. If no port is provided but a DNS entry is provided, a default headless port will be created with the internalPort `8080`.

func (*ExternalDNS) DeepCopy

func (in *ExternalDNS) DeepCopy() *ExternalDNS

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNS.

func (*ExternalDNS) DeepCopyInto

func (in *ExternalDNS) DeepCopyInto(out *ExternalDNS)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GitHubHook

type GitHubHook struct {
	// ID is the ID on GitHub for the installed hooks. This is needed to perform
	// updates and deletes.
	ID *int64 `json:"id"`

	// Secret is the secret used in GHs communication to our server.
	Secret string `json:"secret"`
}

GitHubHook represents the status object for a GiHub Webhook for the CRD.

func (*GitHubHook) DeepCopy

func (in *GitHubHook) DeepCopy() *GitHubHook

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitHubHook.

func (*GitHubHook) DeepCopyInto

func (in *GitHubHook) DeepCopyInto(out *GitHubHook)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GitHubRelease

type GitHubRelease struct {
	Name        string      `json:"name"`
	Tag         string      `json:"tag"`
	Level       SemVerLevel `json:"level"`
	ReleaseTime metav1.Time `json:"releaseTime"`
	Deployment  *Deployment `json:"deployment,omitempty"`
}

GitHubRelease represents a release made in GitHub

func (*GitHubRelease) DeepCopy

func (in *GitHubRelease) DeepCopy() *GitHubRelease

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitHubRelease.

func (*GitHubRelease) DeepCopyInto

func (in *GitHubRelease) DeepCopyInto(out *GitHubRelease)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GitHubRepository

type GitHubRepository struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`

	Spec   GitHubRepositorySpec   `json:"spec"`
	Status GitHubRepositoryStatus `json:"status"`
}

GitHubRepository represents the configuration for a specific GitHub repository. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*GitHubRepository) DeepCopy

func (in *GitHubRepository) DeepCopy() *GitHubRepository

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitHubRepository.

func (*GitHubRepository) DeepCopyInto

func (in *GitHubRepository) DeepCopyInto(out *GitHubRepository)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GitHubRepository) DeepCopyObject

func (in *GitHubRepository) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type GitHubRepositoryList

type GitHubRepositoryList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []GitHubRepository `json:"items"`
}

GitHubRepositoryList is a list of GitHubRepositories. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*GitHubRepositoryList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitHubRepositoryList.

func (*GitHubRepositoryList) DeepCopyInto

func (in *GitHubRepositoryList) DeepCopyInto(out *GitHubRepositoryList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GitHubRepositoryList) DeepCopyObject

func (in *GitHubRepositoryList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type GitHubRepositorySpec

type GitHubRepositorySpec struct {
	// MaxAvailable is the maximum number of releases for a specific level that
	// should be kept. When the number of releases grows over this amount, the
	// oldes release will be sunsetted.
	MaxAvailable int `json:"maxAvailable"`

	// Repo is the name of the repository we want to monitor
	Repo string `json:"repo"`

	// Owner is the owner of the repository, often specified as team.
	Owner string `json:"owner"`

	// ConfigSecret represent the secret that houses the API token to
	// communicate with the given repository.
	ConfigSecret corev1.LocalObjectReference `json:"configSecret"`
}

GitHubRepositorySpec represents the specification for a GitHubRepository.

func (*GitHubRepositorySpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitHubRepositorySpec.

func (*GitHubRepositorySpec) DeepCopyInto

func (in *GitHubRepositorySpec) DeepCopyInto(out *GitHubRepositorySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GitHubRepositorySpec) Slug

func (r *GitHubRepositorySpec) Slug() string

Slug returns the slug of the repository.

type GitHubRepositoryStatus

type GitHubRepositoryStatus struct {
	// Releases represents the available releases on GitHub for the associated
	// repositories.
	Releases []GitHubRelease `json:"releases"`

	// Webhook represents the installed Webhook information for the GitHub
	// Repository.
	Webhook *GitHubHook `json:"webhook"`
}

GitHubRepositoryStatus represents the current status for the GitHubRepository.

func (*GitHubRepositoryStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitHubRepositoryStatus.

func (*GitHubRepositoryStatus) DeepCopyInto

func (in *GitHubRepositoryStatus) DeepCopyInto(out *GitHubRepositoryStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HealthPolicy

type HealthPolicy struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`

	Spec HealthPolicySpec `json:"spec"`
}

HealthPolicy describes the configuration options for the HealthPolicy. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*HealthPolicy) DeepCopy

func (in *HealthPolicy) DeepCopy() *HealthPolicy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthPolicy.

func (*HealthPolicy) DeepCopyInto

func (in *HealthPolicy) DeepCopyInto(out *HealthPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HealthPolicy) DeepCopyObject

func (in *HealthPolicy) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type HealthPolicyList

type HealthPolicyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []HealthPolicy `json:"items"`
}

HealthPolicyList is a list of HealthPolicy CRDs. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*HealthPolicyList) DeepCopy

func (in *HealthPolicyList) DeepCopy() *HealthPolicyList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthPolicyList.

func (*HealthPolicyList) DeepCopyInto

func (in *HealthPolicyList) DeepCopyInto(out *HealthPolicyList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HealthPolicyList) DeepCopyObject

func (in *HealthPolicyList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type HealthPolicySpec

type HealthPolicySpec struct {
	LivenessProbe  *v1.Probe `json:"livenessProbe,omitempty"`
	ReadinessProbe *v1.Probe `json:"readinessProbe,omitempty"`
}

HealthPolicySpec describes the specification which will be used for health checks.

func (*HealthPolicySpec) DeepCopy

func (in *HealthPolicySpec) DeepCopy() *HealthPolicySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthPolicySpec.

func (*HealthPolicySpec) DeepCopyInto

func (in *HealthPolicySpec) DeepCopyInto(out *HealthPolicySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ImagePolicy

type ImagePolicy struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`

	Spec   ImagePolicySpec   `json:"spec"`
	Status ImagePolicyStatus `json:"status"`
}

ImagePolicy describes the configuration options for the ImagePolicy. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*ImagePolicy) DeepCopy

func (in *ImagePolicy) DeepCopy() *ImagePolicy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImagePolicy.

func (*ImagePolicy) DeepCopyInto

func (in *ImagePolicy) DeepCopyInto(out *ImagePolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ImagePolicy) DeepCopyObject

func (in *ImagePolicy) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ImagePolicyFilter

type ImagePolicyFilter struct {
	GitHub *v1.ObjectReference `json:"github,omitempty"`
}

ImagePolicyFilter will define how we can filter where images come from

func (*ImagePolicyFilter) DeepCopy

func (in *ImagePolicyFilter) DeepCopy() *ImagePolicyFilter

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImagePolicyFilter.

func (*ImagePolicyFilter) DeepCopyInto

func (in *ImagePolicyFilter) DeepCopyInto(out *ImagePolicyFilter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ImagePolicyList

type ImagePolicyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []ImagePolicy `json:"items"`
}

ImagePolicyList is a list of ImagePolicy CRDs. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*ImagePolicyList) DeepCopy

func (in *ImagePolicyList) DeepCopy() *ImagePolicyList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImagePolicyList.

func (*ImagePolicyList) DeepCopyInto

func (in *ImagePolicyList) DeepCopyInto(out *ImagePolicyList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ImagePolicyList) DeepCopyObject

func (in *ImagePolicyList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ImagePolicyMatch

type ImagePolicyMatch struct {
	// Name defines a match on the image tag name.
	Name *ImagePolicyMatchMapping `json:"name,omitempty"`

	// Labels defines matches on image labels.
	Labels map[string]ImagePolicyMatchMapping `json:"labels,omitempty"`
}

ImagePolicyMatch defines how a release is matched to an image tag.

func (*ImagePolicyMatch) Config

func (m *ImagePolicyMatch) Config() (bool, bool)

Config returns two booleans indicating if there is name matching and label matching in this match.

func (*ImagePolicyMatch) MapName

func (m *ImagePolicyMatch) MapName(release string) (string, error)

MapName returns the Name mapping for the provided release value. It returns an error if the name mapping errors.

func (*ImagePolicyMatch) Matches

func (m *ImagePolicyMatch) Matches(release, tag string, labels map[string]string) (bool, error)

Matches returns a bool indicating if the provided image tag and labels match this match stanza. It returns an error if any of the match mappings error. If m is nil or the zero value, it uses the default match value of:

match:
  name:
    from: "{{.Tag}}"
    to: "{{.Tag}}"

type ImagePolicyMatchMapping

type ImagePolicyMatchMapping struct {

	// From transforms the release value, extracting the tag. The value is
	// formatted as a Go template string, and matches on on `{{.Tag}}`. If no
	// value is provided, "{{.Tag}}" is assumed.
	From string `json:"from,omitempty"`

	// To formats the extrated Tag value from From. If no value is provided,
	// "{{.Tag}}" is assumed.
	To string `json:"to,omitempty"`
}

ImagePolicyMatchMapping defines how a release is transformed to match an image tag or label value

func (*ImagePolicyMatchMapping) Map

func (m *ImagePolicyMatchMapping) Map(from string) (string, error)

Map translates the provided from string to a to string. It returns an error if either the configured From or To value cannot be compiled.

type ImagePolicySpec

type ImagePolicySpec struct {
	Image            string                    `json:"image"`
	ImagePullSecrets []v1.LocalObjectReference `json:"imagePullSecrets"`
	ImagePullPolicy  *v1.PullPolicy            `json:"imagePullPolicy"`
	VersioningPolicy v1.ObjectReference        `json:"versioningPolicy"`
	Filter           ImagePolicyFilter         `json:"filter"`
	Match            *ImagePolicyMatch         `json:"match,omitempty"`
}

ImagePolicySpec describes the specification for Image.

func (*ImagePolicySpec) DeepCopy

func (in *ImagePolicySpec) DeepCopy() *ImagePolicySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImagePolicySpec.

func (*ImagePolicySpec) DeepCopyInto

func (in *ImagePolicySpec) DeepCopyInto(out *ImagePolicySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ImagePolicyStatus

type ImagePolicyStatus struct {
	Releases []Release `json:"releases"`
}

ImagePolicyStatus represents the latest version of the ImagePolicy that matches the VersioningPolicy associated with it. The Status will be used by the Microservice component to build the actual Deployment.

func (*ImagePolicyStatus) DeepCopy

func (in *ImagePolicyStatus) DeepCopy() *ImagePolicyStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImagePolicyStatus.

func (*ImagePolicyStatus) DeepCopyInto

func (in *ImagePolicyStatus) DeepCopyInto(out *ImagePolicyStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LatestUpdateStrategy

type LatestUpdateStrategy struct{}

LatestUpdateStrategy will monitor the available release for a given Microservice and use the latest available release to link to the internal and external DNS.

func (*LatestUpdateStrategy) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LatestUpdateStrategy.

func (*LatestUpdateStrategy) DeepCopyInto

func (in *LatestUpdateStrategy) DeepCopyInto(out *LatestUpdateStrategy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ManualUpdateStrategy

type ManualUpdateStrategy struct {
	// SemVer is the SemVer annotation of the specific release we want to use
	// for this Microservice.
	SemVer *SemVerRelease `json:"semVer"`
}

ManualUpdateStrategy is an UpdateStrategy that is purely manual. The Controller will put in the labels as provided and won't take any other action to detect possible versions.

func (*ManualUpdateStrategy) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManualUpdateStrategy.

func (*ManualUpdateStrategy) DeepCopyInto

func (in *ManualUpdateStrategy) DeepCopyInto(out *ManualUpdateStrategy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Microservice

type Microservice struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`

	Spec   MicroserviceSpec   `json:"spec"`
	Status MicroserviceStatus `json:"status"`
}

Microservice represents the definition which we'll use to define a deployable microservice. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*Microservice) DeepCopy

func (in *Microservice) DeepCopy() *Microservice

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Microservice.

func (*Microservice) DeepCopyInto

func (in *Microservice) DeepCopyInto(out *Microservice)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Microservice) DeepCopyObject

func (in *Microservice) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type MicroserviceList

type MicroserviceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []Microservice `json:"items"`
}

MicroserviceList is a list of Microservices. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*MicroserviceList) DeepCopy

func (in *MicroserviceList) DeepCopy() *MicroserviceList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MicroserviceList.

func (*MicroserviceList) DeepCopyInto

func (in *MicroserviceList) DeepCopyInto(out *MicroserviceList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MicroserviceList) DeepCopyObject

func (in *MicroserviceList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type MicroserviceSpec

type MicroserviceSpec struct {
	// Local object references, microservice specific
	ImagePolicy  v1.LocalObjectReference `json:"imagePolicy"`
	ConfigPolicy v1.LocalObjectReference `json:"configPolicy,omitempty"`

	// Global Object References, not Microservice specific.
	AvailabilityPolicy v1.ObjectReference `json:"availabilityPolicy,omitempty"`
	SecurityPolicy     v1.ObjectReference `json:"securityPolicy,omitempty"`
	HealthPolicy       v1.ObjectReference `json:"healthPolicy,omitempty"`
}

MicroserviceSpec represents the specification for a Microservice. It houses all the policies which we'll use to build a VersionedMicroservice.

func (*MicroserviceSpec) DeepCopy

func (in *MicroserviceSpec) DeepCopy() *MicroserviceSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MicroserviceSpec.

func (*MicroserviceSpec) DeepCopyInto

func (in *MicroserviceSpec) DeepCopyInto(out *MicroserviceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MicroserviceStatus

type MicroserviceStatus struct {
	Releases []Release `json:"releases"`
}

MicroserviceStatus represents the status a specific Microservice is in.

func (*MicroserviceStatus) DeepCopy

func (in *MicroserviceStatus) DeepCopy() *MicroserviceStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MicroserviceStatus.

func (*MicroserviceStatus) DeepCopyInto

func (in *MicroserviceStatus) DeepCopyInto(out *MicroserviceStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkPolicy

type NetworkPolicy struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`

	Spec   NetworkPolicySpec   `json:"spec"`
	Status NetworkPolicyStatus `json:"status"`
}

NetworkPolicy describes the configuration options for the NetworkPolicy. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*NetworkPolicy) DeepCopy

func (in *NetworkPolicy) DeepCopy() *NetworkPolicy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicy.

func (*NetworkPolicy) DeepCopyInto

func (in *NetworkPolicy) DeepCopyInto(out *NetworkPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NetworkPolicy) DeepCopyObject

func (in *NetworkPolicy) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NetworkPolicyList

type NetworkPolicyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []NetworkPolicy `json:"items"`
}

NetworkPolicyList is a list of NetworkPolicy CRDs. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*NetworkPolicyList) DeepCopy

func (in *NetworkPolicyList) DeepCopy() *NetworkPolicyList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyList.

func (*NetworkPolicyList) DeepCopyInto

func (in *NetworkPolicyList) DeepCopyInto(out *NetworkPolicyList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NetworkPolicyList) DeepCopyObject

func (in *NetworkPolicyList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NetworkPolicySpec

type NetworkPolicySpec struct {
	// Microservice represents the name of the Microservice which we want to
	// create DNS entries for.
	// If the Microservice Name is not provided, the name of the NetworkPolicy
	// CRD will be used.
	Microservice *corev1.LocalObjectReference `json:"microservice,omitempty"`

	// SessionAffinity lets you define a config for SessionAffinity. If no
	// config is provided, SessionAffinity will be "None".
	SessionAffinity *corev1.SessionAffinityConfig `json:"sessionAffinity"`

	// Ports which we want to be accessible for the associated Microservice.
	Ports []NetworkPort `json:"ports"`

	// ExternalDNS represents the domain specification for a Microservice
	// externally.
	ExternalDNS []ExternalDNS `json:"externalDNS"`

	// UpdateStrategy defines how Heighliner will transition DNS from one
	// version to another.
	UpdateStrategy UpdateStrategy `json:"updateStrategy"`
}

NetworkPolicySpec describes the specification for Network.

func (*NetworkPolicySpec) DeepCopy

func (in *NetworkPolicySpec) DeepCopy() *NetworkPolicySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicySpec.

func (*NetworkPolicySpec) DeepCopyInto

func (in *NetworkPolicySpec) DeepCopyInto(out *NetworkPolicySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkPolicyStatus

type NetworkPolicyStatus struct {
	Domains []Domain `json:"domains"`
}

NetworkPolicyStatus provides external domains and associated SemVer from the release

func (*NetworkPolicyStatus) DeepCopy

func (in *NetworkPolicyStatus) DeepCopy() *NetworkPolicyStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyStatus.

func (*NetworkPolicyStatus) DeepCopyInto

func (in *NetworkPolicyStatus) DeepCopyInto(out *NetworkPolicyStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkPort

type NetworkPort struct {
	// The name the port will be given. This will be used to link DNS entries.
	Name string `json:"name"`

	// The port that is exposed within the service container and which the
	// application is running on.
	TargetPort int32 `json:"targetPort"`

	// The port this service will be available on from within the cluster.
	Port int32 `json:"port"`
}

NetworkPort describes a port that is exposed for a given service.

func (*NetworkPort) DeepCopy

func (in *NetworkPort) DeepCopy() *NetworkPort

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPort.

func (*NetworkPort) DeepCopyInto

func (in *NetworkPort) DeepCopyInto(out *NetworkPort)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Release

type Release struct {
	// OwnerReferences represents who the owner is of this release. This will
	// be set by the Microservice controller and reference a
	// VersionedMicroservice.
	OwnerReferences []metav1.OwnerReference `json:"ownerReference,omitempty"`

	// Image is the fully qualified image name that can be used to download the
	// image.
	Image string `json:"image"`

	// ReleaseTime represents when this version became available to be deployed.
	ReleaseTime metav1.Time `json:"releaseTime"`

	// SemVer is the SemVer release object linked to this Release if the
	// VersioningPolicy associated with it is SemVer.
	SemVer *SemVerRelease `json:"semVer,omitempty"`

	// Level is the detected maturity level for this release
	Level SemVerLevel `json:"level"`
}

Release represents a specific release for a version of an image.

func (*Release) DeepCopy

func (in *Release) DeepCopy() *Release

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Release.

func (*Release) DeepCopyInto

func (in *Release) DeepCopyInto(out *Release)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Release) FullName

func (r Release) FullName(prefix string) string

FullName creates the full name for a release. This is the stream name suffixed by a version derived hash. Microservice as a prefix.

func (Release) Name

func (r Release) Name() string

Name returns the name of the actual version.

func (Release) StreamName

func (r Release) StreamName(prefix string) string

StreamName creates the release stream name for a release. It takes the name of a Microservice as a prefix.

Stream names are based on release level:

release - `<prefix>`
candidate - `<prefix>-rc`
preview - `<prefix>-pr-<hash of branch/release name>

func (Release) String

func (r Release) String() string

String concatenates the Release values into a single unique string.

func (Release) Version

func (r Release) Version() string

Version returns the version of the release.

type SecurityPolicy

type SecurityPolicy struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`

	Spec SecurityPolicySpec `json:"spec"`
}

SecurityPolicy describes the configuration options for the SecurityPolicy. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*SecurityPolicy) DeepCopy

func (in *SecurityPolicy) DeepCopy() *SecurityPolicy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityPolicy.

func (*SecurityPolicy) DeepCopyInto

func (in *SecurityPolicy) DeepCopyInto(out *SecurityPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SecurityPolicy) DeepCopyObject

func (in *SecurityPolicy) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SecurityPolicyList

type SecurityPolicyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []SecurityPolicy `json:"items"`
}

SecurityPolicyList is a list of SecurityPolicy CRDs. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*SecurityPolicyList) DeepCopy

func (in *SecurityPolicyList) DeepCopy() *SecurityPolicyList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityPolicyList.

func (*SecurityPolicyList) DeepCopyInto

func (in *SecurityPolicyList) DeepCopyInto(out *SecurityPolicyList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SecurityPolicyList) DeepCopyObject

func (in *SecurityPolicyList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SecurityPolicySpec

type SecurityPolicySpec struct {
	ServiceAccountName           string                     `json:"serviceAccountName,omitempty"`
	AutomountServiceAccountToken bool                       `json:"automountServiceAccountToken,omitempty"`
	SecurityContext              *corev1.PodSecurityContext `json:"securityContext,omitempty"`
}

SecurityPolicySpec describes the specification for Security.

func (*SecurityPolicySpec) DeepCopy

func (in *SecurityPolicySpec) DeepCopy() *SecurityPolicySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityPolicySpec.

func (*SecurityPolicySpec) DeepCopyInto

func (in *SecurityPolicySpec) DeepCopyInto(out *SecurityPolicySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SemVerLevel

type SemVerLevel string

SemVerLevel indicates a level which we want to monitor the image registry for. It should be in the format of format. Examples: v1.2.3, v1.2.4-rc.0, v1.2.4-pr.1+201804011533 1.2.3, 1.2.4-rc.0, 1.2.4-pr.1+201804011533

type SemVerRelease

type SemVerRelease struct {
	// Name represents the name of the service to be released. For releases and
	// release candidates, this will be the name of the application, for
	// previews this will be the preview tag (generally the branch name).
	Name string `json:"name"`

	// Version is the specific version for this release in a SemVer annotation.
	Version string `json:"version"`
}

SemVerRelease represents a release which is linked to a SemVer VersioningPolicy.

func (*SemVerRelease) DeepCopy

func (in *SemVerRelease) DeepCopy() *SemVerRelease

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SemVerRelease.

func (*SemVerRelease) DeepCopyInto

func (in *SemVerRelease) DeepCopyInto(out *SemVerRelease)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SemVerRelease) String

func (r *SemVerRelease) String() string

String concatenates the SemVer Release values into a single unique string.

type SemVerSource

type SemVerSource struct {
	// Version is the type of Version we want to start tracking with this
	// Policy.
	Version SemVerVersion `json:"version"`

	// Level is the level we want to fetch images for this Microservice for.
	Level SemVerLevel `json:"level"`

	// MinVersion is the minimum version that we want to track for this Policy.
	MinVersion string `json:"minVersion"`
}

SemVerSource is a versioning policy based on semver. When semver is selected, Heighliner can watch for images on 3 different levels.

func (*SemVerSource) DeepCopy

func (in *SemVerSource) DeepCopy() *SemVerSource

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SemVerSource.

func (*SemVerSource) DeepCopyInto

func (in *SemVerSource) DeepCopyInto(out *SemVerSource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SemVerVersion

type SemVerVersion string

SemVerVersion represents the type of version we want to monitor for.

type UpdateStrategy

type UpdateStrategy struct {
	Manual *ManualUpdateStrategy `json:"manual"`
	Latest *LatestUpdateStrategy `json:"latest"`
}

UpdateStrategy allows a strategy to be defined which will allow the NetworkPolicy controller to determine when and how to transition from one version to another for a specific Microservice. The fields defined on each strategy will be used as label selectors to select the correct VersionedMicroservice.

func (*UpdateStrategy) DeepCopy

func (in *UpdateStrategy) DeepCopy() *UpdateStrategy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpdateStrategy.

func (*UpdateStrategy) DeepCopyInto

func (in *UpdateStrategy) DeepCopyInto(out *UpdateStrategy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VersionedMicroservice

type VersionedMicroservice struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`

	Spec VersionedMicroserviceSpec `json:"spec"`
}

VersionedMicroservice represents the combined state of different components in time which form a single Microservice. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*VersionedMicroservice) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersionedMicroservice.

func (*VersionedMicroservice) DeepCopyInto

func (in *VersionedMicroservice) DeepCopyInto(out *VersionedMicroservice)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VersionedMicroservice) DeepCopyObject

func (in *VersionedMicroservice) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type VersionedMicroserviceList

type VersionedMicroserviceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []VersionedMicroservice `json:"items"`
}

VersionedMicroserviceList is a list of VersionedMicroservices. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*VersionedMicroserviceList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersionedMicroserviceList.

func (*VersionedMicroserviceList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VersionedMicroserviceList) DeepCopyObject

func (in *VersionedMicroserviceList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type VersionedMicroserviceSpec

type VersionedMicroserviceSpec struct {
	Availability     *AvailabilityPolicySpec       `json:"availability,omitempty"`
	Config           *ConfigPolicySpec             `json:"config,omitempty"`
	Security         *SecurityPolicySpec           `json:"security,omitempty"`
	Containers       []corev1.Container            `json:"containers"`
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets"`
}

VersionedMicroserviceSpec represents the specification for a VersionedMicroservice.

func (*VersionedMicroserviceSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersionedMicroserviceSpec.

func (*VersionedMicroserviceSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VersioningPolicy

type VersioningPolicy struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`

	Spec VersioningPolicySpec `json:"spec"`
}

VersioningPolicy describes the configuration options for the VersioningPolicy. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*VersioningPolicy) DeepCopy

func (in *VersioningPolicy) DeepCopy() *VersioningPolicy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersioningPolicy.

func (*VersioningPolicy) DeepCopyInto

func (in *VersioningPolicy) DeepCopyInto(out *VersioningPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VersioningPolicy) DeepCopyObject

func (in *VersioningPolicy) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type VersioningPolicyList

type VersioningPolicyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []VersioningPolicy `json:"items"`
}

VersioningPolicyList is a list of VersioningPolicy CRDs. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*VersioningPolicyList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersioningPolicyList.

func (*VersioningPolicyList) DeepCopyInto

func (in *VersioningPolicyList) DeepCopyInto(out *VersioningPolicyList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VersioningPolicyList) DeepCopyObject

func (in *VersioningPolicyList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type VersioningPolicySpec

type VersioningPolicySpec struct {
	SemVer *SemVerSource `json:"semVer"`
}

VersioningPolicySpec describes the specification for Versioning.

func (*VersioningPolicySpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersioningPolicySpec.

func (*VersioningPolicySpec) DeepCopyInto

func (in *VersioningPolicySpec) DeepCopyInto(out *VersioningPolicySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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