Skip to content

Conversation

@lowenna
Copy link
Contributor

@lowenna lowenna commented Oct 1, 2018

Signed-off-by: John Howard jhoward@microsoft.com

This PR is a follow on to #247

@tamilmani1989 @sharmasushant PTAL.

@PatrickLang, @DavidSchott @dineshgovindasamy @madhanrm @jterry75 FYI. @msuiche perhaps you are able to perform more verification on this as well?

As per #247 (comment), while that PR was better, it was far from perfect.

This PR replaces the store entirely and uses a bolt database to store the data. See #247 (comment) #247 (comment)

Patrick gave me access to one of his Windows clusters to perform verification. While there were some errors, none appear attributed to this change.

I was able to scale from 1 to 25, back to 1 and back up again. Hopefully this is finally the end of those lock store-related errors.

It is not however the end of no-errors-at-all during scaling. I will leave that to others to investigate...

I have NOT been able to test this against a linux node - perhaps @tamilmani1989 would be able to that as per before.

In addition, this PR has a bunch of commits which fix (most) vendoring issues in this repo. There is still more to do there, but again, I will leave that for others to resolve. I had to tackle vendoring to some extent to pull in bbolt.

Finally, there are three other commits in this PR.

  • I have put in an implementation of GetLastRebootTime on Windows. As it's implementation changes the startup functionality, I have left that effectively stubbed out for someone else to follow through with.
  • I hit a SIGSEGV in testing in UpdateSendAndReport. Made that safe.
  • Remove ./store/ from circleCI

Here's the 25 pods scaling up-and-down on Patricks cluster:

NAME                        READY   STATUS    RESTARTS   AGE     IP            NODE           NOMINATED NODE
iis-1803-687cdddf9f-28vrj   1/1     Running   0          10m     10.240.0.10   13833k8s9000   <none>
iis-1803-687cdddf9f-5fjcn   1/1     Running   0          6m33s   10.240.0.30   13833k8s9000   <none>
iis-1803-687cdddf9f-6dk28   1/1     Running   0          10m     10.240.0.31   13833k8s9000   <none>
iis-1803-687cdddf9f-6j8wg   1/1     Running   0          6m33s   10.240.0.11   13833k8s9000   <none>
iis-1803-687cdddf9f-8f5kc   1/1     Running   1          6m33s   10.240.0.14   13833k8s9000   <none>
iis-1803-687cdddf9f-bkd7n   1/1     Running   0          10m     10.240.0.28   13833k8s9000   <none>
iis-1803-687cdddf9f-bth4v   1/1     Running   0          6m33s   10.240.0.23   13833k8s9000   <none>
iis-1803-687cdddf9f-csm2x   1/1     Running   0          10m     10.240.0.5    13833k8s9000   <none>
iis-1803-687cdddf9f-dtvqp   1/1     Running   1          6m33s   10.240.0.9    13833k8s9000   <none>
iis-1803-687cdddf9f-fv9rn   1/1     Running   1          6m33s   10.240.0.20   13833k8s9000   <none>
iis-1803-687cdddf9f-gmzcz   1/1     Running   1          6m33s   10.240.0.12   13833k8s9000   <none>
iis-1803-687cdddf9f-kzmcf   1/1     Running   0          10m     10.240.0.7    13833k8s9000   <none>
iis-1803-687cdddf9f-lltjr   1/1     Running   1          6m33s   10.240.0.13   13833k8s9000   <none>
iis-1803-687cdddf9f-lx2vf   1/1     Running   0          10m     10.240.0.26   13833k8s9000   <none>
iis-1803-687cdddf9f-nn9pp   1/1     Running   1          6m33s   10.240.0.21   13833k8s9000   <none>
iis-1803-687cdddf9f-pjcws   1/1     Running   1          6m33s   10.240.0.22   13833k8s9000   <none>
iis-1803-687cdddf9f-q7hsf   1/1     Running   1          6m33s   10.240.0.33   13833k8s9000   <none>
iis-1803-687cdddf9f-qn5c7   1/1     Running   0          10m     10.240.0.27   13833k8s9000   <none>
iis-1803-687cdddf9f-rt6r5   1/1     Running   1          6m33s   10.240.0.17   13833k8s9000   <none>
iis-1803-687cdddf9f-s2jsb   1/1     Running   0          10m     10.240.0.8    13833k8s9000   <none>
iis-1803-687cdddf9f-sgwb8   1/1     Running   1          6m33s   10.240.0.25   13833k8s9000   <none>
iis-1803-687cdddf9f-x9tpt   1/1     Running   0          10m     10.240.0.29   13833k8s9000   <none>
iis-1803-687cdddf9f-xf6x9   1/1     Running   0          6m33s   10.240.0.24   13833k8s9000   <none>
iis-1803-687cdddf9f-xwfxg   1/1     Running   0          10m     10.240.0.15   13833k8s9000   <none>
iis-1803-687cdddf9f-zf8kv   1/1     Running   1          6m33s   10.240.0.16   13833k8s9000   <none>
azureuser@k8s-master-13833463-0:~/john$ curl http://10.240.0.16
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>IIS Windows Server</title>
<style type="text/css">
<!--
body {
        color:#000000;
        background-color:#0072C6;
        margin:0;
}

