mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2025-08-07 01:56:57 +02:00
Types that we want to work using apimachinery typically go into pkg/apis/X, and the validation goes into pkg/apis/X/validation. We then add versions into e.g. pkg/apis/X/v1alpha1, but this feels premature at the moment. Changing this later is annoyingly difficult, especially in terms of validation and dependencies. We will want the apimachinery, so that we can configure from a configuration file that is versioned. Hopefully dns-controller won't end up so complicated that we will require it, but I think there is also value in following the "standard" patterns for controllers that are emerging from e.g. ingress. For a fairly simple example of an API, please consult https://github.com/kubernetes/kubernetes/tree/master/pkg/apis/certificates
32 lines
979 B
Go
32 lines
979 B
Go
/*
|
|
Copyright 2017 The Kubernetes Authors.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
package validation
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/kubernetes-incubator/external-dns/pkg/apis/externaldns"
|
|
)
|
|
|
|
// ValidateConfig performs validation on the Config object
|
|
func ValidateConfig(cfg *externaldns.Config) error {
|
|
// TODO: Should probably return field.ErrorList
|
|
if cfg.LogFormat != "text" && cfg.LogFormat != "json" {
|
|
return fmt.Errorf("unsupported log format: %s", cfg.LogFormat)
|
|
}
|
|
return nil
|
|
}
|