Skip to content

Commit c5389f5

Browse files
Merge pull request #224 from beagles/bind-config
Update bind configuration
2 parents 661183b + 45bce20 commit c5389f5

31 files changed

+642
-332
lines changed

api/bases/designate.openstack.org_designatebackendbind9s.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,16 @@ spec:
6565
description: ContainerImage - Designate Container Image URL (will
6666
be set to environmental default if empty)
6767
type: string
68+
controlNetworkName:
69+
default: designate
70+
description: ControlNetworkName - specify which network attachment
71+
is to be used for control, notifys and zone transfers.
72+
type: string
73+
customBindOptions:
74+
description: CustomBindOptions - custom bind9 options
75+
items:
76+
type: string
77+
type: array
6878
customServiceConfig:
6979
description: CustomServiceConfig - customize the service config using
7080
this parameter to change service defaults, or overwrite rendered
@@ -190,11 +200,19 @@ spec:
190200
description: ServiceUser - optional username used for this service
191201
to register in designate
192202
type: string
203+
storageClass:
204+
description: StorageClass
205+
type: string
206+
storageRequest:
207+
description: StorageRequest
208+
type: string
193209
transportURLSecret:
194210
description: Secret containing RabbitMq transport URL
195211
type: string
196212
required:
197213
- containerImage
214+
- controlNetworkName
215+
- storageRequest
198216
type: object
199217
status:
200218
description: DesignateBackendbind9Status defines the observed state of

api/bases/designate.openstack.org_designates.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,16 @@ spec:
482482
description: ContainerImage - Designate Container Image URL (will
483483
be set to environmental default if empty)
484484
type: string
485+
controlNetworkName:
486+
default: designate
487+
description: ControlNetworkName - specify which network attachment
488+
is to be used for control, notifys and zone transfers.
489+
type: string
490+
customBindOptions:
491+
description: CustomBindOptions - custom bind9 options
492+
items:
493+
type: string
494+
type: array
485495
customServiceConfig:
486496
description: CustomServiceConfig - customize the service config
487497
using this parameter to change service defaults, or overwrite
@@ -609,11 +619,19 @@ spec:
609619
description: ServiceUser - optional username used for this service
610620
to register in designate
611621
type: string
622+
storageClass:
623+
description: StorageClass
624+
type: string
625+
storageRequest:
626+
description: StorageRequest
627+
type: string
612628
transportURLSecret:
613629
description: Secret containing RabbitMq transport URL
614630
type: string
615631
required:
616632
- containerImage
633+
- controlNetworkName
634+
- storageRequest
617635
type: object
618636
designateCentral:
619637
description: DesignateCentral - Spec definition for the Central service

api/v1beta1/designatebackendbind9_types.go

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,6 @@ type DesignateBackendbind9Spec struct {
3838
DesignateBackendbind9SpecBase `json:",inline"`
3939
}
4040