#container {
        margin-left:auto;
        margin-right:auto;
        text-align:center;
        }

a img {
        border:none;
}

-->
</style>
</head>
<body>
<div id="container">
<a href="http://go.microsoft.com/fwlink/?linkid=66138&amp;clcid=0x409"><img src="iisstart.png" alt="IIS" width="960" height="600" /></a>
</div>
</body>
</html>

Then scaling back down:

azureuser@k8s-master-13833463-0:~/john$ kubectl scale deploy iis-1803 --replicas=1
deployment.extensions/iis-1803 scaled
azureuser@k8s-master-13833463-0:~/john$

Some time later...

azureuser@k8s-master-13833463-0:~/john$ kubectl get pod -o wide
NAME                        READY   STATUS    RESTARTS   AGE   IP            NODE           NOMINATED NODE
iis-1803-687cdddf9f-x9tpt   1/1     Running   0          16m   10.240.0.29   13833k8s9000   <none>

And scaling back up again

azureuser@k8s-master-13833463-0:~/john$ kubectl scale deploy iis-1803 --replicas=25
deployment.extensions/iis-1803 scaled
azureuser@k8s-master-13833463-0:~/john$

Some time later...

zureuser@k8s-master-13833463-0:~/john$ kubectl get pod -o wide
NAME                        READY   STATUS    RESTARTS   AGE    IP            NODE           NOMINATED NODE
iis-1803-687cdddf9f-26p6l   1/1     Running   0          7m     10.240.0.11   13833k8s9000   <none>
iis-1803-687cdddf9f-2ktdz   1/1     Running   0          7m     10.240.0.10   13833k8s9000   <none>
iis-1803-687cdddf9f-48ggp   1/1     Running   0          7m     10.240.0.5    13833k8s9000   <none>
iis-1803-687cdddf9f-4gtmb   1/1     Running   0          7m     10.240.0.26   13833k8s9000   <none>
iis-1803-687cdddf9f-4hd72   1/1     Running   0          7m     10.240.0.24   13833k8s9000   <none>
iis-1803-687cdddf9f-4pwsq   1/1     Running   1          7m     10.240.0.33   13833k8s9000   <none>
iis-1803-687cdddf9f-5kw22   1/1     Running   0          7m     10.240.0.9    13833k8s9000   <none>
iis-1803-687cdddf9f-664z7   1/1     Running   1          7m     10.240.0.16   13833k8s9000   <none>
iis-1803-687cdddf9f-8swz7   1/1     Running   1          7m1s   10.240.0.7    13833k8s9000   <none>
iis-1803-687cdddf9f-9h98r   1/1     Running   1          7m     10.240.0.8    13833k8s9000   <none>
iis-1803-687cdddf9f-9h9jd   1/1     Running   1          7m     10.240.0.14   13833k8s9000   <none>
iis-1803-687cdddf9f-lftd7   1/1     Running   1          7m     10.240.0.19   13833k8s9000   <none>
iis-1803-687cdddf9f-m9knq   1/1     Running   1          7m     10.240.0.31   13833k8s9000   <none>
iis-1803-687cdddf9f-mplcc   1/1     Running   1          7m     10.240.0.21   13833k8s9000   <none>
iis-1803-687cdddf9f-p7jn2   1/1     Running   0          7m     10.240.0.20   13833k8s9000   <none>
iis-1803-687cdddf9f-sml2x   1/1     Running   0          7m1s   10.240.0.13   13833k8s9000   <none>
iis-1803-687cdddf9f-tjfws   1/1     Running   0          7m     10.240.0.18   13833k8s9000   <none>
iis-1803-687cdddf9f-vxdl4   1/1     Running   0          7m     10.240.0.15   13833k8s9000   <none>
iis-1803-687cdddf9f-x26vj   1/1     Running   1          7m1s   10.240.0.30   13833k8s9000   <none>
iis-1803-687cdddf9f-x2hll   1/1     Running   1          7m     10.240.0.28   13833k8s9000   <none>
iis-1803-687cdddf9f-x9tpt   1/1     Running   0          24m    10.240.0.29   13833k8s9000   <none>
iis-1803-687cdddf9f-xg5bm   1/1     Running   1          7m     10.240.0.23   13833k8s9000   <none>
iis-1803-687cdddf9f-zkkzm   1/1     Running   1          7m     10.240.0.32   13833k8s9000   <none>
iis-1803-687cdddf9f-zqv69   1/1     Running   0          7m     10.240.0.17   13833k8s9000   <none>
iis-1803-687cdddf9f-zvzn9   1/1     Running   0          7m     10.240.0.27   13833k8s9000   <none>
azureuser@k8s-master-13833463-0:~/john$

