Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(affinity): support affinity #956

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions apis/goharbor.io/v1beta1/chartmuseum_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,18 @@ type ChartMuseumSpec struct {

// +kubebuilder:validation:Optional
Network *harbormetav1.Network `json:"network,omitempty"`

// +kubebuilder:validation:Optional
// Affinity is the configuration of the pod affinity.
Affinity *corev1.Affinity `json:"affinity,omitempty"`
}

func (c *ChartMuseum) SetAffinity(affinity *corev1.Affinity) {
c.Spec.Affinity = affinity
}

func (c *ChartMuseum) GetAffinity() *corev1.Affinity {
return c.Spec.Affinity
}

type ChartMuseumServerSpec struct {
Expand Down
13 changes: 13 additions & 0 deletions apis/goharbor.io/v1beta1/core_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package v1beta1

import (
harbormetav1 "github.com/goharbor/harbor-operator/apis/meta/v1alpha1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

Expand Down Expand Up @@ -84,6 +85,18 @@ type CoreSpec struct {

// +kubebuilder:validation:Optional
Trace *harbormetav1.TraceSpec `json:"trace,omitempty"`

// +kubebuilder:validation:Optional
// Affinity is the configuration of the pod affinity.
Affinity *corev1.Affinity `json:"affinity,omitempty"`
}

func (c *Core) SetAffinity(affinity *corev1.Affinity) {
c.Spec.Affinity = affinity
}

func (c *Core) GetAffinity() *corev1.Affinity {
return c.Spec.Affinity
}

type CoreRedisSpec struct {
Expand Down
13 changes: 13 additions & 0 deletions apis/goharbor.io/v1beta1/exporter_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"strconv"

harbormetav1 "github.com/goharbor/harbor-operator/apis/meta/v1alpha1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

Expand Down Expand Up @@ -71,6 +72,18 @@ type ExporterSpec struct {

// +kubebuilder:validation:Optional
Network *harbormetav1.Network `json:"network,omitempty"`

// +kubebuilder:validation:Optional
// Affinity is the configuration of the pod affinity.
Affinity *corev1.Affinity `json:"affinity,omitempty"`
}

func (e *Exporter) SetAffinity(affinity *corev1.Affinity) {
e.Spec.Affinity = affinity
}

func (e *Exporter) GetAffinity() *corev1.Affinity {
return e.Spec.Affinity
}

type ExporterCacheSpec struct {
Expand Down
12 changes: 12 additions & 0 deletions apis/goharbor.io/v1beta1/harbor_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,14 @@ func (h *Harbor) deepCopyImageSpecInto(ctx context.Context, component harbormeta
}
}

func (h *Harbor) SetAffinity(affinity *corev1.Affinity) {
h.Spec.Affinity = affinity
}

func (h *Harbor) GetAffinity() *corev1.Affinity {
return h.Spec.Affinity
}

// +kubebuilder:object:root=true
// +resource:path=harbors
// HarborList contains a list of Harbor.
Expand Down Expand Up @@ -207,6 +215,10 @@ type HarborSpec struct {
// +kubebuilder:validation:Optional
// Trace settings for the harbor
Trace *harbormetav1.TraceSpec `json:"trace,omitempty"`

// +kubebuilder:validation:Optional
// Affinity is the configuration of the pod affinity.
Affinity *corev1.Affinity `json:"affinity,omitempty"`
}

func (spec *HarborSpec) ValidateNotary() *field.Error {
Expand Down
12 changes: 12 additions & 0 deletions apis/goharbor.io/v1beta1/harborcluster_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,18 @@ type EmbeddedHarborSpec struct {
// +kubebuilder:validation:Pattern="[0-9]+\\.[0-9]+\\.[0-9]+"
// The version of the harbor, eg 2.1.2
Version string `json:"version"`

// +kubebuilder:validation:Optional
// Affinity is the configuration of the pod affinity.
Affinity *corev1.Affinity `json:"affinity,omitempty"`
}

func (harborcluster *HarborCluster) SetAffinity(affinity *corev1.Affinity) {
harborcluster.Spec.Affinity = affinity
}

func (harborcluster *HarborCluster) GetAffinity() *corev1.Affinity {
return harborcluster.Spec.Affinity
}

type EmbeddedHarborComponentsSpec struct {
Expand Down
12 changes: 12 additions & 0 deletions apis/goharbor.io/v1beta1/jobservice_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,18 @@ type JobServiceSpec struct {

// +kubebuilder:validation:Optional
Trace *harbormetav1.TraceSpec `json:"trace,omitempty"`

// +kubebuilder:validation:Optional
// Affinity is the configuration of the pod affinity.
Affinity *corev1.Affinity `json:"affinity,omitempty"`
}

func (jobservice *JobService) SetAffinity(affinity *corev1.Affinity) {
jobservice.Spec.Affinity = affinity
}

func (jobservice *JobService) GetAffinity() *corev1.Affinity {
return jobservice.Spec.Affinity
}

type JobServiceTokenSpec struct {
Expand Down
13 changes: 13 additions & 0 deletions apis/goharbor.io/v1beta1/notaryserver_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package v1beta1

import (
harbormetav1 "github.com/goharbor/harbor-operator/apis/meta/v1alpha1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

Expand Down Expand Up @@ -59,6 +60,18 @@ type NotaryServerSpec struct {

// +kubebuilder:validation:Optional
Network *harbormetav1.Network `json:"network,omitempty"`

// +kubebuilder:validation:Optional
// Affinity is the configuration of the pod affinity.
Affinity *corev1.Affinity `json:"affinity,omitempty"`
}

func (n *NotaryServer) SetAffinity(affinity *corev1.Affinity) {
n.Spec.Affinity = affinity
}

func (n *NotaryServer) GetAffinity() *corev1.Affinity {
return n.Spec.Affinity
}

type NotaryServerTrustServiceSpec struct {
Expand Down
13 changes: 13 additions & 0 deletions apis/goharbor.io/v1beta1/notarysigner_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package v1beta1

import (
harbormetav1 "github.com/goharbor/harbor-operator/apis/meta/v1alpha1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

Expand Down Expand Up @@ -55,6 +56,18 @@ type NotarySignerSpec struct {

// +kubebuilder:validation:Optional
Network *harbormetav1.Network `json:"network,omitempty"`

// +kubebuilder:validation:Optional
// Affinity is the configuration of the pod affinity.
Affinity *corev1.Affinity `json:"affinity,omitempty"`
}

func (n *NotarySigner) SetAffinity(affinity *corev1.Affinity) {
n.Spec.Affinity = affinity
}

func (n *NotarySigner) GetAffinity() *corev1.Affinity {
return n.Spec.Affinity
}

type NotarySignerAuthenticationSpec struct {
Expand Down
13 changes: 13 additions & 0 deletions apis/goharbor.io/v1beta1/portal_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package v1beta1

import (
harbormetav1 "github.com/goharbor/harbor-operator/apis/meta/v1alpha1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

Expand Down Expand Up @@ -51,6 +52,18 @@ type PortalSpec struct {
// +kubebuilder:validation:Optional
// Network settings for the portal
Network *harbormetav1.Network `json:"network,omitempty"`

// +kubebuilder:validation:Optional
// Affinity is the configuration of the pod affinity.
Affinity *corev1.Affinity `json:"affinity,omitempty"`
}

func (p *Portal) SetAffinity(affinity *corev1.Affinity) {
p.Spec.Affinity = affinity
}

func (p *Portal) GetAffinity() *corev1.Affinity {
return p.Spec.Affinity
}

func init() { // nolint:gochecknoinits
Expand Down
12 changes: 12 additions & 0 deletions apis/goharbor.io/v1beta1/registry_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,18 @@ type RegistrySpec struct {

// +kubebuilder:validation:Optional
Trace *harbormetav1.TraceSpec `json:"trace,omitempty"`

// +kubebuilder:validation:Optional
// Affinity is the configuration of the pod affinity.
Affinity *corev1.Affinity `json:"affinity,omitempty"`
}

func (r *Registry) SetAffinity(affinity *corev1.Affinity) {
r.Spec.Affinity = affinity
}

func (r *Registry) GetAffinity() *corev1.Affinity {
return r.Spec.Affinity
}

func (r *RegistrySpec) Default() {
Expand Down
13 changes: 13 additions & 0 deletions apis/goharbor.io/v1beta1/registryctl_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package v1beta1

import (
harbormetav1 "github.com/goharbor/harbor-operator/apis/meta/v1alpha1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

Expand Down Expand Up @@ -65,6 +66,18 @@ type RegistryControllerSpec struct {

// +kubebuilder:validation:Optional
Network *harbormetav1.Network `json:"network,omitempty"`

// +kubebuilder:validation:Optional
// Affinity is the configuration of the pod affinity.
Affinity *corev1.Affinity `json:"affinity,omitempty"`
}

func (r *RegistryController) SetAffinity(affinity *corev1.Affinity) {
r.Spec.Affinity = affinity
}

func (r *RegistryController) GetAffinity() *corev1.Affinity {
return r.Spec.Affinity
}

type RegistryControllerAuthenticationSpec struct {
Expand Down
12 changes: 12 additions & 0 deletions apis/goharbor.io/v1beta1/trivy_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,18 @@ type TrivySpec struct {
// +kubebuilder:validation:Optional
// +kubebuilder:default=false
OfflineScan bool `json:"offlineScan"`

// +kubebuilder:validation:Optional
// Affinity is the configuration of the pod affinity.
Affinity *corev1.Affinity `json:"affinity,omitempty"`
}

func (t *Trivy) SetAffinity(affinity *corev1.Affinity) {
t.Spec.Affinity = affinity
}

func (t *Trivy) GetAffinity() *corev1.Affinity {
return t.Spec.Affinity
}

type TrivyUpdateSpec struct {
Expand Down
Loading