I see you have two layers. You should have each layer on a separate git repo or in your case just create a single layer. The reason for this has to do with how charm build works. When you run a charm build the build process scans all the layers you are using (as stated in your layers.yaml) and performs a lookup on the http://interfaces.juju.solutions/ to get the source repository where each layer and/or interface is. Then the build process fetches locally the sources of all the layers and moves on with the build. For the fetch (git clone in our case) to work we should have a git repo for each layer. Also note that the layers have to be registered in http://interfaces.juju.solutions
As you requested https://github.com/juju-solutions/bundle-canonical-kubernetes/issues/364 here are some comments on the layers you have.
I see you have two layers. You should have each layer on a separate git repo or in your case just create a single layer. The reason for this has to do with how charm build works. When you run a
charm build
the build process scans all the layers you are using (as stated in your layers.yaml) and performs a lookup on the http://interfaces.juju.solutions/ to get the source repository where each layer and/or interface is. Then the build process fetches locally the sources of all the layers and moves on with the build. For the fetch (git clone in our case) to work we should have a git repo for each layer. Also note that the layers have to be registered in http://interfaces.juju.solutionsI see you have a run_command https://github.com/AakashKT/ovn-kubernetes-charm/blob/master/layers/openvswitch/reactive/openvswitch.py#L40 but you never check if the command failed.
to get the public IP of the charm you should use https://pythonhosted.org/charmhelpers/api/charmhelpers.core.hookenv.html#charmhelpers.core.hookenv.unit_public_ip
the basic layer you are using has a packaging option that will deploy the packages you request. So you do not need this: https://github.com/AakashKT/ovn-kubernetes-charm/blob/master/layers/openvswitch/reactive/openvswitch.py#L67 . Alternatively you can use the apt-layer like so: https://github.com/juju-solutions/layer-cwr/blob/master/layer.yaml
You should avoid cloning openvswitch locally and installing it as you do here: https://github.com/AakashKT/ovn-kubernetes-charm/blob/master/layers/openvswitch/reactive/openvswitch.py#L80 You do not know when this repository will break, you do not have consistent deployments. Instead you should use apt packages
apt-get install openvswitch-switch
or at least package binaries into resources.