Resolve uncompatibility from update: etcd CAFile -> TrustedCAFIle
Kubernetes-commit: 9ead9373f350c7ad438257a9e8b8977a67b900eb
This commit is contained in:
parent
41da2ced4c
commit
e518fe04f6
|
|
@ -161,7 +161,7 @@ func (s *EtcdOptions) AddFlags(fs *pflag.FlagSet) {
|
||||||
fs.StringVar(&s.StorageConfig.Transport.CertFile, "etcd-certfile", s.StorageConfig.Transport.CertFile,
|
fs.StringVar(&s.StorageConfig.Transport.CertFile, "etcd-certfile", s.StorageConfig.Transport.CertFile,
|
||||||
"SSL certification file used to secure etcd communication.")
|
"SSL certification file used to secure etcd communication.")
|
||||||
|
|
||||||
fs.StringVar(&s.StorageConfig.Transport.CAFile, "etcd-cafile", s.StorageConfig.Transport.CAFile,
|
fs.StringVar(&s.StorageConfig.Transport.TrustedCAFile, "etcd-cafile", s.StorageConfig.Transport.TrustedCAFile,
|
||||||
"SSL Certificate Authority file used to secure etcd communication.")
|
"SSL Certificate Authority file used to secure etcd communication.")
|
||||||
|
|
||||||
fs.StringVar(&s.EncryptionProviderConfigFilepath, "experimental-encryption-provider-config", s.EncryptionProviderConfigFilepath,
|
fs.StringVar(&s.EncryptionProviderConfigFilepath, "experimental-encryption-provider-config", s.EncryptionProviderConfigFilepath,
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ func TestEtcdOptionsValidate(t *testing.T) {
|
||||||
Transport: storagebackend.TransportConfig{
|
Transport: storagebackend.TransportConfig{
|
||||||
ServerList: nil,
|
ServerList: nil,
|
||||||
KeyFile: "/var/run/kubernetes/etcd.key",
|
KeyFile: "/var/run/kubernetes/etcd.key",
|
||||||
CAFile: "/var/run/kubernetes/etcdca.crt",
|
TrustedCAFile: "/var/run/kubernetes/etcdca.crt",
|
||||||
CertFile: "/var/run/kubernetes/etcdce.crt",
|
CertFile: "/var/run/kubernetes/etcdce.crt",
|
||||||
},
|
},
|
||||||
CompactionInterval: storagebackend.DefaultCompactInterval,
|
CompactionInterval: storagebackend.DefaultCompactInterval,
|
||||||
|
|
@ -66,7 +66,7 @@ func TestEtcdOptionsValidate(t *testing.T) {
|
||||||
Transport: storagebackend.TransportConfig{
|
Transport: storagebackend.TransportConfig{
|
||||||
ServerList: []string{"http://127.0.0.1"},
|
ServerList: []string{"http://127.0.0.1"},
|
||||||
KeyFile: "/var/run/kubernetes/etcd.key",
|
KeyFile: "/var/run/kubernetes/etcd.key",
|
||||||
CAFile: "/var/run/kubernetes/etcdca.crt",
|
TrustedCAFile: "/var/run/kubernetes/etcdca.crt",
|
||||||
CertFile: "/var/run/kubernetes/etcdce.crt",
|
CertFile: "/var/run/kubernetes/etcdce.crt",
|
||||||
},
|
},
|
||||||
CompactionInterval: storagebackend.DefaultCompactInterval,
|
CompactionInterval: storagebackend.DefaultCompactInterval,
|
||||||
|
|
@ -89,7 +89,7 @@ func TestEtcdOptionsValidate(t *testing.T) {
|
||||||
Transport: storagebackend.TransportConfig{
|
Transport: storagebackend.TransportConfig{
|
||||||
ServerList: []string{"http://127.0.0.1"},
|
ServerList: []string{"http://127.0.0.1"},
|
||||||
KeyFile: "/var/run/kubernetes/etcd.key",
|
KeyFile: "/var/run/kubernetes/etcd.key",
|
||||||
CAFile: "/var/run/kubernetes/etcdca.crt",
|
TrustedCAFile: "/var/run/kubernetes/etcdca.crt",
|
||||||
CertFile: "/var/run/kubernetes/etcdce.crt",
|
CertFile: "/var/run/kubernetes/etcdce.crt",
|
||||||
},
|
},
|
||||||
Prefix: "/registry",
|
Prefix: "/registry",
|
||||||
|
|
@ -114,7 +114,7 @@ func TestEtcdOptionsValidate(t *testing.T) {
|
||||||
Transport: storagebackend.TransportConfig{
|
Transport: storagebackend.TransportConfig{
|
||||||
ServerList: []string{"http://127.0.0.1"},
|
ServerList: []string{"http://127.0.0.1"},
|
||||||
KeyFile: "/var/run/kubernetes/etcd.key",
|
KeyFile: "/var/run/kubernetes/etcd.key",
|
||||||
CAFile: "/var/run/kubernetes/etcdca.crt",
|
TrustedCAFile: "/var/run/kubernetes/etcdca.crt",
|
||||||
CertFile: "/var/run/kubernetes/etcdce.crt",
|
CertFile: "/var/run/kubernetes/etcdce.crt",
|
||||||
},
|
},
|
||||||
CompactionInterval: storagebackend.DefaultCompactInterval,
|
CompactionInterval: storagebackend.DefaultCompactInterval,
|
||||||
|
|
|
||||||
|
|
@ -307,8 +307,8 @@ func (s *DefaultStorageFactory) Backends() []Backend {
|
||||||
tlsConfig.Certificates = []tls.Certificate{cert}
|
tlsConfig.Certificates = []tls.Certificate{cert}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(s.StorageConfig.Transport.CAFile) > 0 {
|
if len(s.StorageConfig.Transport.TrustedCAFile) > 0 {
|
||||||
if caCert, err := ioutil.ReadFile(s.StorageConfig.Transport.CAFile); err != nil {
|
if caCert, err := ioutil.ReadFile(s.StorageConfig.Transport.TrustedCAFile); err != nil {
|
||||||
klog.Errorf("failed to read ca file while getting backends: %s", err)
|
klog.Errorf("failed to read ca file while getting backends: %s", err)
|
||||||
} else {
|
} else {
|
||||||
caPool := x509.NewCertPool()
|
caPool := x509.NewCertPool()
|
||||||
|
|
|
||||||
|
|
@ -17,10 +17,10 @@ limitations under the License.
|
||||||
package etcd3
|
package etcd3
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"go.etcd.io/etcd/clientv3"
|
|
||||||
"go.etcd.io/etcd/mvcc/mvccpb"
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
"go.etcd.io/etcd/clientv3"
|
||||||
|
"go.etcd.io/etcd/mvcc/mvccpb"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,9 +29,9 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/coreos/pkg/capnslog"
|
||||||
"go.etcd.io/etcd/clientv3"
|
"go.etcd.io/etcd/clientv3"
|
||||||
"go.etcd.io/etcd/integration"
|
"go.etcd.io/etcd/integration"
|
||||||
"github.com/coreos/pkg/capnslog"
|
|
||||||
apitesting "k8s.io/apimachinery/pkg/api/apitesting"
|
apitesting "k8s.io/apimachinery/pkg/api/apitesting"
|
||||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,7 @@ import (
|
||||||
"go.etcd.io/etcd/pkg/testutil"
|
"go.etcd.io/etcd/pkg/testutil"
|
||||||
"go.etcd.io/etcd/pkg/transport"
|
"go.etcd.io/etcd/pkg/transport"
|
||||||
"go.etcd.io/etcd/pkg/types"
|
"go.etcd.io/etcd/pkg/types"
|
||||||
|
"go.uber.org/zap"
|
||||||
"k8s.io/klog"
|
"k8s.io/klog"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -87,7 +88,7 @@ func newSecuredLocalListener(t *testing.T, certFile, keyFile, caFile string) net
|
||||||
tlsInfo := transport.TLSInfo{
|
tlsInfo := transport.TLSInfo{
|
||||||
CertFile: certFile,
|
CertFile: certFile,
|
||||||
KeyFile: keyFile,
|
KeyFile: keyFile,
|
||||||
CAFile: caFile,
|
TrustedCAFile: caFile,
|
||||||
}
|
}
|
||||||
tlscfg, err := tlsInfo.ServerConfig()
|
tlscfg, err := tlsInfo.ServerConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -105,7 +106,7 @@ func newHTTPTransport(t *testing.T, certFile, keyFile, caFile string) etcd.Cance
|
||||||
tlsInfo := transport.TLSInfo{
|
tlsInfo := transport.TLSInfo{
|
||||||
CertFile: certFile,
|
CertFile: certFile,
|
||||||
KeyFile: keyFile,
|
KeyFile: keyFile,
|
||||||
CAFile: caFile,
|
TrustedCAFile: caFile,
|
||||||
}
|
}
|
||||||
tr, err := transport.NewTransport(tlsInfo, time.Second)
|
tr, err := transport.NewTransport(tlsInfo, time.Second)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -194,7 +195,7 @@ func (m *EtcdTestServer) launch(t *testing.T) error {
|
||||||
}
|
}
|
||||||
m.s.SyncTicker = time.NewTicker(500 * time.Millisecond)
|
m.s.SyncTicker = time.NewTicker(500 * time.Millisecond)
|
||||||
m.s.Start()
|
m.s.Start()
|
||||||
m.raftHandler = &testutil.PauseableHandler{Next: etcdhttp.NewPeerHandler(m.s)}
|
m.raftHandler = &testutil.PauseableHandler{Next: etcdhttp.NewPeerHandler(zap.NewExample(), m.s)}
|
||||||
for _, ln := range m.PeerListeners {
|
for _, ln := range m.PeerListeners {
|
||||||
hs := &httptest.Server{
|
hs := &httptest.Server{
|
||||||
Listener: ln,
|
Listener: ln,
|
||||||
|
|
@ -206,7 +207,7 @@ func (m *EtcdTestServer) launch(t *testing.T) error {
|
||||||
for _, ln := range m.ClientListeners {
|
for _, ln := range m.ClientListeners {
|
||||||
hs := &httptest.Server{
|
hs := &httptest.Server{
|
||||||
Listener: ln,
|
Listener: ln,
|
||||||
Config: &http.Server{Handler: v2http.NewClientHandler(m.s, m.ServerConfig.ReqTimeout())},
|
Config: &http.Server{Handler: v2http.NewClientHandler(zap.NewExample(), m.s, m.ServerConfig.ReqTimeout())},
|
||||||
}
|
}
|
||||||
hs.Start()
|
hs.Start()
|
||||||
m.hss = append(m.hss, hs)
|
m.hss = append(m.hss, hs)
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ type TransportConfig struct {
|
||||||
// TLS credentials
|
// TLS credentials
|
||||||
KeyFile string
|
KeyFile string
|
||||||
CertFile string
|
CertFile string
|
||||||
CAFile string
|
TrustedCAFile string
|
||||||
// function to determine the egress dialer. (i.e. konnectivity server dialer)
|
// function to determine the egress dialer. (i.e. konnectivity server dialer)
|
||||||
EgressLookup egressselector.Lookup
|
EgressLookup egressselector.Lookup
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,9 +26,9 @@ import (
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
grpcprom "github.com/grpc-ecosystem/go-grpc-prometheus"
|
||||||
"go.etcd.io/etcd/clientv3"
|
"go.etcd.io/etcd/clientv3"
|
||||||
"go.etcd.io/etcd/pkg/transport"
|
"go.etcd.io/etcd/pkg/transport"
|
||||||
grpcprom "github.com/grpc-ecosystem/go-grpc-prometheus"
|
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
|
|
||||||
utilnet "k8s.io/apimachinery/pkg/util/net"
|
utilnet "k8s.io/apimachinery/pkg/util/net"
|
||||||
|
|
@ -99,7 +99,7 @@ func newETCD3Client(c storagebackend.TransportConfig) (*clientv3.Client, error)
|
||||||
tlsInfo := transport.TLSInfo{
|
tlsInfo := transport.TLSInfo{
|
||||||
CertFile: c.CertFile,
|
CertFile: c.CertFile,
|
||||||
KeyFile: c.KeyFile,
|
KeyFile: c.KeyFile,
|
||||||
CAFile: c.CAFile,
|
TrustedCAFile: c.TrustedCAFile,
|
||||||
}
|
}
|
||||||
tlsConfig, err := tlsInfo.ClientConfig()
|
tlsConfig, err := tlsInfo.ClientConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -107,7 +107,7 @@ func newETCD3Client(c storagebackend.TransportConfig) (*clientv3.Client, error)
|
||||||
}
|
}
|
||||||
// NOTE: Client relies on nil tlsConfig
|
// NOTE: Client relies on nil tlsConfig
|
||||||
// for non-secure connections, update the implicit variable
|
// for non-secure connections, update the implicit variable
|
||||||
if len(c.CertFile) == 0 && len(c.KeyFile) == 0 && len(c.CAFile) == 0 {
|
if len(c.CertFile) == 0 && len(c.KeyFile) == 0 && len(c.TrustedCAFile) == 0 {
|
||||||
tlsConfig = nil
|
tlsConfig = nil
|
||||||
}
|
}
|
||||||
networkContext := egressselector.Etcd.AsNetworkContext()
|
networkContext := egressselector.Etcd.AsNetworkContext()
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ func TestTLSConnection(t *testing.T) {
|
||||||
tlsInfo := &transport.TLSInfo{
|
tlsInfo := &transport.TLSInfo{
|
||||||
CertFile: certFile,
|
CertFile: certFile,
|
||||||
KeyFile: keyFile,
|
KeyFile: keyFile,
|
||||||
CAFile: caFile,
|
TrustedCAFile: caFile,
|
||||||
}
|
}
|
||||||
|
|
||||||
cluster := integration.NewClusterV3(t, &integration.ClusterConfig{
|
cluster := integration.NewClusterV3(t, &integration.ClusterConfig{
|
||||||
|
|
@ -71,7 +71,7 @@ func TestTLSConnection(t *testing.T) {
|
||||||
ServerList: []string{cluster.Members[0].GRPCAddr()},
|
ServerList: []string{cluster.Members[0].GRPCAddr()},
|
||||||
CertFile: certFile,
|
CertFile: certFile,
|
||||||
KeyFile: keyFile,
|
KeyFile: keyFile,
|
||||||
CAFile: caFile,
|
TrustedCAFile: caFile,
|
||||||
},
|
},
|
||||||
Codec: codec,
|
Codec: codec,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue