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  }