41-
// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized.
42-
4341
// DesignateBackendbind9SpecBase -
4442
type DesignateBackendbind9SpecBase struct {
4543
// Common input parameters for all Designate services
@@ -63,6 +61,22 @@ type DesignateBackendbind9SpecBase struct {
6361
// +kubebuilder:validation:Optional
6462
// ServiceAccount - service account name used internally to provide Designate services the default SA name
6563
ServiceAccount string `json:"serviceAccount"`
64+
65+
// +kubebuilder:validation:Optional
66+
// CustomBindOptions - custom bind9 options
67+
CustomBindOptions []string `json:"customBindOptions,omitempty"`
68+
69+
// +kubebuilder:default="designate"
70+
// ControlNetworkName - specify which network attachment is to be used for control, notifys and zone transfers.
71+
ControlNetworkName string `json:"controlNetworkName"`
72+
73+
// +kubebuilder:validation:Optional
74+
// StorageClass
75+
StorageClass string `json:"storageClass,omitempty"`
76+
77+
// +kubebuilder:validation:Required
78+
// StorageRequest
79+
StorageRequest string `json:"storageRequest"`
6680
}
6781

6882
// DesignateBackendbind9Status defines the observed state of DesignateBackendbind9

api/v1beta1/zz_generated.deepcopy.go

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/designate.openstack.org_designatebackendbind9s.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,16 @@ spec:
6565
description: ContainerImage - Designate Container Image URL (will
6666
be set to environmental default if empty)
6767
type: string
68+
controlNetworkName:
69+
default: designate
70+
description: ControlNetworkName - specify which network attachment
71+
is to be used for control, notifys and zone transfers.
72+
type: string
73+
customBindOptions:
74+
description: CustomBindOptions - custom bind9 options
75+
items:
76+
type: string
77+
type: array
6878
customServiceConfig:
6979
description: CustomServiceConfig - customize the service config using
7080
this parameter to change service defaults, or overwrite rendered
@@ -190,11 +200,19 @@ spec:
190200
description: ServiceUser - optional username used for this service
191201
to register in designate
192202
type: string
203+
storageClass:
204+
description: StorageClass
205+
type: string
206+
storageRequest:
207+
description: StorageRequest
208+
type: string
193209
transportURLSecret:
194210
description: Secret containing RabbitMq transport URL
195211
type: string
196212
required:
197213
- containerImage
214+
- controlNetworkName
215+
- storageRequest
198216
type: object
199217
status:
200218
description: DesignateBackendbind9Status defines the observed state of

config/crd/bases/designate.openstack.org_designates.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,16 @@ spec:
482482
description: ContainerImage - Designate Container Image URL (will
483483
be set to environmental default if empty)
484484
type: string
485+
controlNetworkName:
486+
default: designate
487+
description: ControlNetworkName - specify which network attachment
488+
is to be used for control, notifys and zone transfers.
489+
type: string
490+
customBindOptions:
491+
description: CustomBindOptions - custom bind9 options
492+
items:
493+
type: string
494+
type: array
485495
customServiceConfig:
486496
description: CustomServiceConfig - customize the service config
487497
using this parameter to change service defaults, or overwrite
@@ -609,11 +619,19 @@ spec:
609619
description: ServiceUser - optional username used for this service
610620
to register in designate
611621
type: string
622+
storageClass:
623+
description: StorageClass
624+
type: string
625+
storageRequest:
626+
description: StorageRequest
627+
type: string
612628
transportURLSecret:
613629
description: Secret containing RabbitMq transport URL
614630
type: string
615631
required:
616632
- containerImage
633+
- controlNetworkName
634+
- storageRequest
617635
type: object
618636
designateCentral:
619637
description: DesignateCentral - Spec definition for the Central service

config/rbac/role.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,18 @@ rules:
5959
- patch
6060
- update
6161
- watch
62+
- apiGroups:
63+
- apps
64+
resources:
65+
- statefulsets
66+
verbs:
67+
- create
68+
- delete
69+
- get
70+
- list
71+
- patch
72+
- update
73+
- watch
6274
- apiGroups:
6375
- batch
6476
resources:

config/samples/designate_v1beta1_designate.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ spec:
2727
debug = true
2828
databaseAccount: designate
2929
rabbitMqClusterName: rabbitmq
30+
storageRequest: 1G
31+
storageClass: local-storage
32+
networkAttachments:
33+
- designate
3034
designateCentral:
3135
secret: osp-secret
3236
serviceUser: designate
@@ -43,6 +47,8 @@ spec:
4347
debug = true
4448
databaseAccount: designate
4549
rabbitMqClusterName: rabbitmq
50+
networkAttachments:
51+
- designate
4652
designateProducer:
4753
secret: osp-secret
4854
serviceUser: designate
@@ -59,5 +65,7 @@ spec:
5965
debug = true
6066
databaseAccount: designate
6167
rabbitMqClusterName: rabbitmq
68+
networkAttachments:
69+
- designate
6270
designateUnbound:
6371
replicas: 1

config/samples/designate_v1beta1_designate_tls.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ spec:
3030
debug = true
3131
tls:
3232
caBundleSecretName: combined-ca-bundle
33+
networkAttachments:
34+
- designate
3335
designateCentral:
3436
databaseAccount: designate
3537
serviceUser: designate
@@ -46,6 +48,10 @@ spec:
4648
customServiceConfig: |
4749
[DEFAULT]
4850
debug = true
51+
storageRequest: 1G
52+
storageClass: local-storage
53+
networkAttachments:
54+
- designate
4955
designateWorker:
5056
databaseAccount: designate
5157
serviceUser: designate
@@ -56,6 +62,8 @@ spec:
5662
debug = true
5763
tls:
5864
caBundleSecretName: combined-ca-bundle
65+
networkAttachments:
66+
- designate
5967
designateAPI:
6068
databaseAccount: designate
6169
serviceUser: designate

controllers/designate_controller.go

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ type DesignateReconciler struct {
116116
// +kubebuilder:rbac:groups=rabbitmq.openstack.org,resources=transporturls,verbs=get;list;watch;create;update;patch;delete
117117
// +kubebuilder:rbac:groups=k8s.cni.cncf.io,resources=network-attachment-definitions,verbs=get;list;watch
118118
// +kubebuilder:rbac:groups="",resources=nodes,verbs=get;list
119+
// +kubebuilder:rbac:groups=apps,resources=statefulsets,verbs=get;list;create;update;patch;delete;watch
119120

120121
// service account, role, rolebinding
121122
// +kubebuilder:rbac:groups="",resources=serviceaccounts,verbs=get;list;watch;create;update;patch
@@ -986,7 +987,7 @@ func (r *DesignateReconciler) reconcileNormal(ctx context.Context, instance *des
986987
Log.Info("Deployment Producer task reconciled")
987988

988989
// deploy designate-backendbind9
989-
designateBackendbind9, op, err := r.backendbind9DeploymentCreateOrUpdate(ctx, instance)
990+
designateBackendbind9, op, err := r.backendbind9StatefulSetCreateOrUpdate(ctx, instance)
990991
if err != nil {
991992
instance.Status.Conditions.Set(condition.FalseCondition(
992993
designatev1beta1.DesignateBackendbind9ReadyCondition,
@@ -1503,37 +1504,35 @@ func (r *DesignateReconciler) producerDeploymentCreateOrUpdate(ctx context.Conte
15031504
return deployment, op, err
15041505
}
15051506

1506-
func (r *DesignateReconciler) backendbind9DeploymentCreateOrUpdate(ctx context.Context, instance *designatev1beta1.Designate) (*designatev1beta1.DesignateBackendbind9, controllerutil.OperationResult, error) {
1507-
deployment := &designatev1beta1.DesignateBackendbind9{
1507+
func (r *DesignateReconciler) backendbind9StatefulSetCreateOrUpdate(ctx context.Context, instance *designatev1beta1.Designate) (*designatev1beta1.DesignateBackendbind9, controllerutil.OperationResult, error) {
1508+
statefulSet := &designatev1beta1.DesignateBackendbind9{
15081509
ObjectMeta: metav1.ObjectMeta{
15091510
Name: fmt.Sprintf("%s-backendbind9", instance.Name),
15101511
Namespace: instance.Namespace,
15111512
},
15121513
}
15131514

1514-
op, err := controllerutil.CreateOrUpdate(ctx, r.Client, deployment, func() error {
1515-
deployment.Spec = instance.Spec.DesignateBackendbind9
1515+
op, err := controllerutil.CreateOrUpdate(ctx, r.Client, statefulSet, func() error {
1516+
statefulSet.Spec = instance.Spec.DesignateBackendbind9
15161517
// Add in transfers from umbrella Designate CR (this instance) spec
15171518
// TODO: Add logic to determine when to set/overwrite, etc
1518-
deployment.Spec.ServiceUser = instance.Spec.ServiceUser
1519-
deployment.Spec.DatabaseHostname = instance.Status.DatabaseHostname
1520-
deployment.Spec.DatabaseAccount = instance.Spec.DatabaseAccount
1521-
deployment.Spec.Secret = instance.Spec.Secret
1522-
deployment.Spec.TransportURLSecret = instance.Status.TransportURLSecret
1523-
deployment.Spec.ServiceAccount = instance.RbacResourceName()
1524-
if len(deployment.Spec.NodeSelector) == 0 {
1525-
deployment.Spec.NodeSelector = instance.Spec.NodeSelector
1519+
statefulSet.Spec.ServiceUser = instance.Spec.ServiceUser
1520+
statefulSet.Spec.Secret = instance.Spec.Secret
1521+
statefulSet.Spec.PasswordSelectors = instance.Spec.PasswordSelectors
1522+
statefulSet.Spec.ServiceAccount = instance.RbacResourceName()
1523+
if len(statefulSet.Spec.NodeSelector) == 0 {
1524+
statefulSet.Spec.NodeSelector = instance.Spec.NodeSelector
15261525
}
15271526

1528-
err := controllerutil.SetControllerReference(instance, deployment, r.Scheme)
1527+
err := controllerutil.SetControllerReference(instance, statefulSet, r.Scheme)
15291528
if err != nil {
15301529
return err
15311530
}
15321531

15331532
return nil
15341533
})
15351534

1536-
return deployment, op, err
1535+
return statefulSet, op, err
15371536
}
15381537

15391538
func (r *DesignateReconciler) unboundDeploymentCreateOrUpdate(

0 commit comments

Comments
 (0)