mirror of
https://github.com/YuzuZensai/netbird-kubernetes-operator.git
synced 2026-09-13 10:49:15 +00:00
Add AllowExtraDnsLabels to setupKey CRD (#277)
This option was hardcoded to false. It is now configurable in the SetupKey CRD with a default false value. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * New allowExtraDnsLabels setting for Setup Keys to control whether peers may include extra DNS labels (disabled by default, immutable after creation). * **Documentation** * API reference updated to document the new allowExtraDnsLabels field and its default/behavior. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/netbirdio/kubernetes-operator/pull/277?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
@@ -16,6 +16,11 @@ type SetupKeySpec struct {
|
||||
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="ephemeral is immutable"
|
||||
Ephemeral bool `json:"ephemeral"`
|
||||
|
||||
// AllowExtraDnsLabels decides if peers added with the key can have extra DNS labels.
|
||||
// +kubebuilder:default=false
|
||||
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="allowExtraDnsLabels is immutable"
|
||||
AllowExtraDnsLabels bool `json:"allowExtraDnsLabels"`
|
||||
|
||||
// Duration sets how long the setup key is valid for.
|
||||
// +optional
|
||||
// +kubebuilder:validation:Type=string
|
||||
|
||||
@@ -46,6 +46,14 @@ spec:
|
||||
spec:
|
||||
description: SetupKeySpec defines the desired state of SetupKey.
|
||||
properties:
|
||||
allowExtraDnsLabels:
|
||||
default: false
|
||||
description: AllowExtraDnsLabels decides if peers added with the key
|
||||
can have extra DNS labels.
|
||||
type: boolean
|
||||
x-kubernetes-validations:
|
||||
- message: allowExtraDnsLabels is immutable
|
||||
rule: self == oldSelf
|
||||
autoGroups:
|
||||
description: AutoGroups are groups that will be automatically assigned
|
||||
to peers using setup key.
|
||||
@@ -96,6 +104,7 @@ spec:
|
||||
minLength: 1
|
||||
type: string
|
||||
required:
|
||||
- allowExtraDnsLabels
|
||||
- ephemeral
|
||||
- name
|
||||
type: object
|
||||
|
||||
@@ -46,6 +46,14 @@ spec:
|
||||
spec:
|
||||
description: SetupKeySpec defines the desired state of SetupKey.
|
||||
properties:
|
||||
allowExtraDnsLabels:
|
||||
default: false
|
||||
description: AllowExtraDnsLabels decides if peers added with the key
|
||||
can have extra DNS labels.
|
||||
type: boolean
|
||||
x-kubernetes-validations:
|
||||
- message: allowExtraDnsLabels is immutable
|
||||
rule: self == oldSelf
|
||||
autoGroups:
|
||||
description: AutoGroups are groups that will be automatically assigned
|
||||
to peers using setup key.
|
||||
@@ -96,6 +104,7 @@ spec:
|
||||
minLength: 1
|
||||
type: string
|
||||
required:
|
||||
- allowExtraDnsLabels
|
||||
- ephemeral
|
||||
- name
|
||||
type: object
|
||||
|
||||
@@ -315,6 +315,7 @@ _Appears in:_
|
||||
| --- | --- | --- | --- |
|
||||
| `name` _string_ | Name of the setup key. | | MinLength: 1 <br /> |
|
||||
| `ephemeral` _boolean_ | Ephemeral decides if peers added with the key are ephemeral or not. | | |
|
||||
| `allowExtraDnsLabels` _boolean_ | AllowExtraDnsLabels decides if peers added with the key can have extra DNS labels. | false | |
|
||||
| `duration` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)_ | Duration sets how long the setup key is valid for. | | Pattern: `^([0-9]+(\.[0-9]+)?(m\|h))+$` <br />Type: string <br />Optional: \{\} <br /> |
|
||||
| `autoGroups` _[GroupReference](#groupreference) array_ | AutoGroups are groups that will be automatically assigned to peers using setup key. | | Optional: \{\} <br /> |
|
||||
|
||||
|
||||
@@ -125,7 +125,7 @@ func (r *SetupKeyReconciler) Reconcile(ctx context.Context, req ctrl.Request) (c
|
||||
expiresIn = int(setupKey.Spec.Duration.Seconds())
|
||||
}
|
||||
setupKeyReq := api.PostApiSetupKeysJSONRequestBody{
|
||||
AllowExtraDnsLabels: new(false),
|
||||
AllowExtraDnsLabels: &setupKey.Spec.AllowExtraDnsLabels,
|
||||
AutoGroups: autoGroupIDs,
|
||||
Ephemeral: new(setupKey.Spec.Ephemeral),
|
||||
ExpiresIn: expiresIn,
|
||||
|
||||
@@ -17,6 +17,8 @@ type SetupKeySpecApplyConfiguration struct {
|
||||
Name *string `json:"name,omitempty"`
|
||||
// Ephemeral decides if peers added with the key are ephemeral or not.
|
||||
Ephemeral *bool `json:"ephemeral,omitempty"`
|
||||
// AllowExtraDnsLabels decides if peers added with the key can have extra DNS labels.
|
||||
AllowExtraDnsLabels *bool `json:"allowExtraDnsLabels,omitempty"`
|
||||
// Duration sets how long the setup key is valid for.
|
||||
Duration *v1.Duration `json:"duration,omitempty"`
|
||||
// AutoGroups are groups that will be automatically assigned to peers using setup key.
|
||||
@@ -45,6 +47,14 @@ func (b *SetupKeySpecApplyConfiguration) WithEphemeral(value bool) *SetupKeySpec
|
||||
return b
|
||||
}
|
||||
|
||||
// WithAllowExtraDnsLabels sets the AllowExtraDnsLabels field in the declarative configuration to the given value
|
||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
||||
// If called multiple times, the AllowExtraDnsLabels field is set to the value of the last call.
|
||||
func (b *SetupKeySpecApplyConfiguration) WithAllowExtraDnsLabels(value bool) *SetupKeySpecApplyConfiguration {
|
||||
b.AllowExtraDnsLabels = &value
|
||||
return b
|
||||
}
|
||||
|
||||
// WithDuration sets the Duration field in the declarative configuration to the given value
|
||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
||||
// If called multiple times, the Duration field is set to the value of the last call.
|
||||
|
||||
Reference in New Issue
Block a user