github.com/cilium/cilium@v1.16.2/pkg/policy/groups/cache.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright Authors of Cilium 3 4 package groups 5 6 import ( 7 "k8s.io/apimachinery/pkg/types" 8 9 cilium_v2 "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2" 10 "github.com/cilium/cilium/pkg/lock" 11 ) 12 13 var groupsCNPCache = groupsCNPCacheMap{} 14 15 type groupsCNPCacheMap struct { 16 lock.Map[types.UID, *cilium_v2.CiliumNetworkPolicy] 17 } 18 19 func (cnpCache *groupsCNPCacheMap) UpdateCNP(cnp *cilium_v2.CiliumNetworkPolicy) { 20 cnpCache.Store(cnp.ObjectMeta.UID, cnp) 21 } 22 23 func (cnpCache *groupsCNPCacheMap) DeleteCNP(cnp *cilium_v2.CiliumNetworkPolicy) { 24 cnpCache.Delete(cnp.ObjectMeta.UID) 25 } 26 27 func (cnpCache *groupsCNPCacheMap) GetAllCNP() []*cilium_v2.CiliumNetworkPolicy { 28 result := []*cilium_v2.CiliumNetworkPolicy{} 29 cnpCache.Range(func(_ types.UID, cnp *cilium_v2.CiliumNetworkPolicy) bool { 30 result = append(result, cnp) 31 return true 32 }) 33 return result 34 }