1 // Copyright 2020 Datawire. All rights reserved 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 /////////////////////////////////////////////////////////////////////////// 16 // Important: Run "make update-yaml" to regenerate code after modifying 17 // this file. 18 /////////////////////////////////////////////////////////////////////////// 19 20 package v2 21 22 import ( 23 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 24 ) 25 26 type ModuleSpec struct { 27 AmbassadorID AmbassadorID `json:"ambassador_id,omitempty"` 28 29 Config UntypedDict `json:"config,omitempty"` 30 } 31 32 // A Module defines system-wide configuration. The type of module is 33 // controlled by the .metadata.name; valid names are "ambassador" or 34 // "tls". 35 // 36 // https://www.getambassador.io/docs/edge-stack/latest/topics/running/ambassador/#the-ambassador-module 37 // https://www.getambassador.io/docs/edge-stack/latest/topics/running/tls/#tls-module-deprecated 38 // 39 // +kubebuilder:object:root=true 40 // +kubebuilder:storageversion 41 type Module struct { 42 metav1.TypeMeta `json:""` 43 metav1.ObjectMeta `json:"metadata,omitempty"` 44 45 Spec ModuleSpec `json:"spec,omitempty"` 46 } 47 48 // ModuleList contains a list of Modules. 49 // 50 // +kubebuilder:object:root=true 51 type ModuleList struct { 52 metav1.TypeMeta `json:""` 53 metav1.ListMeta `json:"metadata,omitempty"` 54 Items []Module `json:"items"` 55 } 56 57 func init() { 58 SchemeBuilder.Register(&Module{}, &ModuleList{}) 59 } 60