John Howard added 7 commits October 1, 2018 15:57
Signed-off-by: John Howard <jhoward@microsoft.com>
Signed-off-by: John Howard <jhoward@microsoft.com>
Signed-off-by: John Howard <jhoward@microsoft.com>
Signed-off-by: John Howard <jhoward@microsoft.com>
Signed-off-by: John Howard <jhoward@microsoft.com>
Signed-off-by: John Howard <jhoward@microsoft.com>
Signed-off-by: John Howard <jhoward@microsoft.com>
@lowenna
Copy link
Contributor Author

lowenna commented Oct 1, 2018

azure-vnet-ipam.zip

Have attached output/Linux_amd64/cni/azure-vnet and azure-vnet-ipam as built under WSL against this PR.

jhoward@jhoward-p520:/mnt/e/go/src/github.com/Azure/azure-container-networking$ make all-binaries
go build -v -o output/linux_amd64/cnm/azure-vnet-plugin -ldflags "-X main.version=v1.0.12-rc3-22-g186ba39 -s -w" cnm/plugin/*.go
github.com/Azure/azure-container-networking/vendor/go.etcd.io/bbolt
github.com/Azure/azure-container-networking/boltwrapper
github.com/Azure/azure-container-networking/common
github.com/Azure/azure-container-networking/ovsctl
github.com/Azure/azure-container-networking/cnm
github.com/Azure/azure-container-networking/ipam
github.com/Azure/azure-container-networking/network
github.com/Azure/azure-container-networking/cnm/ipam
github.com/Azure/azure-container-networking/cnm/network
command-line-arguments
chmod 0755 output/linux_amd64/cnm/azure-vnet-plugin
cd output/linux_amd64/cnm && tar -czvf azure-vnet-cnm-linux-amd64-v1.0.12-rc3-22-g186ba39.tgz azure-vnet-plugin
azure-vnet-plugin
chown 1000:1000 output/linux_amd64/cnm/azure-vnet-cnm-linux-amd64-v1.0.12-rc3-22-g186ba39.tgz
go build -v -o output/linux_amd64/cni/azure-vnet -ldflags "-X main.version=v1.0.12-rc3-22-g186ba39 -s -w" cni/network/plugin/*.go
github.com/Azure/azure-container-networking/vendor/github.com/containernetworking/cni/pkg/types
github.com/Azure/azure-container-networking/cns/common
github.com/Azure/azure-container-networking/telemetry
github.com/Azure/azure-container-networking/vendor/github.com/containernetworking/cni/pkg/types/020
github.com/Azure/azure-container-networking/cns
github.com/Azure/azure-container-networking/vendor/github.com/containernetworking/cni/pkg/types/current
github.com/Azure/azure-container-networking/cns/cnsclient
github.com/Azure/azure-container-networking/vendor/github.com/containernetworking/cni/pkg/version
github.com/Azure/azure-container-networking/vendor/github.com/containernetworking/cni/pkg/skel
github.com/Azure/azure-container-networking/vendor/github.com/containernetworking/cni/pkg/invoke
github.com/Azure/azure-container-networking/cni
github.com/Azure/azure-container-networking/cni/network
command-line-arguments
go build -v -o output/linux_amd64/cni/azure-vnet-ipam -ldflags "-X main.version=v1.0.12-rc3-22-g186ba39 -s -w" cni/ipam/plugin/*.go
github.com/Azure/azure-container-networking/cni/ipam
command-line-arguments
cp cni/azure-linux.conflist output/linux_amd64/cni/10-azure.conflist
chmod 0755 output/linux_amd64/cni/azure-vnet output/linux_amd64/cni/azure-vnet-ipam
cd output/linux_amd64/cni && tar -czvf azure-vnet-cni-linux-amd64-v1.0.12-rc3-22-g186ba39.tgz azure-vnet azure-vnet-ipam 10-azure.conflist
azure-vnet
azure-vnet-ipam
10-azure.conflist
chown 1000:1000 output/linux_amd64/cni/azure-vnet-cni-linux-amd64-v1.0.12-rc3-22-g186ba39.tgz
mkdir -p output/linux_amd64/cni-multitenancy
cp cni/azure-linux-multitenancy.conflist output/linux_amd64/cni-multitenancy/10-azure.conflist
cp output/linux_amd64/cni/azure-vnet output/linux_amd64/cni/azure-vnet-ipam output/linux_amd64/cni-multitenancy
chmod 0755 output/linux_amd64/cni-multitenancy/azure-vnet output/linux_amd64/cni-multitenancy/azure-vnet-ipam
cd output/linux_amd64/cni-multitenancy && tar -czvf azure-vnet-cni-multitenancy-linux-amd64-v1.0.12-rc3-22-g186ba39.tgz azure-vnet azure-vnet-ipam 10-azure.conflist
azure-vnet
azure-vnet-ipam
10-azure.conflist
chown 1000:1000 output/linux_amd64/cni-multitenancy/azure-vnet-cni-multitenancy-linux-amd64-v1.0.12-rc3-22-g186ba39.tgz
go build -v -o output/linux_amd64/cns/azure-cns -ldflags "-X main.version=v1.0.12-rc3-22-g186ba39 -s -w" cns/service/*.go
github.com/Azure/azure-container-networking/cns/routes
github.com/Azure/azure-container-networking/cns/imdsclient
github.com/Azure/azure-container-networking/cns/networkcontainers
github.com/Azure/azure-container-networking/cns/ipamclient
github.com/Azure/azure-container-networking/cns/dockerclient
github.com/Azure/azure-container-networking/cns/restserver
command-line-arguments
chmod 0755 output/linux_amd64/cns/azure-cns
cd output/linux_amd64/cns && tar -czvf azure-cns-linux-amd64-v1.0.12-rc3-22-g186ba39.tgz azure-cns
azure-cns
chown 1000:1000 output/linux_amd64/cns/azure-cns-linux-amd64-v1.0.12-rc3-22-g186ba39.tgz
go build -v -o output/linux_amd64/npm/azure-npm -ldflags "-X main.version=v1.0.12-rc3-22-g186ba39 -s -w" npm/plugin/*.gogithub.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/selection
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/util/integer
github.com/Azure/azure-container-networking/vendor/github.com/hashicorp/golang-lru/simplelru
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/util/buffer
github.com/Azure/azure-container-networking/vendor/golang.org/x/text/transform
github.com/Azure/azure-container-networking/vendor/github.com/gogo/protobuf/sortkeys
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/util/sets
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/util/clock
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/version
github.com/Azure/azure-container-networking/vendor/golang.org/x/crypto/ssh/terminal
github.com/Azure/azure-container-networking/npm/util
github.com/Azure/azure-container-networking/vendor/gopkg.in/inf.v0
github.com/Azure/azure-container-networking/vendor/github.com/google/gofuzz
github.com/Azure/azure-container-networking/vendor/github.com/gogo/protobuf/proto
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/third_party/forked/golang/reflect
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/fields
github.com/Azure/azure-container-networking/npm/ipsm
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/util/json
github.com/Azure/azure-container-networking/npm/iptm
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/util/naming
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/util/errors
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/conversion/queryparams
github.com/Azure/azure-container-networking/vendor/github.com/golang/glog
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/types
github.com/Azure/azure-container-networking/vendor/golang.org/x/text/unicode/bidi
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/conversion
github.com/Azure/azure-container-networking/vendor/golang.org/x/net/http2/hpack
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/util/validation/field
github.com/Azure/azure-container-networking/vendor/github.com/gregjones/httpcache
github.com/Azure/azure-container-networking/vendor/golang.org/x/text/unicode/norm
github.com/Azure/azure-container-networking/vendor/gopkg.in/yaml.v2
github.com/Azure/azure-container-networking/vendor/github.com/golang/protobuf/proto
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/runtime/schema
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/api/resource
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/util/runtime
github.com/Azure/azure-container-networking/vendor/golang.org/x/text/secure/bidirule
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/util/intstr
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/util/validation
github.com/Azure/azure-container-networking/vendor/github.com/google/btree
github.com/Azure/azure-container-networking/vendor/github.com/modern-go/concurrent
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/util/framer
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/pkg/version
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/labels
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/util/wait
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/runtime
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/util/connrotation
github.com/Azure/azure-container-networking/vendor/golang.org/x/net/idna
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/tools/metrics
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/util/cert
github.com/Azure/azure-container-networking/vendor/github.com/peterbourgon/diskv
github.com/Azure/azure-container-networking/vendor/golang.org/x/net/context
github.com/Azure/azure-container-networking/vendor/github.com/modern-go/reflect2
github.com/Azure/azure-container-networking/vendor/github.com/hashicorp/golang-lru
github.com/Azure/azure-container-networking/vendor/github.com/davecgh/go-spew/spew
github.com/Azure/azure-container-networking/vendor/golang.org/x/time/rate
github.com/Azure/azure-container-networking/vendor/github.com/ghodss/yaml
github.com/Azure/azure-container-networking/vendor/golang.org/x/net/http/httpguts
github.com/Azure/azure-container-networking/vendor/github.com/gregjones/httpcache/diskcache
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/util/cache
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/util/flowcontrol
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/util/yaml
github.com/Azure/azure-container-networking/vendor/golang.org/x/net/http2
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/util/diff
github.com/Azure/azure-container-networking/vendor/github.com/golang/protobuf/ptypes/duration
github.com/Azure/azure-container-networking/vendor/github.com/golang/protobuf/ptypes/timestamp
github.com/Azure/azure-container-networking/vendor/github.com/golang/protobuf/ptypes/any
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/runtime/serializer/recognizer
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/runtime/serializer/streaming
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/tools/clientcmd/api
github.com/Azure/azure-container-networking/vendor/github.com/golang/protobuf/ptypes
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/runtime/serializer/protobuf
github.com/Azure/azure-container-networking/vendor/github.com/json-iterator/go
github.com/Azure/azure-container-networking/vendor/github.com/googleapis/gnostic/extensions
github.com/Azure/azure-container-networking/vendor/github.com/googleapis/gnostic/compiler
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/util/net
github.com/Azure/azure-container-networking/vendor/github.com/googleapis/gnostic/OpenAPIv2
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/transport
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/watch
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/runtime/serializer/json
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/apis/meta/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/api/errors
github.com/Azure/azure-container-networking/vendor/k8s.io/api/scheduling/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/admissionregistration/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/admissionregistration/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/certificates/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/coordination/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/scheduling/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/rbac/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/rbac/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/storage/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/rbac/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/core/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured
github.com/Azure/azure-container-networking/vendor/k8s.io/api/authentication/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/authentication/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/authorization/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/authorization/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/pkg/apis/clientauthentication
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/rest/watch
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/runtime/serializer/versioning
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/util/retry
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/runtime/serializer
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/api/meta
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/plugin/pkg/client/auth/exec
github.com/Azure/azure-container-networking/vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/tools/pager
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/rest
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/tools/cache
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/scheduling/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/scheduling/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/certificates/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/admissionregistration/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/rbac/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/coordination/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/rbac/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/rbac/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/storage/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/batch/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/networking/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/storage/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/policy/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/autoscaling/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/apps/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/storage/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/autoscaling/v2beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/settings/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/events/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/apps/v1beta2
github.com/Azure/azure-container-networking/vendor/k8s.io/api/apps/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/batch/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/batch/v2alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/tools/reference
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/batch/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/core/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/autoscaling/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/events/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/networking/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/policy/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/api/extensions/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/storage/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/settings/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/apps/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/storage/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/autoscaling/v2beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/batch/v2alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/batch/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/apps/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/apps/v1beta2
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/scheme
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/listers/extensions/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/discovery
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/apps/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/batch/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/networking/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/core/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/storage/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/kubernetes
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/internalinterfaces
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/admissionregistration/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/batch/v2alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/admissionregistration/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/batch/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/autoscaling/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/certificates/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/autoscaling/v2beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/batch/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/apps/v1beta2
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/apps/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/apps/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/coordination/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/events/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/core/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/coordination
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/autoscaling
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/extensions/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/certificates
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/admissionregistration
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/networking/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/batch
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/policy/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/rbac/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/apps
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/events
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/rbac/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/rbac/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/scheduling/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/networking
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/settings/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/scheduling/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/storage/v1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/storage/v1alpha1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/extensions
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/policy
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/storage/v1beta1
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/core
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/rbac
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/settings
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/scheduling
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers/storage
github.com/Azure/azure-container-networking/vendor/k8s.io/client-go/informers
github.com/Azure/azure-container-networking/npm
command-line-arguments
chmod 0755 output/linux_amd64/npm/azure-npm
cd output/linux_amd64/npm && tar -czvf azure-npm-linux-amd64-v1.0.12-rc3-22-g186ba39.tgz azure-npm
azure-npm
chown 1000:1000 output/linux_amd64/npm/azure-npm-linux-amd64-v1.0.12-rc3-22-g186ba39.tgz
jhoward@jhoward-p520:/mnt/e/go/src/github.com/Azure/azure-container-networking$


@lowenna
Copy link
Contributor Author

lowenna commented Oct 1, 2018

(Looks like I will have to do some more vendoring work to get it to pass CI and unit tests though. For tomorrow....)

John Howard added 4 commits October 2, 2018 08:45
Signed-off-by: John Howard <jhoward@microsoft.com>
Signed-off-by: John Howard <jhoward@microsoft.com>
Signed-off-by: John Howard <jhoward@microsoft.com>
Signed-off-by: John Howard <jhoward@microsoft.com>
@lowenna lowenna force-pushed the bolt branch 2 times, most recently from 0e0f44f to 0c31f85 Compare October 2, 2018 17:14
John Howard added 2 commits October 2, 2018 10:36
Signed-off-by: John Howard <jhoward@microsoft.com>
Signed-off-by: John Howard <jhoward@microsoft.com>
John Howard added 3 commits October 2, 2018 10:41
Signed-off-by: John Howard <jhoward@microsoft.com>
Signed-off-by: John Howard <jhoward@microsoft.com>

As per the code comment:

	// @jhowardmsft - These following lines are the original non-implementation.
	// I have kept these here, as by introducing a real implementation of this
	// function (which I have below) has side effects which I have no means
	// of being able to verify correct operation, have to leave that to the
	// owners of this repo to verify.
Signed-off-by: John Howard <jhoward@microsoft.com>

Move store to bbolt database

This PR is a follow on to Azure#247

@tamilmani1989 @sharmasushant PTAL.

@PatrickLang, @DavidSchott @dineshgovindasamy @madhanrm @jterry75 FYI. @msuiche perhaps you are able to perform more verification on this as well?

As per Azure#247 (comment), while that PR was better, it was far from perfect.
This PR replaces the store entirely and uses a bolt database to store the data. See Azure#247 (comment) Azure#247 (comment)

Patrick gave me access to one of his Windows clusters to perform verification. While there were some errors, none appear attributed to this change.
I was able to scale from 1 to 25, back to 1 and back up again. Hopefully this is finally the end of those lock store-related errors.
It is not however the end of no-errors-at-all during scaling. I will leave that to others to investigate...

I have NOT been able to test this against a linux node - perhaps @tamilmani1989 would be able to that as per before.

In addition, this PR has a bunch of commits which fix (most) vendoring issues in this repo. There is still more to do there, but again, I will leave that for others to resolve. I had to tackle vendoring to some extent to pull in bbolt.

Finally, there are two other commits in this PR.
- I have put in an implementation of GetLastRebootTime on Windows. As it's implementation changes the startup functionality, I have left that effectively stubbed out for someone else to follow through with.
- I hit a SIGSEGV in testing in UpdateSendAndReport. Made that safe.

Here's the 25 pods scaling up-and-down on Patricks cluster:

```
NAME                        READY   STATUS    RESTARTS   AGE     IP            NODE           NOMINATED NODE
iis-1803-687cdddf9f-28vrj   1/1     Running   0          10m     10.240.0.10   13833k8s9000   <none>
iis-1803-687cdddf9f-5fjcn   1/1     Running   0          6m33s   10.240.0.30   13833k8s9000   <none>
iis-1803-687cdddf9f-6dk28   1/1     Running   0          10m     10.240.0.31   13833k8s9000   <none>
iis-1803-687cdddf9f-6j8wg   1/1     Running   0          6m33s   10.240.0.11   13833k8s9000   <none>
iis-1803-687cdddf9f-8f5kc   1/1     Running   1          6m33s   10.240.0.14   13833k8s9000   <none>
iis-1803-687cdddf9f-bkd7n   1/1     Running   0          10m     10.240.0.28   13833k8s9000   <none>
iis-1803-687cdddf9f-bth4v   1/1     Running   0          6m33s   10.240.0.23   13833k8s9000   <none>
iis-1803-687cdddf9f-csm2x   1/1     Running   0          10m     10.240.0.5    13833k8s9000   <none>
iis-1803-687cdddf9f-dtvqp   1/1     Running   1          6m33s   10.240.0.9    13833k8s9000   <none>
iis-1803-687cdddf9f-fv9rn   1/1     Running   1          6m33s   10.240.0.20   13833k8s9000   <none>
iis-1803-687cdddf9f-gmzcz   1/1     Running   1          6m33s   10.240.0.12   13833k8s9000   <none>
iis-1803-687cdddf9f-kzmcf   1/1     Running   0          10m     10.240.0.7    13833k8s9000   <none>
iis-1803-687cdddf9f-lltjr   1/1     Running   1          6m33s   10.240.0.13   13833k8s9000   <none>
iis-1803-687cdddf9f-lx2vf   1/1     Running   0          10m     10.240.0.26   13833k8s9000   <none>
iis-1803-687cdddf9f-nn9pp   1/1     Running   1          6m33s   10.240.0.21   13833k8s9000   <none>
iis-1803-687cdddf9f-pjcws   1/1     Running   1          6m33s   10.240.0.22   13833k8s9000   <none>
iis-1803-687cdddf9f-q7hsf   1/1     Running   1          6m33s   10.240.0.33   13833k8s9000   <none>
iis-1803-687cdddf9f-qn5c7   1/1     Running   0          10m     10.240.0.27   13833k8s9000   <none>
iis-1803-687cdddf9f-rt6r5   1/1     Running   1          6m33s   10.240.0.17   13833k8s9000   <none>
iis-1803-687cdddf9f-s2jsb   1/1     Running   0          10m     10.240.0.8    13833k8s9000   <none>
iis-1803-687cdddf9f-sgwb8   1/1     Running   1          6m33s   10.240.0.25   13833k8s9000   <none>
iis-1803-687cdddf9f-x9tpt   1/1     Running   0          10m     10.240.0.29   13833k8s9000   <none>
iis-1803-687cdddf9f-xf6x9   1/1     Running   0          6m33s   10.240.0.24   13833k8s9000   <none>
iis-1803-687cdddf9f-xwfxg   1/1     Running   0          10m     10.240.0.15   13833k8s9000   <none>
iis-1803-687cdddf9f-zf8kv   1/1     Running   1          6m33s   10.240.0.16   13833k8s9000   <none>
azureuser@k8s-master-13833463-0:~/john$ curl http://10.240.0.16
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>IIS Windows Server</title>
<style type="text/css">
<!--
body {
        color:#000000;
        background-color:#0072C6;
        margin:0;
}

        margin-left:auto;
        margin-right:auto;
        text-align:center;
        }

a img {
        border:none;
}

-->
</style>
</head>
<body>
<div id="container">
<a href="http://go.microsoft.com/fwlink/?linkid=66138&amp;clcid=0x409"><img src="iisstart.png" alt="IIS" width="960" height="600" /></a>
</div>
</body>
</html>
```

Then scaling back down:

```
azureuser@k8s-master-13833463-0:~/john$ kubectl scale deploy iis-1803 --replicas=1
deployment.extensions/iis-1803 scaled
azureuser@k8s-master-13833463-0:~/john$
```

Some time later...

```
azureuser@k8s-master-13833463-0:~/john$ kubectl get pod -o wide
NAME                        READY   STATUS    RESTARTS   AGE   IP            NODE           NOMINATED NODE
iis-1803-687cdddf9f-x9tpt   1/1     Running   0          16m   10.240.0.29   13833k8s9000   <none>
```

And scaling back up again

```
azureuser@k8s-master-13833463-0:~/john$ kubectl scale deploy iis-1803 --replicas=25
deployment.extensions/iis-1803 scaled
azureuser@k8s-master-13833463-0:~/john$
```

Some time later...

```
zureuser@k8s-master-13833463-0:~/john$ kubectl get pod -o wide
NAME                        READY   STATUS    RESTARTS   AGE    IP            NODE           NOMINATED NODE
iis-1803-687cdddf9f-26p6l   1/1     Running   0          7m     10.240.0.11   13833k8s9000   <none>
iis-1803-687cdddf9f-2ktdz   1/1     Running   0          7m     10.240.0.10   13833k8s9000   <none>
iis-1803-687cdddf9f-48ggp   1/1     Running   0          7m     10.240.0.5    13833k8s9000   <none>
iis-1803-687cdddf9f-4gtmb   1/1     Running   0          7m     10.240.0.26   13833k8s9000   <none>
iis-1803-687cdddf9f-4hd72   1/1     Running   0          7m     10.240.0.24   13833k8s9000   <none>
iis-1803-687cdddf9f-4pwsq   1/1     Running   1          7m     10.240.0.33   13833k8s9000   <none>
iis-1803-687cdddf9f-5kw22   1/1     Running   0          7m     10.240.0.9    13833k8s9000   <none>
iis-1803-687cdddf9f-664z7   1/1     Running   1          7m     10.240.0.16   13833k8s9000   <none>
iis-1803-687cdddf9f-8swz7   1/1     Running   1          7m1s   10.240.0.7    13833k8s9000   <none>
iis-1803-687cdddf9f-9h98r   1/1     Running   1          7m     10.240.0.8    13833k8s9000   <none>
iis-1803-687cdddf9f-9h9jd   1/1     Running   1          7m     10.240.0.14   13833k8s9000   <none>
iis-1803-687cdddf9f-lftd7   1/1     Running   1          7m     10.240.0.19   13833k8s9000   <none>
iis-1803-687cdddf9f-m9knq   1/1     Running   1          7m     10.240.0.31   13833k8s9000   <none>
iis-1803-687cdddf9f-mplcc   1/1     Running   1          7m     10.240.0.21   13833k8s9000   <none>
iis-1803-687cdddf9f-p7jn2   1/1     Running   0          7m     10.240.0.20   13833k8s9000   <none>
iis-1803-687cdddf9f-sml2x   1/1     Running   0          7m1s   10.240.0.13   13833k8s9000   <none>
iis-1803-687cdddf9f-tjfws   1/1     Running   0          7m     10.240.0.18   13833k8s9000   <none>
iis-1803-687cdddf9f-vxdl4   1/1     Running   0          7m     10.240.0.15   13833k8s9000   <none>
iis-1803-687cdddf9f-x26vj   1/1     Running   1          7m1s   10.240.0.30   13833k8s9000   <none>
iis-1803-687cdddf9f-x2hll   1/1     Running   1          7m     10.240.0.28   13833k8s9000   <none>
iis-1803-687cdddf9f-x9tpt   1/1     Running   0          24m    10.240.0.29   13833k8s9000   <none>
iis-1803-687cdddf9f-xg5bm   1/1     Running   1          7m     10.240.0.23   13833k8s9000   <none>
iis-1803-687cdddf9f-zkkzm   1/1     Running   1          7m     10.240.0.32   13833k8s9000   <none>
iis-1803-687cdddf9f-zqv69   1/1     Running   0          7m     10.240.0.17   13833k8s9000   <none>
iis-1803-687cdddf9f-zvzn9   1/1     Running   0          7m     10.240.0.27   13833k8s9000   <none>
azureuser@k8s-master-13833463-0:~/john$
```
@lowenna
Copy link
Contributor Author

lowenna commented Oct 2, 2018

(Looks like I will have to do some more vendoring work to get it to pass CI and unit tests though. For tomorrow....)

Fixed and passing CI now.

@PatrickLang
Copy link
Contributor

@sharmasushant can you review or assign this to someone? We're still getting reports of this failing in Kubernetes conformance tests

@sharmasushant
Copy link
Contributor

@sharmasushant can you review or assign this to someone? We're still getting reports of this failing in Kubernetes conformance tests

@PatrickLang What are the failures? Please share the failed tests that we can run ourselves. This is quite a big change and will take time for us. It will not be merged soon.

@lowenna
Copy link
Contributor Author

lowenna commented Oct 9, 2018

@PatrickLang Can someone run binaries from this branch with the conformance tests?

@daschott
Copy link

@jhowardmsft I believe we ran conformance tests from your previous PR #247 and it resolved errors of kubelet posting "NotReady" status. We can try this PR next

@saiyan86
Copy link
Contributor

@jhowardmsft Thanks for the PR! We'll validate the PR soon for both Linux & Windows.

@saiyan86 saiyan86 self-assigned this Oct 16, 2018
@lowenna
Copy link
Contributor Author

lowenna commented Nov 10, 2018

@saiyan86 Any progress? I'm loathed to rebase this if it's just sitting here.

@sharmasushant
Copy link
Contributor

Hi @jhowardmsft
We are trying to determine few things before we can start test pass and review of this PR. May be we can collectively try to answer below questions. Let's have clarity on below before we have you spend more time on this.

1. Ops Experience: We currently just read the json file and any json parser can help us lookup what is in the state. With this transition, do we need new tools to read state?

2. Changing state: We can currently simply edit the json file and change the state. What tools will we need once we do the transition for changing state?

3. Migration: There are many VMs (especially the ones running multi-tenant workloads), where we have to have a migration story from json to bbolt. This PR currently do not address migration.
a. One potential way to migrate will be something called just in time migration. In this approach, as we touch a key-value pair, we migrate from json to bolt-db if not already migrated.
b. Another way to migrate will be one time migration on the first execution of cni binary. This will migrate whole state in one go and get rid of json.

@lowenna
Copy link
Contributor Author

lowenna commented Nov 12, 2018

  1. Ops Experience: We currently just read the json file and any json parser can help us lookup what is in the state. With this transition, do we need new tools to read state?
  2. Changing state: We can currently simply edit the json file and change the state. What tools will we need once we do the transition for changing state?

Looks like there's a few tools out there. For example https://github.com/br0xen/boltbrowser, https://github.com/nisboo/BoltGUI

Right, someone else is going to have to tackle that part of this problem.

@PatrickLang
Copy link
Contributor

I don't think we need to deal with migration of existing nodes. AKS-Engine and AKS always deploy new nodes by updating the VM scale set definition. They don't upgrade in place. If there are other use cases where you can't migrate, I think we could put this behind a config flag to use boltdb instead. That would mean we could test the stability and use data to make a final decision.

@lowenna
Copy link
Contributor Author

lowenna commented Jan 16, 2020

Closing as I am no longer working on container related things. This is still something which needs to be addressed as the implementation is not thread/multi-process safe, but I'll leave the container networking folks to take up if they wish.

@lowenna lowenna closed this Jan 16, 2020
@jterry75
Copy link

@lowenna - Thanks for your dedication to cleaning up loose ends :)!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants