Documentation
¶
Overview ¶
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.
Index ¶
- Constants
- func ConfigVolumeName(s string) string
- func CreateDNSService(name string, namespace string, details *service.OverrideSpec, ...) (*service.Service, error)
- func CreateRndcKeySecret() (string, error)
- func DbSyncJob(instance *designatev1beta1.Designate, labels map[string]string, ...) *batchv1.Job
- func DefaultsVolumeName(s string) string
- func GeneratePoolsYamlDataAndHash(BindMap, MdnsMap map[string]string, nsRecords []designatev1.DesignateNSRecord) (string, string, error)
- func GetNextIP(predParams *NADIpam, allocatedIPs map[string]bool) (string, error)
- func GetOwningDesignateName(instance client.Object) string
- func GetScriptConfigMapName(crName string) string
- func GetServiceConfigConfigMapName(crName string) string
- func InitContainer(init APIDetails) []corev1.Container
- func MergedDefaultsVolumeName(s string) string
- func MergedVolumeName(s string) string
- func PoolUpdateJob(instance *designatev1beta1.Designate, labels map[string]string, ...) *batchv1.Job
- func PredictableIPContainer(init PredIPContainerDetails) corev1.Container
- func ProcessVolumes(volumeDefs []VolumeMapping) ([]corev1.Volume, []corev1.VolumeMount)
- func ScriptsVolumeName(s string) string
- func SimpleInitContainer(init InitContainerDetails) corev1.Container
- type APIDetails
- type CatalogZone
- type Database
- type DatabaseStatus
- type InitContainerDetails
- type Master
- type MessageBus
- type MessageBusStatus
- type NADConfig
- type NADIpam
- type Nameserver
- type NetworkParameters
- type Options
- type Pool
- type PredIPContainerDetails
- type Target
- type VolumeMapping
Constants ¶
const ( // KollaServiceCommand - the command to start the service binary in the kolla container KollaServiceCommand = "/usr/local/bin/kolla_set_configs && /usr/local/bin/kolla_start" // DesignateDatabaseName - the name of the DB to store tha API schema DesignateDatabaseName = "designate" )
const ( // ServiceType - ServiceType = "dns" // ServiceName - ServiceName = "designate" // DatabaseName - DatabaseName = "designate" // DatabaseCRName - Name of the MariaDBDatabase CR DatabaseCRName = "designate" // DatabaseUsernamePrefix - used by EnsureMariaDBAccount when a new username // is to be generated, e.g. "designate_e5a4", "designate_78bc", etc DatabaseUsernamePrefix = "designate" // DesignatePublicPort - DesignatePublicPort int32 = 9001 // DesignateInternalPort - DesignateInternalPort int32 = 9001 DesignateBindKeySecret = "designate-bind-secret" DesignateRndcKey = "rndc-key" MdnsPredIPConfigMap = "designate-mdns-ip-map" NsRecordsConfigMap = "designate-ns-records-params" NsRecordsCRContent = "designate-ns-records" BindPredIPConfigMap = "designate-bind-ip-map" RndcConfDir = "/etc/designate/rndc-keys" PoolsYamlConfigMap = "designate-pools-yaml-config-map" PoolsYamlPath = "designatepoolmanager/config/pools.yaml.tmpl" PoolsYamlHash = "pools-yaml-hash" PoolsYamlContent = "pools-yaml-content" // BindPredictableIPHash key for status hash BindPredictableIPHash = "Bind IP Map" // RndcHash key for status hash RndcHash = "Rndc keys" // PredictableIPCommand - PredictableIPCommand = "/usr/local/bin/container-scripts/setipalias.sh" // ScriptsTemplate sprintf template for common scripts secret ScriptsF = "%s-scripts" // ConfigDataTemplate sprintf template for common config data secret ConfigDataTemplate = "%s-config-data" // DefaultOverwriteTemplate sprintf template for common default overwrite secret DefaultOverwriteTemplate = "%s-defaults" )
const ( DesignateConfigVolume = "designate-config" DesignateConfigMount = "/etc/designate" DesignateConfigKeyPath = "designate.conf" DesignatePoolsYamlPath = "pools.yaml" )
const ( ScriptMount = "script-mount" SecretMount = "secret-mount" ConfigMount = "config-mount" MergeMount = "merge-mount" )
const (
// BindProvPredictablePoolSize -
BindProvPredictablePoolSize = 25
)
const (
// DBSyncCommand -
DBSyncCommand = "/usr/local/bin/kolla_set_configs && /usr/local/bin/kolla_start"
)
const (
// InitContainerCommand -
InitContainerCommand = "/usr/local/bin/container-scripts/init.sh"
)
const (
MinPasswordSize = 25
)
Variables ¶
This section is empty.
Functions ¶
func ConfigVolumeName ¶
func CreateDNSService ¶
func CreateDNSService( name string, namespace string, details *service.OverrideSpec, labels map[string]string, port int32, ) (*service.Service, error)
CreateDNSService - helper function for creating a new serv
func DbSyncJob ¶
func DbSyncJob( instance *designatev1beta1.Designate, labels map[string]string, annotations map[string]string, ) *batchv1.Job
DbSyncJob func
func DefaultsVolumeName ¶
func GeneratePoolsYamlDataAndHash ¶
func GeneratePoolsYamlDataAndHash(BindMap, MdnsMap map[string]string, nsRecords []designatev1.DesignateNSRecord) (string, string, error)
We sort all pool resources to get the correct hash every time
func GetOwningDesignateName ¶
GetOwningDesignateName - Given a Designate-->API,Central,Worker,Mdns,Producer object, returning the parent Designate object that created it (if any)
func GetScriptConfigMapName ¶
GetScriptConfigMapName returns the name of the ConfigMap used for the config merger and the service init scripts
func GetServiceConfigConfigMapName ¶
GetServiceConfigConfigMapName returns the name of the ConfigMap used to store the service configuration files
func InitContainer ¶
func InitContainer(init APIDetails) []corev1.Container
InitContainer - init container for designate api pods
func MergedVolumeName ¶
func PoolUpdateJob ¶
func PredictableIPContainer ¶
func PredictableIPContainer(init PredIPContainerDetails) corev1.Container
func ProcessVolumes ¶
func ProcessVolumes(volumeDefs []VolumeMapping) ([]corev1.Volume, []corev1.VolumeMount)
ProcessVolumes takes a slice of VolumeMapping and creates corresponding slices of Volumes and Mounts. This helps keep naming and matching of volumes and mounts in sync and consistent.
func ScriptsVolumeName ¶
func SimpleInitContainer ¶
func SimpleInitContainer(init InitContainerDetails) corev1.Container
Types ¶
type APIDetails ¶
type APIDetails struct { ContainerImage string DatabaseHost string DatabaseName string OSPSecret string TransportURLSecret string UserPasswordSelector string VolumeMounts []corev1.VolumeMount Privileged bool }
APIDetails information
type CatalogZone ¶
type Database ¶
type Database struct { Database *mariadbv1.Database Status DatabaseStatus }
Database -
type DatabaseStatus ¶
type DatabaseStatus int
DatabaseStatus -
const ( // DBFailed - DBFailed DatabaseStatus = iota // DBCreating - DBCreating DatabaseStatus = iota // DBCompleted - DBCompleted DatabaseStatus = iota )
type InitContainerDetails ¶
type InitContainerDetails struct { ContainerImage string VolumeMounts []corev1.VolumeMount EnvVars []corev1.EnvVar }
type MessageBusStatus ¶
type MessageBusStatus int
MessageBusStatus -
const ( // MQFailed - MQFailed MessageBusStatus = iota // MQCreating - MQCreating MessageBusStatus = iota // MQCompleted - MQCompleted MessageBusStatus = iota )
type NADConfig ¶
type NADConfig struct {
IPAM NADIpam `json:"ipam"`
}
NADConfig - IPAM parameters of the NAD
func GetNADConfig ¶
func GetNADConfig( nad *networkv1.NetworkAttachmentDefinition, ) (*NADConfig, error)
type NADIpam ¶
type NADIpam struct { CIDR netip.Prefix `json:"range"` RangeStart netip.Addr `json:"range_start"` RangeEnd netip.Addr `json:"range_end"` }
func GetPredictableIPAM ¶
func GetPredictableIPAM(networkParameters *NetworkParameters) (*NADIpam, error)
GetPredictableIPAM returns a struct describing the available IP range. If the IP pool size does not fit in given networkParameters CIDR it will return an error instead.
type Nameserver ¶
type NetworkParameters ¶
type NetworkParameters struct { CIDR netip.Prefix ProviderAllocationStart netip.Addr ProviderAllocationEnd netip.Addr }
NetworkParameters - Parameters for the Designate networks, based on the config of the NAD
func GetNetworkParametersFromNAD ¶
func GetNetworkParametersFromNAD( nad *networkv1.NetworkAttachmentDefinition, ) (*NetworkParameters, error)
GetNetworkParametersFromNAD - Extract network information from the Network Attachment Definition
type Pool ¶
type Pool struct { Name string `yaml:"name"` Description string `yaml:"description"` Attributes map[string]string `yaml:"attributes"` NSRecords []designatev1.DesignateNSRecord `yaml:"ns_records"` Nameservers []Nameserver `yaml:"nameservers"` Targets []Target `yaml:"targets"` CatalogZone *CatalogZone `yaml:"catalog_zone,omitempty"` // it is a pointer because it is optional }
type PredIPContainerDetails ¶
type VolumeMapping ¶
func GetStandardVolumeMapping ¶
func GetStandardVolumeMapping(instance client.Object) []VolumeMapping