mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2025-08-06 17:46:57 +02:00
Gloo: Add support for listener.metadataStatic
This commit is contained in:
parent
dd61d0f5d8
commit
041ca372c8
@ -66,18 +66,33 @@ type proxySpecHTTPListener struct {
|
|||||||
type proxyVirtualHost struct {
|
type proxyVirtualHost struct {
|
||||||
Domains []string `json:"domains,omitempty"`
|
Domains []string `json:"domains,omitempty"`
|
||||||
Metadata proxyVirtualHostMetadata `json:"metadata,omitempty"`
|
Metadata proxyVirtualHostMetadata `json:"metadata,omitempty"`
|
||||||
|
MetadataStatic proxyVirtualHostMetadataStatic `json:"metadataStatic,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type proxyVirtualHostMetadata struct {
|
type proxyVirtualHostMetadata struct {
|
||||||
Source []proxyVirtualHostMetadataSource `json:"sources,omitempty"`
|
Source []proxyVirtualHostMetadataSource `json:"sources,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type proxyVirtualHostMetadataStatic struct {
|
||||||
|
Source []proxyVirtualHostMetadataStaticSource `json:"sources,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
type proxyVirtualHostMetadataSource struct {
|
type proxyVirtualHostMetadataSource struct {
|
||||||
Kind string `json:"kind,omitempty"`
|
Kind string `json:"kind,omitempty"`
|
||||||
Name string `json:"name,omitempty"`
|
Name string `json:"name,omitempty"`
|
||||||
Namespace string `json:"namespace,omitempty"`
|
Namespace string `json:"namespace,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type proxyVirtualHostMetadataStaticSource struct {
|
||||||
|
ResourceKind string `json:"resourceKind,omitempty"`
|
||||||
|
ResourceRef proxyVirtualHostMetadataSourceResourceRef `json:"resourceRef,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type proxyVirtualHostMetadataSourceResourceRef struct {
|
||||||
|
Name string `json:"name,omitempty"`
|
||||||
|
Namespace string `json:"namespace,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
type glooSource struct {
|
type glooSource struct {
|
||||||
dynamicKubeClient dynamic.Interface
|
dynamicKubeClient dynamic.Interface
|
||||||
kubeClient kubernetes.Interface
|
kubeClient kubernetes.Interface
|
||||||
@ -165,6 +180,18 @@ func (gs *glooSource) annotationsFromProxySource(ctx context.Context, virtualHos
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for _, src := range virtualHost.MetadataStatic.Source {
|
||||||
|
kind := sourceKind(src.ResourceKind)
|
||||||
|
if kind != nil {
|
||||||
|
source, err := gs.dynamicKubeClient.Resource(*kind).Namespace(src.ResourceRef.Namespace).Get(ctx, src.ResourceRef.Name, metav1.GetOptions{})
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
for key, value := range source.GetAnnotations() {
|
||||||
|
annotations[key] = value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return annotations, nil
|
return annotations, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,6 +63,17 @@ var internalProxy = proxy{
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
MetadataStatic: proxyVirtualHostMetadataStatic{
|
||||||
|
Source: []proxyVirtualHostMetadataStaticSource{
|
||||||
|
{
|
||||||
|
ResourceKind: "*v1.Unknown",
|
||||||
|
ResourceRef: proxyVirtualHostMetadataSourceResourceRef{
|
||||||
|
Name: "my-unknown-svc",
|
||||||
|
Namespace: "unknown",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Domains: []string{"c.test"},
|
Domains: []string{"c.test"},
|
||||||
@ -75,6 +86,17 @@ var internalProxy = proxy{
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
MetadataStatic: proxyVirtualHostMetadataStatic{
|
||||||
|
Source: []proxyVirtualHostMetadataStaticSource{
|
||||||
|
{
|
||||||
|
ResourceKind: "*v1.VirtualService",
|
||||||
|
ResourceRef: proxyVirtualHostMetadataSourceResourceRef{
|
||||||
|
Name: "my-internal-svc",
|
||||||
|
Namespace: "internal",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user