ipcache: Re-create keys when necessary
ipcache: Re-create keys when necessary

The ipcache is not resilient to key removals right now. If keys are mistakenly
removed from the kvstore even though the ipcache entry is still in use locally,
the ipcache entry in the datapath will be blindly deleted.

Instead, verify whether the ipcache entry is still in use locally and re-create
the key if necessary. This covers cases where keys are deleted manually, the
kvstore state is restored from a backup, the kvstore is buggy or Cilium is
deleting a key by mistake.

Signed-off-by: Thomas Graf <5f50a84c1fa3bcff146405017f36aec1a10a9e38@cilium.io>

tklauser/cilium,cilium/cilium,scanf/cilium,michi-covalent/cilium,michi-covalent/cilium,scanf/cilium,scanf/cilium,cilium/cilium,cilium-team/cilium,scanf/cilium,michi-covalent/cilium,tklauser/cilium,cilium/cilium,tgraf/cilium,tgraf/cilium,cilium/cilium,tklauser/cilium,tgraf/cilium,tklauser/cilium,tgraf/cilium,cilium/cilium,michi-covalent/cilium,tgraf/cilium,scanf/cilium,scanf/cilium,tgraf/cilium,michi-covalent/cilium,tklauser/cilium,scanf/cilium,cilium-team/cilium