github.com/redhat-appstudio/e2e-tests@v0.0.0-20240520140907-9709f6f59323/pkg/clients/tekton/enterprise_contract_policies.go (about) 1 package tekton 2 3 import ( 4 "context" 5 6 ecp "github.com/enterprise-contract/enterprise-contract-controller/api/v1alpha1" 7 "k8s.io/apimachinery/pkg/api/errors" 8 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 9 crclient "sigs.k8s.io/controller-runtime/pkg/client" 10 ) 11 12 // CreateEnterpriseContractPolicy creates an EnterpriseContractPolicy in a specified namespace. 13 func (t *TektonController) CreateEnterpriseContractPolicy(name, namespace string, ecpolicy ecp.EnterpriseContractPolicySpec) (*ecp.EnterpriseContractPolicy, error) { 14 ec := &ecp.EnterpriseContractPolicy{ 15 ObjectMeta: metav1.ObjectMeta{ 16 Name: name, 17 Namespace: namespace, 18 }, 19 Spec: ecpolicy, 20 } 21 return ec, t.KubeRest().Create(context.Background(), ec) 22 } 23 24 // CreateOrUpdatePolicyConfiguration creates new policy if it doesn't exist, otherwise updates the existing one, in a specified namespace. 25 func (t *TektonController) CreateOrUpdatePolicyConfiguration(namespace string, policy ecp.EnterpriseContractPolicySpec) error { 26 ecPolicy := ecp.EnterpriseContractPolicy{ 27 ObjectMeta: metav1.ObjectMeta{ 28 Name: "ec-policy", 29 Namespace: namespace, 30 }, 31 } 32 33 // fetch to see if it exists 34 err := t.KubeRest().Get(context.Background(), crclient.ObjectKey{ 35 Namespace: namespace, 36 Name: "ec-policy", 37 }, &ecPolicy) 38 39 exists := true 40 if err != nil { 41 if errors.IsNotFound(err) { 42 exists = false 43 } else { 44 return err 45 } 46 } 47 48 ecPolicy.Spec = policy 49 if !exists { 50 // it doesn't, so create 51 if err := t.KubeRest().Create(context.Background(), &ecPolicy); err != nil { 52 return err 53 } 54 } else { 55 // it does, so update 56 if err := t.KubeRest().Update(context.Background(), &ecPolicy); err != nil { 57 return err 58 } 59 } 60 61 return nil 62 } 63 64 // GetEnterpriseContractPolicy gets an EnterpriseContractPolicy from specified a namespace 65 func (t *TektonController) GetEnterpriseContractPolicy(name, namespace string) (*ecp.EnterpriseContractPolicy, error) { 66 defaultEcPolicy := ecp.EnterpriseContractPolicy{ 67 ObjectMeta: metav1.ObjectMeta{ 68 Name: name, 69 Namespace: namespace, 70 }, 71 } 72 err := t.KubeRest().Get(context.Background(), crclient.ObjectKey{ 73 Namespace: namespace, 74 Name: name, 75 }, &defaultEcPolicy) 76 77 return &defaultEcPolicy, err 78 } 79 80 // DeleteEnterpriseContractPolicy deletes enterprise contract policy. 81 func (t *TektonController) DeleteEnterpriseContractPolicy(name string, namespace string, failOnNotFound bool) error { 82 ecPolicy := ecp.EnterpriseContractPolicy{ 83 ObjectMeta: metav1.ObjectMeta{ 84 Name: name, 85 Namespace: namespace, 86 }, 87 } 88 err := t.KubeRest().Delete(context.Background(), &ecPolicy) 89 if err != nil && !failOnNotFound && errors.IsNotFound(err) { 90 err = nil 91 } 92 return err 93 }