Add support for multiple alias and remove duplication of SSL certificates (#4472)
This commit is contained in:
parent
4847bb02f0
commit
8def5ef7ca
19 changed files with 190 additions and 101 deletions
|
|
@ -17,7 +17,11 @@ limitations under the License.
|
|||
package alias
|
||||
|
||||
import (
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
networking "k8s.io/api/networking/v1beta1"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
|
||||
"k8s.io/ingress-nginx/internal/ingress/annotations/parser"
|
||||
"k8s.io/ingress-nginx/internal/ingress/resolver"
|
||||
|
|
@ -35,5 +39,25 @@ func NewParser(r resolver.Resolver) parser.IngressAnnotation {
|
|||
// Parse parses the annotations contained in the ingress rule
|
||||
// used to add an alias to the provided hosts
|
||||
func (a alias) Parse(ing *networking.Ingress) (interface{}, error) {
|
||||
return parser.GetStringAnnotation("server-alias", ing)
|
||||
val, err := parser.GetStringAnnotation("server-alias", ing)
|
||||
if err != nil {
|
||||
return []string{}, err
|
||||
}
|
||||
|
||||
aliases := sets.NewString()
|
||||
for _, alias := range strings.Split(val, ",") {
|
||||
alias = strings.TrimSpace(alias)
|
||||
if len(alias) == 0 {
|
||||
continue
|
||||
}
|
||||
|
||||
if !aliases.Has(alias) {
|
||||
aliases.Insert(alias)
|
||||
}
|
||||
}
|
||||
|
||||
l := aliases.List()
|
||||
sort.Strings(l)
|
||||
|
||||
return l, nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue