implement new resolver methods
This commit is contained in:
parent
1d055076d2
commit
b62721da1d
5 changed files with 69 additions and 0 deletions
|
@ -121,6 +121,14 @@ func (fakeIngressStore) GetAuthCertificate(string) (*resolver.AuthSSLCert, error
|
||||||
return nil, fmt.Errorf("test error")
|
return nil, fmt.Errorf("test error")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (fakeIngressStore) GetSSLClientCert(string) (*resolver.SSLClientCert, error) {
|
||||||
|
return nil, fmt.Errorf("test error")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (fakeIngressStore) GetSSLCA(string) (*resolver.SSLCA, error) {
|
||||||
|
return nil, fmt.Errorf("test error")
|
||||||
|
}
|
||||||
|
|
||||||
func (fakeIngressStore) GetDefaultBackend() defaults.Backend {
|
func (fakeIngressStore) GetDefaultBackend() defaults.Backend {
|
||||||
return defaults.Backend{}
|
return defaults.Backend{}
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,6 +98,12 @@ type Storer interface {
|
||||||
// ca.crt: contains the certificate chain used for authentication
|
// ca.crt: contains the certificate chain used for authentication
|
||||||
GetAuthCertificate(string) (*resolver.AuthSSLCert, error)
|
GetAuthCertificate(string) (*resolver.AuthSSLCert, error)
|
||||||
|
|
||||||
|
// GetSSLClientCert resolves a given secret name into an SSL certificate.
|
||||||
|
GetSSLClientCert(string) (*resolver.SSLClientCert, error)
|
||||||
|
|
||||||
|
// GetSSLCA resolves a given configMap name into an SSL CA.
|
||||||
|
GetSSLCA(string) (*resolver.SSLCA, error)
|
||||||
|
|
||||||
// GetDefaultBackend returns the default backend configuration
|
// GetDefaultBackend returns the default backend configuration
|
||||||
GetDefaultBackend() defaults.Backend
|
GetDefaultBackend() defaults.Backend
|
||||||
|
|
||||||
|
@ -1156,6 +1162,43 @@ func (s *k8sStore) GetAuthCertificate(name string) (*resolver.AuthSSLCert, error
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetSSLClientCert is used by the proxy-ssl annotations to get a cert from a secret
|
||||||
|
func (s *k8sStore) GetSSLClientCert(name string) (*resolver.SSLClientCert, error) {
|
||||||
|
if _, err := s.GetLocalSSLCert(name); err != nil {
|
||||||
|
s.syncClientCertSecret(name)
|
||||||
|
}
|
||||||
|
|
||||||
|
cert, err := s.GetLocalSSLCert(name)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &resolver.SSLClientCert{
|
||||||
|
Secret: name,
|
||||||
|
PemFileName: cert.PemFileName,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetSSLCA is used by the proxy-ssl annotations to get a ca from a configmap
|
||||||
|
func (s *k8sStore) GetSSLCA(configMapName string) (*resolver.SSLCA, error) {
|
||||||
|
if _, err := s.GetLocalSSLCert(configMapName); err != nil {
|
||||||
|
s.syncCAConfigMap(configMapName)
|
||||||
|
}
|
||||||
|
|
||||||
|
cert, err := s.GetLocalSSLCert(configMapName)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &resolver.SSLCA{
|
||||||
|
ConfigMap: configMapName,
|
||||||
|
CAFileName: cert.CAFileName,
|
||||||
|
CASHA: cert.CASHA,
|
||||||
|
CRLFileName: cert.CRLFileName,
|
||||||
|
CRLSHA: cert.CRLSHA,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (s *k8sStore) writeSSLSessionTicketKey(cmap *corev1.ConfigMap, fileName string) {
|
func (s *k8sStore) writeSSLSessionTicketKey(cmap *corev1.ConfigMap, fileName string) {
|
||||||
ticketString := ngx_template.ReadConfig(cmap.Data).SSLSessionTicketKey
|
ticketString := ngx_template.ReadConfig(cmap.Data).SSLSessionTicketKey
|
||||||
s.backendConfig.SSLSessionTicketKey = ""
|
s.backendConfig.SSLSessionTicketKey = ""
|
||||||
|
|
|
@ -42,6 +42,12 @@ type Resolver interface {
|
||||||
// ca.crl: contains the revocation list used for authentication
|
// ca.crl: contains the revocation list used for authentication
|
||||||
GetAuthCertificate(string) (*AuthSSLCert, error)
|
GetAuthCertificate(string) (*AuthSSLCert, error)
|
||||||
|
|
||||||
|
// GetSSLClientCert resolves a given secret name into an SSL certificate.
|
||||||
|
GetSSLClientCert(string) (*SSLClientCert, error)
|
||||||
|
|
||||||
|
// GetSSLCA resolves a given configMap name into an SSL CA.
|
||||||
|
GetSSLCA(string) (*SSLCA, error)
|
||||||
|
|
||||||
// GetService searches for services containing the namespace and name using the character /
|
// GetService searches for services containing the namespace and name using the character /
|
||||||
GetService(string) (*apiv1.Service, error)
|
GetService(string) (*apiv1.Service, error)
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,3 +58,5 @@ func TestAuthSSLCertEqual(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO : implement tests for GetSSLClientCert and GetSSLCA
|
||||||
|
|
|
@ -60,6 +60,16 @@ func (m Mock) GetAuthCertificate(string) (*AuthSSLCert, error) {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetSSLClientCert resolves a given secret name into an SSL certificate.
|
||||||
|
func (m Mock) GetSSLClientCert(string) (*SSLClientCert, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetSSLCA resolves a given configMap name into an SSL CA.
|
||||||
|
func (m Mock) GetSSLCA(string) (*SSLCA, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
// GetService searches for services containing the namespace and name using the character /
|
// GetService searches for services containing the namespace and name using the character /
|
||||||
func (m Mock) GetService(string) (*apiv1.Service, error) {
|
func (m Mock) GetService(string) (*apiv1.Service, error) {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
|
|
Loading…
Reference in a new issue