Skip to content

Commit

Permalink
add mutation
Browse files Browse the repository at this point in the history
Signed-off-by: cndoit18 <cndoit18@outlook.com>
  • Loading branch information
cndoit18 authored and bitsf committed Jun 30, 2021
1 parent 92439b6 commit 2c80a32
Show file tree
Hide file tree
Showing 4 changed files with 99 additions and 0 deletions.
39 changes: 39 additions & 0 deletions apis/goharbor.io/v1beta1/harborcluster_webhook.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,45 @@ const (
// Log used this webhook.
var clog = logf.Log.WithName("harborcluster-resource")

// +kubebuilder:webhook:verbs=create;update,path=/mutate-goharbor-io-v1beta1-harborcluster,mutating=true,failurePolicy=fail,groups=goharbor.io,resources=harborclusters,versions=v1beta1,name=mharborcluster.kb.io.v1beta1,admissionReviewVersions={"v1beta1"},sideEffects=None

var _ webhook.Defaulter = &HarborCluster{}

func (harborcluster *HarborCluster) Default() {
switch harborcluster.Spec.Cache.Kind {
case KindCacheRedis:
harborcluster.Spec.Cache.Spec.RedisFailover = nil
case KindCacheRedisFailover:
harborcluster.Spec.Cache.Spec.Redis = nil
}

switch harborcluster.Spec.Database.Kind {
case KindDatabasePostgreSQL:
harborcluster.Spec.Database.Spec.ZlandoPostgreSQL = nil
case KindDatabaseZlandoPostgreSQL:
harborcluster.Spec.Database.Spec.PostgreSQL = nil
}

switch harborcluster.Spec.Storage.Kind {
case KindStorageFileSystem:
harborcluster.Spec.Storage.Spec.S3 = nil
harborcluster.Spec.Storage.Spec.Swift = nil
harborcluster.Spec.Storage.Spec.MinIO = nil
case KindStorageS3:
harborcluster.Spec.Storage.Spec.FileSystem = nil
harborcluster.Spec.Storage.Spec.Swift = nil
harborcluster.Spec.Storage.Spec.MinIO = nil
case KindStorageSwift:
harborcluster.Spec.Storage.Spec.S3 = nil
harborcluster.Spec.Storage.Spec.FileSystem = nil
harborcluster.Spec.Storage.Spec.MinIO = nil
case KindStorageMinIO:
harborcluster.Spec.Storage.Spec.S3 = nil
harborcluster.Spec.Storage.Spec.Swift = nil
harborcluster.Spec.Storage.Spec.FileSystem = nil
}
}

// +kubebuilder:webhook:verbs=create;update,path=/validate-goharbor-io-v1beta1-harborcluster,mutating=false,failurePolicy=fail,groups=goharbor.io,resources=harborclusters,versions=v1beta1,name=vharborcluster.kb.io.v1beta1,admissionReviewVersions={"v1beta1"},sideEffects=None

var _ webhook.Validator = &HarborCluster{}
Expand Down
20 changes: 20 additions & 0 deletions charts/harbor-operator/templates/mutatingwebhookconfiguration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,23 @@ webhooks:
resources:
- harborclusters
sideEffects: None
- admissionReviewVersions:
- v1beta1
clientConfig:
service:
name: '{{ include "chart.fullname" . }}-webhook-service'
namespace: {{ .Release.Namespace | quote }}
path: /mutate-goharbor-io-v1beta1-harborcluster
failurePolicy: Fail
name: mharborcluster.kb.io.v1beta1
rules:
- apiGroups:
- goharbor.io
apiVersions:
- v1beta1
operations:
- CREATE
- UPDATE
resources:
- harborclusters
sideEffects: None
20 changes: 20 additions & 0 deletions manifests/cluster/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34047,6 +34047,26 @@ metadata:
goharbor.io/operator-version: v1.0.0
name: mutating-webhook-configuration
webhooks:
- admissionReviewVersions:
- v1beta1
clientConfig:
service:
name: webhook-service
namespace: harbor-operator-ns
path: /mutate-goharbor-io-v1beta1-harborcluster
failurePolicy: Fail
name: mharborcluster.kb.io.v1beta1
rules:
- apiGroups:
- goharbor.io
apiVersions:
- v1beta1
operations:
- CREATE
- UPDATE
resources:
- harborclusters
sideEffects: None
- admissionReviewVersions:
- v1beta1
clientConfig:
Expand Down
20 changes: 20 additions & 0 deletions manifests/harbor/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26365,6 +26365,26 @@ metadata:
goharbor.io/operator-version: v1.0.0
name: mutating-webhook-configuration
webhooks:
- admissionReviewVersions:
- v1beta1
clientConfig:
service:
name: webhook-service
namespace: harbor-operator-ns
path: /mutate-goharbor-io-v1beta1-harborcluster
failurePolicy: Fail
name: mharborcluster.kb.io.v1beta1
rules:
- apiGroups:
- goharbor.io
apiVersions:
- v1beta1
operations:
- CREATE
- UPDATE
resources:
- harborclusters
sideEffects: None
- admissionReviewVersions:
- v1beta1
clientConfig:
Expand Down

0 comments on commit 2c80a32

Please sign in to comment.