metropolis/pkg/(event|pki): remove dependency to consensus/client

We are currently depending on the consensus client, even when we just
need a plain etcd client. This change removes the dependency by adding
a ThinClient interface that wraps KV amd Watcher from clientv3.

Change-Id: I33994ab35ebb3a63c9dda4b588b7f529535e3083
Reviewed-on: https://review.monogon.dev/c/monogon/+/3082
Tested-by: Jenkins CI
Reviewed-by: Serge Bazanski <serge@monogon.tech>
diff --git a/metropolis/pkg/event/etcd/etcd_test.go b/metropolis/pkg/event/etcd/etcd_test.go
index f1eb5ed..c6d50b1 100644
--- a/metropolis/pkg/event/etcd/etcd_test.go
+++ b/metropolis/pkg/event/etcd/etcd_test.go
@@ -20,7 +20,6 @@
 	"google.golang.org/grpc/codes"
 	"google.golang.org/grpc/grpclog"
 
-	"source.monogon.dev/metropolis/node/core/consensus/client"
 	"source.monogon.dev/metropolis/pkg/event"
 	"source.monogon.dev/metropolis/pkg/logtree"
 )
@@ -81,7 +80,6 @@
 // testClient is an etcd connection to the test cluster.
 type testClient struct {
 	client     *clientv3.Client
-	namespaced client.Namespaced
 }
 
 func newTestClient(t *testing.T) *testClient {
@@ -96,10 +94,8 @@
 		t.Fatalf("clientv3.New: %v", err)
 	}
 
-	namespaced := client.NewLocal(cli)
 	return &testClient{
 		client:     cli,
-		namespaced: namespaced,
 	}
 }
 
@@ -126,7 +122,7 @@
 
 	for {
 		ctxT, ctxC := context.WithTimeout(ctx, 100*time.Millisecond)
-		_, err := d.namespaced.Put(ctxT, key, value)
+		_, err := d.client.Put(ctxT, key, value)
 		ctxC()
 		if err == nil {
 			return
@@ -154,7 +150,7 @@
 	ctx, ctxC := context.WithCancel(context.Background())
 	defer ctxC()
 
-	_, err := d.namespaced.Delete(ctx, key)
+	_, err := d.client.Delete(ctx, key)
 	if err == nil {
 		return
 	}
@@ -227,7 +223,7 @@
 	defer tc.close()
 
 	k := "test-simple"
-	value := NewValue(tc.namespaced, k, DecoderStringAt)
+	value := NewValue(tc.client, k, DecoderStringAt)
 	tc.put(t, k, "one")
 
 	watcher := value.Watch()
@@ -275,7 +271,7 @@
 
 	ks := "test-simple-range/"
 	ke := "test-simple-range0"
-	value := NewValue(tc.namespaced, ks, DecoderStringAt, Range(ke))
+	value := NewValue(tc.client, ks, DecoderStringAt, Range(ke))
 	tc.put(t, ks+"a", "one")
 	tc.put(t, ks+"b", "two")
 	tc.put(t, ks+"c", "three")
@@ -318,7 +314,7 @@
 	defer tc.close()
 
 	k := "test-cancel"
-	value := NewValue(tc.namespaced, k, DecoderStringAt)
+	value := NewValue(tc.client, k, DecoderStringAt)
 	tc.put(t, k, "one")
 
 	watcher := value.Watch()
@@ -353,7 +349,7 @@
 	defer tc.close()
 
 	k := "test-cancel-on-get"
-	value := NewValue(tc.namespaced, k, DecoderStringAt)
+	value := NewValue(tc.client, k, DecoderStringAt)
 	watcher := value.Watch()
 	tc.put(t, k, "one")
 
@@ -417,7 +413,7 @@
 	tc.setEndpoints(0)
 
 	k := "test-client-reconnect"
-	value := NewValue(tc.namespaced, k, DecoderStringAt)
+	value := NewValue(tc.client, k, DecoderStringAt)
 	tc.put(t, k, "one")
 
 	watcher := value.Watch()
@@ -453,10 +449,10 @@
 	tcRest.setEndpoints(1, 2)
 
 	k := "test-client-partition"
-	valueOne := NewValue(tcOne.namespaced, k, DecoderStringAt)
+	valueOne := NewValue(tcOne.client, k, DecoderStringAt)
 	watcherOne := valueOne.Watch()
 	defer watcherOne.Close()
-	valueRest := NewValue(tcRest.namespaced, k, DecoderStringAt)
+	valueRest := NewValue(tcRest.client, k, DecoderStringAt)
 	watcherRest := valueRest.Watch()
 	defer watcherRest.Close()
 
@@ -487,7 +483,7 @@
 
 	k := "test-early-use"
 
-	value := NewValue(tc.namespaced, k, DecoderStringAt)
+	value := NewValue(tc.client, k, DecoderStringAt)
 	watcher := value.Watch()
 	defer watcher.Close()
 
@@ -513,7 +509,7 @@
 	k := "test-remove"
 	tc.put(t, k, "one")
 
-	value := NewValue(tc.namespaced, k, DecoderStringAt)
+	value := NewValue(tc.client, k, DecoderStringAt)
 	watcher := value.Watch()
 	defer watcher.Close()
 
@@ -530,7 +526,7 @@
 
 	ks := "test-remove-range/"
 	ke := "test-remove-range0"
-	value := NewValue(tc.namespaced, ks, DecoderStringAt, Range(ke))
+	value := NewValue(tc.client, ks, DecoderStringAt, Range(ke))
 	tc.put(t, ks+"a", "one")
 	tc.put(t, ks+"b", "two")
 	tc.put(t, ks+"c", "three")
@@ -571,7 +567,7 @@
 	tc.put(t, k, "one")
 	tc.remove(t, k)
 
-	value := NewValue(tc.namespaced, k, DecoderStringAt)
+	value := NewValue(tc.client, k, DecoderStringAt)
 	watcher := value.Watch()
 	defer watcher.Close()
 
@@ -618,7 +614,7 @@
 	defer ctxC()
 
 	k := "test-decoder"
-	value := NewValue(tc.namespaced, k, decoderDivisibleByThree)
+	value := NewValue(tc.client, k, decoderDivisibleByThree)
 	watcher := value.Watch()
 	defer watcher.Close()
 	tc.put(t, k, "3")
@@ -684,7 +680,7 @@
 	defer tc.close()
 
 	k := "test-backlog"
-	value := NewValue(tc.namespaced, k, DecoderStringAt)
+	value := NewValue(tc.client, k, DecoderStringAt)
 	watcher := value.Watch()
 	defer watcher.Close()
 
@@ -716,7 +712,7 @@
 
 	ks := "test-backlog-range/"
 	ke := "test-backlog-range0"
-	value := NewValue(tc.namespaced, ks, DecoderStringAt, Range(ke))
+	value := NewValue(tc.client, ks, DecoderStringAt, Range(ke))
 	w := value.Watch()
 	defer w.Close()
 
@@ -761,7 +757,7 @@
 	k := "test-backlog-only"
 	tc.put(t, k, "initial")
 
-	value := NewValue(tc.namespaced, k, DecoderStringAt)
+	value := NewValue(tc.client, k, DecoderStringAt)
 	watcher := value.Watch()
 	defer watcher.Close()
 
@@ -818,7 +814,7 @@
 		}
 	}
 
-	value := NewValue(tc.namespaced, ks, DecoderStringAt, Range(ke))
+	value := NewValue(tc.client, ks, DecoderStringAt, Range(ke))
 	w := value.Watch()
 	defer w.Close()