diff --git a/.gitignore b/.gitignore index 5f9182b..5e5aa1c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ bin *sync.sh +build.sh +bundle diff --git a/bundle/manifests/examplecnf.openshift.io_trexapps.yaml b/bundle/manifests/examplecnf.openshift.io_trexapps.yaml deleted file mode 100644 index 0f5b78c..0000000 --- a/bundle/manifests/examplecnf.openshift.io_trexapps.yaml +++ /dev/null @@ -1,46 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - creationTimestamp: null - name: trexapps.examplecnf.openshift.io -spec: - group: examplecnf.openshift.io - names: - kind: TRexApp - listKind: TRexAppList - plural: trexapps - singular: trexapp - scope: Namespaced - versions: - - name: v1 - schema: - openAPIV3Schema: - description: TRexApp is the Schema for the trexapps API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: Spec defines the desired state of TRexApp - type: object - x-kubernetes-preserve-unknown-fields: true - status: - description: Status defines the observed state of TRexApp - type: object - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: null - storedVersions: null diff --git a/bundle/manifests/examplecnf.openshift.io_trexconfigs.yaml b/bundle/manifests/examplecnf.openshift.io_trexconfigs.yaml deleted file mode 100644 index 50a8856..0000000 --- a/bundle/manifests/examplecnf.openshift.io_trexconfigs.yaml +++ /dev/null @@ -1,46 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - creationTimestamp: null - name: trexconfigs.examplecnf.openshift.io -spec: - group: examplecnf.openshift.io - names: - kind: TRexConfig - listKind: TRexConfigList - plural: trexconfigs - singular: trexconfig - scope: Namespaced - versions: - - name: v1 - schema: - openAPIV3Schema: - description: TRexConfig is the Schema for the trexconfigs API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: Spec defines the desired state of TRexConfig - type: object - x-kubernetes-preserve-unknown-fields: true - status: - description: Status defines the observed state of TRexConfig - type: object - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: null - storedVersions: null diff --git a/bundle/manifests/metrics-reader_rbac.authorization.k8s.io_v1beta1_clusterrole.yaml b/bundle/manifests/metrics-reader_rbac.authorization.k8s.io_v1beta1_clusterrole.yaml deleted file mode 100644 index 5419f62..0000000 --- a/bundle/manifests/metrics-reader_rbac.authorization.k8s.io_v1beta1_clusterrole.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1beta1 -kind: ClusterRole -metadata: - creationTimestamp: null - name: metrics-reader -rules: -- nonResourceURLs: - - /metrics - verbs: - - get diff --git a/bundle/manifests/trex-operator-controller-manager_v1_serviceaccount.yaml b/bundle/manifests/trex-operator-controller-manager_v1_serviceaccount.yaml deleted file mode 100644 index 5b3125d..0000000 --- a/bundle/manifests/trex-operator-controller-manager_v1_serviceaccount.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - creationTimestamp: null - name: trex-operator-controller-manager diff --git a/bundle/manifests/trex-operator-leader-election-role_rbac.authorization.k8s.io_v1_role.yaml b/bundle/manifests/trex-operator-leader-election-role_rbac.authorization.k8s.io_v1_role.yaml deleted file mode 100644 index af421c3..0000000 --- a/bundle/manifests/trex-operator-leader-election-role_rbac.authorization.k8s.io_v1_role.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - creationTimestamp: null - name: trex-operator-leader-election-role -rules: -- apiGroups: - - "" - resources: - - configmaps - verbs: - - get - - list - - watch - - create - - update - - patch - - delete -- apiGroups: - - "" - resources: - - events - verbs: - - create - - patch diff --git a/bundle/manifests/trex-operator-leader-election-rolebinding_rbac.authorization.k8s.io_v1_rolebinding.yaml b/bundle/manifests/trex-operator-leader-election-rolebinding_rbac.authorization.k8s.io_v1_rolebinding.yaml deleted file mode 100644 index 5002e76..0000000 --- a/bundle/manifests/trex-operator-leader-election-rolebinding_rbac.authorization.k8s.io_v1_rolebinding.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - creationTimestamp: null - name: trex-operator-leader-election-rolebinding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: trex-operator-leader-election-role -subjects: -- kind: ServiceAccount - name: controller-manager - namespace: example-cnf diff --git a/bundle/manifests/trex-operator-manager-role_rbac.authorization.k8s.io_v1_clusterrole.yaml b/bundle/manifests/trex-operator-manager-role_rbac.authorization.k8s.io_v1_clusterrole.yaml deleted file mode 100644 index 127e692..0000000 --- a/bundle/manifests/trex-operator-manager-role_rbac.authorization.k8s.io_v1_clusterrole.yaml +++ /dev/null @@ -1,96 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - creationTimestamp: null - name: trex-operator-manager-role -rules: -- apiGroups: - - "" - resources: - - secrets - - pods - - pods/exec - - pods/log - - services - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - batch - resources: - - jobs - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - apps - resources: - - deployments - - daemonsets - - replicasets - - statefulsets - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - examplecnf.openshift.io - resources: - - trexconfigs - - trexconfigs/status - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - security.openshift.io - resourceNames: - - privileged - resources: - - securitycontextconstraints - verbs: - - use -- apiGroups: - - events.k8s.io - resources: - - events - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - examplecnf.openshift.io - resources: - - trexapps - - trexapps/status - - trexapps/finalizers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch diff --git a/bundle/manifests/trex-operator-manager-rolebinding_rbac.authorization.k8s.io_v1_clusterrolebinding.yaml b/bundle/manifests/trex-operator-manager-rolebinding_rbac.authorization.k8s.io_v1_clusterrolebinding.yaml deleted file mode 100644 index 3cf11d0..0000000 --- a/bundle/manifests/trex-operator-manager-rolebinding_rbac.authorization.k8s.io_v1_clusterrolebinding.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - creationTimestamp: null - name: trex-operator-manager-rolebinding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: trex-operator-manager-role -subjects: -- kind: ServiceAccount - name: controller-manager - namespace: sample diff --git a/bundle/manifests/trex-operator-metrics-reader_rbac.authorization.k8s.io_v1beta1_clusterrole.yaml b/bundle/manifests/trex-operator-metrics-reader_rbac.authorization.k8s.io_v1beta1_clusterrole.yaml deleted file mode 100644 index f54ef3b..0000000 --- a/bundle/manifests/trex-operator-metrics-reader_rbac.authorization.k8s.io_v1beta1_clusterrole.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1beta1 -kind: ClusterRole -metadata: - creationTimestamp: null - name: trex-operator-metrics-reader -rules: -- nonResourceURLs: - - /metrics - verbs: - - get diff --git a/bundle/manifests/trex-operator.clusterserviceversion.yaml b/bundle/manifests/trex-operator.clusterserviceversion.yaml deleted file mode 100644 index 2d0092b..0000000 --- a/bundle/manifests/trex-operator.clusterserviceversion.yaml +++ /dev/null @@ -1,273 +0,0 @@ -apiVersion: operators.coreos.com/v1alpha1 -kind: ClusterServiceVersion -metadata: - annotations: - alm-examples: |- - [ - { - "apiVersion": "examplecnf.openshift.io/v1", - "kind": "TRexApp", - "metadata": { - "name": "trexapp-sample" - }, - "spec": { - "foo": "bar" - } - }, - { - "apiVersion": "examplecnf.openshift.io/v1", - "kind": "TRexConfig", - "metadata": { - "name": "trexconfig1" - }, - "spec": { - "cpu": 8, - "networks": [ - { - "count": 1, - "mac": "20:04:0f:f1:89:01", - "name": "vfdpdk1" - }, - { - "count": 1, - "mac": "20:04:0f:f1:89:02", - "name": "vfdpdk2" - } - ] - } - } - ] - capabilities: Basic Install - operators.operatorframework.io/builder: operator-sdk-v1.4.0+git - operators.operatorframework.io/project_layout: ansible.sdk.operatorframework.io/v1 - name: trex-operator.v0.2.5 - namespace: placeholder -spec: - apiservicedefinitions: {} - customresourcedefinitions: - owned: - - kind: TRexApp - name: trexapps.examplecnf.openshift.io - version: v1 - - kind: TRexConfig - name: trexconfigs.examplecnf.openshift.io - version: v1 - description: TRex Operator manages a packet generator application based on TRex - displayName: TRex Operator - icon: - - base64data: iVBORw0KGgoAAAANSUhEUgAAAwgAAAH0CAYAAACZygpcAAAACXBIWXMAABYlAAAWJQFJUiTwAAAgAElEQVR4nO3dcYxl130f9t+RGZoUHM+OQFgGbGmXaZs0SNQdFa7Tomp3iCJF4ETmqmhhIIiySwTuX2m4BIoayB/m0kXzV1AOUwH5wyi4GwUFmgLVUoYNo3LLXUdFUdeIdisXKWzU3KVswDIIvR3BEWVZ1i0O97zR23kzs/Pe3Hvfufd+PsDDSu8tyffunXn3fs/vd85JTdMEAABA9tTSMwBMyiylCxFxLSJ2I+LiEZ99PyLuRsT98ufd7aa5vfS3ABgFFQSAiSrB4EZEXFrzCNwpgSGHhdvbTfNw6W8AMDgCAsAEzVK6HhGvtvzJ75SwcGu7ae4uvQrAIAgIAAtmKe0u/N/7201zf0zHZ5bSuXwDf4aqwWntl//OLdUFgGEREIBJKjfKl0vf/c4xvfdzD0r//aBHx2cp7ZQb9vNLL3bvrYWwMKrQBTA2AgIwKaVCcDUirpzhc89Hx/eGEhZKOMgBZ2vpxf7dK3MfbgkLAPUREIBJKDfIex201uTqwvVys1tlG80spcvlhryGcHCYsABQGQEBGL2OJuQetl8CyF5NQWGWUq6WvLn0Qp3mbUjVhi2AKRAQgNHqcULuYTdzVWHTI+IDCweH5bBwY7tpbi29AkCnBARglEo4uP2Eycdd21hQmKWUqxkvL70wPIOb7wEwdAICMDqVhINFvQWF8tlzT/+LSy8O34PSxmW+AkCHBARgVCoMB4veKiPht5deacGGlzHt21slKNyYwGcF6JWAAIzKLKVbAxg9v7cwEn7mybglFF0fSUvRqvZLxeSGFiSAdggIwGj0tFpR29ZeuWeW0oWyp8O1Spcw7VurwQtgqgQEYBRKe81XBv5Z7pX2qLtl5+a7ize6JRBcKLs/725gdaahMLEZ4AwEBGAUZindrXTeAZt1rwQFcxUATklAAAZvoK1F9Gs+V2HPCkgAJxMQgEErbTd39eCzApuwAZxAQAAGbZZSHhW+4iyyhvm+CjdMagb4PgEBGKxSPXjHGeSM5pOaN7LrNUBtPuSMAAN23cmjBVulCvVO3kdjltKugwpMmQoCMEiqB3TM6kfAZAkIwCCZe0BPzFMAJkdAAAZnltK5/IczR4/2S1DYExSAsTMHARiia84aPdsqe23cz/tulJAKMEoqCMDgzFLKK82cd+bYIBUFYLQEBGBQZildjogvOGtUQlAARkeLETA0l50xKqL1CBgdFQRgMExOZgBUFIDBU0EAhkT1gNotVhSuOlvAEAkIwJC44WIoclB4M0+oL/NmAAZDixEwCHZOZuDu5IC73TT3nUigdioIwFAYhWXILuWAO0tpz0RmoHYCAjAU2osYg5cj4q62I6BmWoyA6mkvYqTeKm1HVjsCqqKCAAyB6gFj9GJZ7WjX2QVqIiAAQyAgMFZ5taO389wEZxiohRYjoGqzlHYi4ivOEhNwLyJ2tRwBm6aCANRO9YCpuFgmMO8448AmqSAAVcsbTUXEeWeJCdkvlYS7TjqwCSoIQLXKUpDCAVOT5yXcVkkANkVAAGpmrXimSkgANkaLEVCtWUoPy40STFVuN9rZbpr7fgKAvqggAFUq7UXCAVOXfwduzVI6N/UDAfRHQABqZfUieCSvbnTdsQD6osUIqE4ZLZ05M/CYF7ab5rZDAnRNBQGokcnJsMxuy0AvBASgRgICLLs4S0nrHdA5LUZAVWYpXYiId5wVONKD7aa5cNQLAG1RQQBqo3oAxzuvigB0TUAAauPmB07mdwTolBYjoBrai+DUnrd5GtAVFQSgJtqL4HT8rgCdUUEAqjFLKY+InndG4InubTfNjsMEdEFAAKowSynf7HzF2YBT295umocOF9A2LUZALUy8hNVoMwI6ISAAtXCzA6vZdbyALggIwMaV9iJzD2A1AgLQCQEBqME1ZwFWdr4sDQzQKgEBqIH2IliPKgLQOgEB2KhZSjkcbDkLsBYBAWidgABsmuoBrE9AAFpnHwRgo2YpPVRBgDOxHwLQKhUEYGNmKV0VDuDMVBGAVgkIwCZpL4KzExCAVgkIwEbMUjoXES86+nBmOw4h0CYBAdgU1QNoxyXHEWiTgABsioAALZmlpM0IaI2AAPROexG0TkAAWiMgAJtw1VGHVpmHALRGQAA2QUCAdqkgAK0REIBezVK6EBEXHXVo1dYsJVUEoBUCAtA3k5OhGwIC0AoBAeib9iLohjYjoBUCAtAb7UXQKQEBaIWAAPRJ9QC6c74sIQxwJgIC0CcBAbqligCcmYAA9KKssHLe0YZOCQjAmQkIQF9UD6B7VjICziw1TeMoAp2bpXRfBQG6t900yWEGzkIFAeic9iLozywlbUbAmQgIQB+0F0F/BATgTAQEoA92T4b+mIcAnImAAHTqv0npZ7QXQa9UEIAzERCATr0f8XccYejVVpn3A7AWAQHoTErp3EciPu4IQ+8EBGBtAgLQpct/EvGMIwy902YErE1AALp0zdGFjRAQgLUJCEAn0qO12C9+VwUBNuH8LKVzjjywDgEB6MoHex/8asRHHWHYCFUEYC0CAtC69Gjk8kr+9345Ir7zwWJGQM8EBGAtAgLQhcd2Tv61iG86ytA7KxkBa0lN0zhyQKtSSvcXN0fL65zedYihd9tNkxx1YFUqCECryuTkx3ZOfjcifiXi64409Gv26PcRYCUCAtC2q0f9+/6+ycqwCQICsDIBAWjN4uTkw3IV4Y2I/aUXgC4JCMDKBASgTUdWD+b2IrYeCgnQJxOVgZUJCECbTtw5OSeDvx2xtfQC0JWtWUpCArASAQFoxVGTk4/yZa1G0DdtRsBKBASgLSe2Fy16LWLrtyLeW3oB6IIKArAS+yAAZ1YmJ89W+ffkPqOvROyf03IEXXuw3TQXHGXgtAQE4IkOraV+oTzmzv1vEf/ufxrxV1Y9kp+IiC9FvP90xLNLLwJten67ae47osBpPOUowTTNHo3659aDcwstCPP/n1067YH58orVg7mvRsTPRjQ3l14BWpZ/twUE4FRUEGDEZinNR/t3F4JA/vNim5/6+TjbrOPPRrz/hioCdOmN7aY5cZUxgDkVBBiBhWrA/HFhlQrAWfxmxNf2Iz52ln/H5yOe3Yr49i9EPLP0ItAGKxkBpyYgwACVdc13FwJBqxWBVXw+4rk2/j2fi3jm34n4xqcjPrL0InBWG/uOAIZHixEMQGkVulxCwW5UtPJPTifvLj27vptCAnTlhe2mue3oAk+iggCVmqU0DwSXT7MB2SZ8M2L2bsR2m//pKxEfERKgE/n7REAAnkhAgIqUUDB/VL8/wP8Z8UfRckAIIQG6Yh4CcCoCAmxYmU9wtTwGtWnY70Q8vfRkS3JIeDVi/2UbqUFb7KgMnIo5CLAhs5TmoaCX1Ya68NOP9kDolCVQoVWf3G6auw4pcBIVBOhRWY40h4Jrtc4rWMVZ9j44rc8/CgdCArQjtxkJCMCJBAToQQkG18pjNC0zX116phs5JOQ7mi9FvP+0oABnoc0IeKIPOUTQrdJKlO9vXx1TOOhbDiN/NeLZh/0ULmCsTFQGnsgcBOhImXy8N+Q5Bif5TsT7P7qB0fycsH494hsfs8IRrOv57aa57+gBx1FBgA7MUroeEV8ZazjIfi/iD5ee7MH+oy1hP/JLEd/YxH8fRkCbEXAiAQFalKsGs5Tm7UR0KC+D+vMR33aMYWXajIATCQjQkjLX4PajAe7x+/GIH9n0h/xcxDN5qdU/FhRgFQICcCJzEKAFs5RuPBrUnpZaJgGYlwCr2W6a5JABx1FBgDPIy5dONRxERUsyzecl/NOI95ZeBJbMUlJFAI4lIMCayt4Gt6caDrJPLD2zWX8v4rkrEd/KKyxV9tagNgICcCwBAdawEA4mMd/gOD8RMTvmpY35pYgP/2TEs7+lmgAnERCAYwkIsJ69qYeD7Kci/mjpyQq8GxH/YcRzb9hUDY5jqVPgWCYpw4pmKeVw8LLjtrnN0laR26Deitg/ZxdrOOyT201zd+lZYPJUEGAFs5QuCwff93TEs7XNQzjsq/kuKGLLBGZ43K9F/BdLTwKTFwICnN4spQsRccMhe9zPDuDGe79MYM57JjzUdgQf+MGIf92RAI4iIMDp3ahoZc9q/HTEDwzlvX5ZNQEO/GsRH3U0gKMICHAKZZfkS47Vsh+O2P7rS8/WSzUBHvl2xDPpUWUU4DECAjxBWdJ07+S/NW1/P+LrQzsAqglM3Y9H/IjlToGjCAjwZNe0Fp3sL0Z89OMn/o06zasJuTT0+4ICE/P0oxXIBARgiYAAJyjVg2vH/w3m/sEAqwhzX320HOpzPx/xbbswMzECArBEQICTXVU9OJ2fGmgVYdHnIp75CxHP/sqAww6s6Hx6NBACcEBAgJOpHqxgDP38ue3ob0V89Ke1HTEdqgjAYwQEOMYspXzRPH/0qxzlL0c896kjnh+iL5e2o5cj3v/jDxZ8gXH53YgH5QMJCMBjBAQ43tVjX+FY/2RkS4d+PuLZfzPimTcsicp4CQjAYwQEOJ6L5hrORWy9OrKb6fxhXovY2okI8xMYi298/x7gonkIwCIBAY4wS2lHe9H6Xo7Y+sRQ3/wJ3i3zE/KyqP9SUGDg/kXE9xY+wY7zCcwJCHA01YMz+h9GPME3L4v675eJzIICQ/XPHx8E8Z0HHBAQ4Ggulmf0YxHPja3V6LAvl6BwJeJbD81RYGC++vjb9Z0HHEhN0zgacMgspftajNrx0+VGego+G/H+axHfOWfvDCr3zYjZhYjtxXfZNE1y3oBQQYBjCQct+Z8ivj2Vu+W84tGfi9jKS6OqKFCzL0b86eG3lx4t7QwgIMBhMxfJVv1gxDO/NLENxxaDgs3WqNEvRjx3xNvy3Qd8QEAAOpc3ULv5waqK05KDQt5szWRmapKrW189+v0ICMAHBARYZrm/Dnw64iO5R390H+wUvryw6tFvRnyt+jfMqL0a8fRRn++zET85S+n2LCWbRMLECQiwzIZBHXkj4tlPR3xrlB/uFHJQ+I8jPjbfcO07Ew1MbE6uHuTK1lFv4M6j5/M2H2/mhRoEBZguAQHo1S9GpDFuoraK+YZrfyHi2Tci9vOKMsN59wzZcdWDKD+XC6H1fAkKD2cpXZ/ZaRkmRUAAevV0xLNfinh/6iEhy8scvRaxlZebzBOazVOgS78V8d5x1YO5B8tzhbYe5Yq4LyjAdAgIQO9ySPhfJrT86WnkG7c8T0H7EV34k4hv/a2jVy56zNsR31168hFBASZEQAA2Ii9/+usR3xASHrfYfmSZVNryX0akd0/x7/rnT94DZh4U7pqjAOMlIAAb87GIjwgJR9tfWCY1zxr9pxHvqSqwjl+K+MaTWovmjln+9CjnFyYzWx4VRkZAADZKSHiyfNP29yKe+9FSVbBUKqeVw8GViI+c9u8fmqh8GjkovF2WR73gxMA4CAiw7P7SM3RqHhI+7jA/UR4JzkulPh8RvxAx04LEcVYNB3NHTFQ+jVzoemeW0p75CTB8AgIsExA2IIeE37C60anlFqS9iO3cgrTzaI8Jy6VyYN1wECdPVD6Nl8tE5svOBgyXgADLHi49Qy8sgbqedxeWS53PVxAWpiuHxXXDQZxuovKT5I7BL2g7guFKTdM4fXDILCW/GBuUe6B/NqL5pYgPT/YgtCAHrf8oYvZ3Iv70x06xxCXD9scR3/7PI7531t+b3Op3d+nZteVi1/Xtptnz4wXDISDAEWYp5evjxeVX6FOekHva1Vc4Wb7p+08iZj8V8Uc/8UFHF2NyL+Lh5Yhz+y19pj+IeP/pdn/37kTE1e2m0cIJA6DFCI7W4gAa63oj4tmb602Y5JB3y5yF+QTnz0bElyK+phVp2B4+aif61gsthoPs9yL+cOnJs7lU9k64NvqTAiMgIMDRBIRKfDriI1+MeM8yqO3JN5K/HBE/E/Gx+byFvCKS5VOHI7fh5bkGn4zY6qIV7zcinlp68uzyr/Hrs5RuWekI6qbFCI4wSykvDPOV5VfYlLyc59+MeG6FjZxY06ci4q9FfP2vRnz334j4McexHjkY/OOI7+xFbLVZMTjsWsTs5yO2l15oT377l7eb5vZQjj1MiYAAx8g7hMbZV/OgRSYvb4bAsHm5lei/jfjBz0c802UwmMvn/ItLz3bite2muV7b8YapExDgGLOUbkTElaNfZZNya8Vrj9oV2ID56kj/XsQffSLi6R+N+Kjz0L4ciO9EvPffRXzsyz3/t1teyehJ7pRqgiWmoRICAhyjbPTzhaNfZdN+K+K9T0c818doKifbKqEhVxl+MuI7fz7ih3642/aU0ZqHgn8S8bFf3vCH7Hl1gAclJJj/BRUQEOAEs5QehpHqauV13/+ziGf6Hl3ldHKbyk9EzP58xLd+MuK7Px7xIy0vnTkKvxPx+1+KeOpXIz5a08/yBpYPy3n/2nbT3Fh6BeiVgAAn0GY0DFqOhmNebXg+4v2/FPGHL0Q89WcjnppKm1JeVva3I/7oNyKeri0QHLbB9YXNS4ANExDgBNqMhuNrEd/IS6K+O/UDMWDz8JD//A8iHvxwxFO58pA/0dCqDzkIvBfxzbxc6G9HfPg3I7a/WobIh2LDG5Dc3G6aq0vPAr0QEOAJrGY0HH8S8a3/OuJDn4t4ZurHYqzmISIWgsT8o/7bER/6SMT3Fj/6n2vxd3d+0z////nm/5sR3/1uxDO/Wiog75bHGFSwQ6HJy7AhAgI8Qdn58/WT/xY1+XLEe581gRnWlsPXO3UcvnsRsSskQL/spAxPdmNgnQGT96mI5/7fiG9/OuJbUz8WsI5P1HPULkbEbTsvQ78EBHiCMnJ16+S/RW1+MOKZmxEf/mLEex93dmAllc34FxKgZwICnI4VNQYqVxP+r4hv/d2Ib0/9WMBpLc7tqISQAD0SEOAUtpsmT1S+6VgN05+J+PAvRDzzv0d8vaLWCahWXn62wvcmJEBPTFKGU5qldKGeeXucRd43YS9iy8QSONofRLxf8bKyJi5Dx1QQ4JRKFeENx2v4Xo7Y+krEvknMsCxX2Srfc0IlATomIMBqrlvRaBzORWzlScy/bhIzPOZnIr4+gCNy0eIR0B0BAVZQStp7jtl4/OWI5+5GxD+KeK+ylVtgI/7mcDYavDRL6cbSs8CZmYMAa7C78jh9J+L9fxzxndeqW+UR+vGJsn3xwLyy3TQGbqBFKgiwnquO2/jkvus8P+F3I/Y/G/H+1I8H0/Nzw2gvOuz1WUqXl54F1qaCAGsqpe0rjt94/cuIr/9cxEe/PPUDwSRsDXuZtv2ystHdpVeAlakgwPqumbA8bn8x4qNfjIi8f8Knpn4wGL1rw/4+y/nmhpWNoB0CAqypTFjWajQBggJj9/Gy/O/AP+ZFi0hAOwQEOIPtprllh+XpEBQYq89FvDeSj3bFfAQ4O3MQ4IxKSfuuVY2mxxwFxiCH3S+O60zmVqmdsrklsAYVBDij0mpkxGqCVBQYutxT9E/GN5fqg/kIS88CpyYgQAvKyhmvOJbTNA8KX414z/KoDMnnI947N859P/ImateWngVORYsRtGiWUp6T8KJjOm0PI/b/UcT33ozYtswVtfq7Ed/+heHsmrwOrUawJgEBWlTmI9wuq2kwcXln5n8W8a/+YcRz7079YFCVXOl6I+LZCZyVt7abRgsorEhAgJbNUtopIWGMZXvW9JsRX/uFiI+Z0MymfSIifi3iW38m4sMTORkvbDfN7aVngWMJCNCBsszeFxxbDtN+xCblcPCliPefnkb1YO7BdtNcWHoWOJZJytCBsj+CScssyRNCfz5i+52I+B8jvmb1I/oy0XCQnZ+lZFNLWIEKAnRollJeau+KY8xJVBXoWp5z8A8jmgm1FR2migArEBCgY7OUcu/rJceZ08hzFd6I+NgvO1q05NWI/ZfNicpe226a60vPAksEBOiYlY1Yx3wFpF+MeO6rjiBr2Cr7HHwq4jnH7wOqCHBKAgL0QEjgLL4ZMftixJ9aLpXT+lTZIXmkm6CdxUvbTWOXZXgCAQF6YvlT2vD7Ee/99xE/8D9HbAsLHJa/XK5pKTqJKgKcgoAAPRISaNMfRHz91yJ+QBsSoWqwCvsiwBMICNAzIYEu5DakX4n41i9H/JgJztPy8Yj4nLkGq7C7MjyBgAAbICTQpTzB+f+OeO/zEc99MeJZS6eOUw4G/yDi6z8V8dGpH4s1PL/dNPcH966hJwICbIiQQF/mrUj/LOK5LzvqgycYtOKV7abZG8HngE4ICLBBQgKbkPda+JWIH/pfI7bNXRiOvBPyzwkGbbm33TQ74/go0D4BATZMSGCT5u1IAkOd8pfCT0e8/19F/KsfM8egbdqM4BgCAlRASKAmvxPx+1+KeOpXIz6aA4M5DP376xHxtyO+diniuacjnp3a5++JNiM4hoAAlZillNfmvmUzNWqT5zB8NeI7/0fED/1mxLZ5DN0QCnpnNSM4hoAAFbHjMkNxODSoNKwuTza+FPH+ZyPe+7eEgo3Ybpo0wY8NTyQgQGWEBIYqz2f4vYg//I2Ip3474sOCw+PyJOOdiPf/RsR7fyXih344YnvpL9E3m6bBEQQEqNQspRsRccX5YQx+N+LBNyI+9C8ivvf/RPzIOxHPvhsR74707M7DwF+K+MMXIp46H/ERFYIqvbbdNNenfhDgMAEBKjZLKU+ge9k5YszyLtDvRXxzHiC+G/HMr5alPHP1odaVlT5RVhX4iYjZj0Z8MweBPxvx1I9ahnRIzEOAIwgIULlZSlcj4k3niambtzDND8P/F/GhdyK+t3hY5tWJsx6qvxbx9acivj3///nm/wcivvvhiGcEgFGxHwIcQUCAAZiltFtWOLIMKkCLTFSGZR9aegaoTplEl0PCPWcHoD1lHxpggYAAA7HdNHdLSLjjnAG05pxDCY8TEGBAtpvm4XbT5JDwhvMG0IoLDiM8TkCAAdpummsR8ZIl5gHOTECAQwQEGKjtprlhXgIA0DYBAQZsYV7CW84jANAGAQEGrsxLyBv9vOJcAgBnJSDASGw3Td51+ZMR8cA5BQDWJSDAiJSWox0tRwDAugQEGBktRwDAWQgIMFILLUdWOQIATk1AgBFbWOXIxmoAR3t45LMwYQICjFxpOcobq71gYzWAJXeXnoGJExBgIrab5nbZMdQEZgDgWAICTMjCBObPqCYAfOC+wwCPS03TLD0JjN8spXMRcSMiXnS6ganabprk5MPjVBBgolQTAKzyBkcREGDitpvmlrkJwERZwQiOICAAqgnAVN125mGZgAAcWKgm2DcBmAJLnMIRBATgMYf2TdCfC4yZgABHsIoRcKJZStcjIgeGrZP+HsDA7G83zTknDZapIAAn2m6aHBB2TGIGRsb8AziGgAA80XbT3C+TmHPb0QNHDBgBAQGOISAAp7bdNLe3myZPYn7NakfAwN1yAuFo5iAAa5mllIPCnp2YgQF6UAY7gCOoIABrOdR2ZLUjYEhUD+AEAgJwJqXtKE9ifknbETAQN5woOJ4WI6A1s5TOlSVRLYsK1Ep7ETyBCgLQmrLJ2nxZ1JuOLFAh7UXwBCoIQGdmKe2UicyXHGWgEs/nOVROBhxPBQHozHbT3N1uml0TmYFK3BEO4MkEBKBzhyYy22gN2JQ9Rx6eTIsR0LtZSlcjIs9VOO/oAz0xORlOSQUB6N1209ywIzPQs+sOOJyOCgKwUZZGBXqgegArUEEANmphaVQVBaArqgewAhUEoCoqCkDLVA9gRQICUCVBAWjJC3klNQcTTk9AAKpn1SNgTW9tN81lBw9WIyAAgyEoACvI85l2bIwGqzNJGRiMheVR84Zrd5w54ATXhQNYjwoCMFizlHZLReGSswgsuLPdNLsOCKxHQAAGb5bShRIUrjibMHlai+CMBARgNKx8BETEZ7ab5pYDAesTEIBRMqEZJumN7aa55tTD2QgIwKiVeQr5huFFZxpGzbwDaImAAExCmaeQg8JV7UcwOvciYne7aR46tXB2AgIwKWWewuUSFi46+zB4+yUc3HUqoR0CAjBZs5R2SlCw+hEMk3AAHRAQgMkrVYWrJSyY1AzDIBxARwQEgAVlUvNVVQWomnAAHRIQAI5grgJUSziAjgkIAE9Q5ipctQISbJxwAD0QEABWMEvpcgkK9lWAfj3IVT3hALonIACsYWFi81UtSNA5+xxAjwQEgDNa2ITtslWQoHU38++XcAD9ERAAWrSwt8Jl8xXgzF7Zbpo9hxH6JSAAdKTMV7gsLMDKzDeADRIQAHogLMCpaSmCDRMQAHomLMCR8hKmV7eb5tZRLwL9ERAANmghLOya4MyEvRER11UNoA4CAkAlFjZksxoSU3GvtBPddsahHgICQIXK0qnz6sIl54iR2S8VAysUQYUEBIDKlU3Z5m1I5i0wZDkY5FCwp50I6iUgAAxMaUWaVxfs4sxQ3CxVg/vOGNRNQAAYsFJd2DXRmYoJBjAwAgLAiCzMXdgtD+1IbIJWIhgwAQFgxEo70q7JzvQk74B8PSJuCQYwXAICwITMUppXFnZUGGhRbiO6YblSGAcBAWDCFioM89BgDgOnda+0EakWwMgICAAcKHMYdhYCg7YkFuVQcKOEApOOYaQEBABOVNqSdhYelladFqEAJkZAAGAlZWnVxSrDBaFhVPIKRLci4rb2IZgmAQGAVixUGi5oTxqU/RIGPnhsN83dqR8QmDoBAYDOlDkNF0q1Yf6/BYfNelDCwF2BADiKgABA7xaCQ640zHeDPqdVqXV5/sD9eRjIf2oZAp5EQACgKkeEh8U/7dtwtDsR8bAEgfy4rzIArEtAAGBQFgLEPDTEQogYaxXiTvnz7kIQeKgiAHRBQABglBZWW5rbXfjfh1+LnsLFnUP/f36zP3e/PMLNP7ApAgIArGChgrHIzTwwGgICAABw4EMOBQAAMCcgAAAABwQEAADggIAAAAAcEBAAAIADAgIAAHBAQAAAAFgH6pEAAB3LSURBVA4ICAAAwAEBAQAAOCAgAAAABwQEAADggIAAAAAcEBAAAIADAgIAAHBAQAAAAA4ICAAAwAEBAQAAOCAgAAAABwQEAADggIAAAAAcEBAAAIADAgIAAHBAQAAAAA4ICAAAwAEBAQAAOCAgAAAABwQEAADggIAAAAAcEBAAAIADAgIAAHBAQAAAAA4ICAAAwAEBAQAAOCAgAAAABwQEAADggIAAAAAcEBAAAIADAgIAAHBAQAAAAA4ICAAAwAEBAQAAOCAgAAAABwQEAADggIAAAAAcEBAAAIADAgIAAHBAQAAAAA4ICAAAwAEBAQAAOCAgAAAABwQEAADgwFMOBcC4pJQuRMRuROzkR9M0u04xAKclIAAMWErpXAkCuwuhYMs5BWBdAgLAgKSUdhaCQP7zvPMHQJsEBIBKlVahxUBwybkCoGsCAkAFDrUKzf/UKgRA7wQEgA0orUKLgeCi8wBADQQEgI4ttArNA4FWIQCq9UFASCnNV79gdQ8j4u78n2qa5rZjCJTv1WslFJhI3IIar1VN01xfenLEUkpXI+JCRZ/wftM0N5aehQFaGEy62zTN/U1+gnkFIX/hvrr0KitLKc3/kTsL4eFuDScb6FX+Xn3RIW9VjdeqSQWEiLhaWQUsX2sFBAbnCfPOXsjhd5OfSYtRd+ZfoAc3CCmlBxFxe/4QGAAAxm9o884EhH7lNoMr5ZF/WO6VsLAnLAAADN8Y5p0JCJt1sTxeLmEhl0lvNE3zcMoHBQBgKMr8qMXqwODnnQkI9chB4fXcz5pSupX/VFUAAKjHQqvQPBCMcolqAaE+W/M2pJTSTUEBAKB/hyYSz6sDk9jAUkCo22JQuKb1CACgGwutQvNQMNklqgWEYchB4XJKKVcT9qZ+MAAAOvC2g/rIh5aeoVa5pPV6Sulu6X8DAIDWCQjDkyfDfCWldG3qBwIAgPYJCMOVqwm3ygQaAABohYAwbHmX5ttajgAAaIuAMHwXhQQAANoiIIzDlpAAAEAbBITx2CqTl3enfiAAAFifgDA+t1QSAABYl4AwPtqNAABYm4AwTlulkmAJVAAAViIgjNf5HBKmfhAAAFiNgDBul1JK16d+EAAAOD0BYfxeNR8BAIDTEhCmQasRAACnIiBMw3mtRgAAnIaAMB251ejC1A8CAAAnExCmRRUBAIATCQjTckUVAQCAkwgI06OKAADAsQSE6VFFAADgWALCNF2b+gEAAOBoAsI0XZ36AQAA4GhPHflsHe5U+r5ye875pWeHZSuldLVpmhsD/xwAALSs2oDQNM3u0pMVSSntRMRuebxY83s9xuWIEBAAAHiMFqM1NU1zt2mavaZp8o32dkS8EhEPBvQRhhhqAADoWM0tRoPRNM3DiNjLj5TS9TIJeKv2959Sutw0za2lF0akrNh0eNWmeXUqn7e7h167W84nAFQhpbTYVbFOh8Xi9c51jicSEFrWNM31lNKt0r5zsfK3m79kBh8QUkrnImLe8jUPBDvrhrSUUv7jXvlCvR0R98sX6uEwQQXKhfPCoUd27oTfwf1D4fD2wp/3m6a5v/RPAHSktC3Pr12L32edzHks17kH5frmOscSAaED+Res3LTcPuEGpQZVz/M4TgkEl8v73+noGM//nZfmT6SU9ss5/eDhi7R/h+b+7Jzh4rm1eG4X/ver8f2L550SIubn24gbcGbl/mBn4bGp+4Tz5bF4nYvy3Ze/927VeJ0rx2+Q9y8ruHqoatSnfL27LSB0JN9MDCAk1F7hOFBahS6XJVo39b63ytyND+ZvpJQelArMDWGhG4fC4OWeW/culcfL8ei93CuVQeEQOJXyHba78BjCdXf+3fdqGRi7VcJCLR0Hu/PBnBG7suGPJiB0aSEk3K91TkJ+fzkpLr1QgYWbw6uHRntrcb7cPL5cwsJeCQtGms8oL8Nbzn1Nk+nzhf31+H443CsXTe1IwIE8v29ggeAkW+Vm9UoJC3mQZM/33vhZxahj5WbxcsVvcWfpmQ3L1YKU0l4JVm9WGg4OO19uHmcppRul4sEKynnPx+5hOe81r7Q1P9/v5DlHGywFAxtWvruulu+CJiK+UAaPhh4ODtsqnyt/7932vTduAkIPygh9rRu/nVt6ZkPmN4j5y6d8CVW/EtQxrpQvUEHhFPJFJl9synm/MsDznoPM2yml+6XyAYxcuV5dSyndLd9dtQ9qtO1S+d4TFEZKQOjP9Urf18Z/sQ8Fg0333bVpMShUE8RqsRAM3h5IlehJclXhTUEBxil/jx8KBa+PsEqwqsWgYEBsRASEnpQqwr1JfNhTKl+210cYDA7Lny3fNF5bemWCSiAcUzA47HwZTXS+YQTynIKyfPlMKDjWpTIgVutgKCsSEPp1o8L3tJE5CGUS190JrEQwl9tmXs8jT2WpzskpgXCvBMIxBoPDhtoiB5M3nwtX5kR9YWLtQ2fxarnOqSYMnIDQrxqXRuz1JqbcJN4qX7idbABTuTzy9JWpVRNKj+rd+ZKhADUq1YLbI5gLt0n5One3DAQyUAJCj2pdTrQv5cvivpGYD7xeejZHPTdhoWrw9kQDIVC5hbkF98vg1RQqnF3LweoL5mMNl4DQvwdT+8Dx6At4r3zxGo35vktllGWULUflc91WNQBqtbCk9usGMTrxZlmEhIEREPo3qc1FysiMm8Tj5QvS7bGNspTPU/Mu4gBRlvo2cNWtK0LC8AgIdGZhBFm59mRbZZRlFCGhjMi96aILDIBVd/pxxQpHwyIg9G8S6+EvhAMjyKc36JBQqkU3VIuAoWiaJlf1bzphvXjVnIThEBD6N/ob5oVwYAR5dYMMCWWy9e2R72cBjJOR7f7sTXWp76EREHpU6brA+0vPnEFZqUg4OJtBhYSFcKBaBAyOKkKv8r3BrbGv4DcGAkK/dit8T63tzVBGBW4IB60YREgQDoCRUEXoz3nHu34CQr9qDAit0FbUiTfLBmNVEg6AsVBF6N3LNV/fEBB6U26mauzPPvPmbaV1Sjjoxq2K+zX3hANgRIxq92tvSh92aASE/lyr9H09XHpmBSX43BIOOpOP643a+jXLUqYmJAOjoYrQu4tWNaqXgNCDcnNXa0A46xyEG0aRO3exppGW8oVuKVNgjFQR+uV4V+qpqR+AnlQ7cbdpmrVbjFJKOfS8uPQCXcibzNxqmubWJo9uaXdSFoYipdQ4FuORqwgppTs2+OzN+Tzo1DSNnZYro4LQscpvou8sPXNK5Ubx9b7f8MRttNVIOxkwEUa1+1Vrh8WkCQgdKq0YNd9Er1U9KDeK0n7/tjZ83K+X5ekARqtU1tceQGNlF22eVh8BoSMppXwz9Wblb3Pd9qJr5h1szItlM7pelf+meQfAVKgi9Mtk5coICC3LS36mlPKN96uVv9X9deYflJRf+2cbu70+W43Kf8u8A2AyVBF61/vAFyczSbklCysVXRtIj/a6k12HeqN40hf90CajnS8/Z32NcGktAqYof/e97cz3Ik9W3mma5qwrK9ISAeEMSijYLcl3aGvCr9zLXuZUDOFmer8EoDwCdLusbX2istnb7sL5rD3kXct7ETRNc6Z9LJ6kHBetRcDk5CrChlY0ehAR98s17OHCcuT3D1/Pyn3IvH//QnnslMfQBnYut7D0Oi2pNiBUugV3/oU7t/ALONQ+/AdrLm9ae09m/iLfW2cp0PKle2MenEoYqjkQbZXz0fXqD2OYjH5v4UJ78HM//x0oIehCeXp+sR367zjQjq6rCPvzwax8c7zqtbkMEh35z5TvtsvlWjaE77Ia7/smKzVNM59Qq698Ol5pmmalVqHKf0ZyMLh+lj0djlOC6l7FX67bXVURymcfYnl9XkFqZd+Ichwul4vXIAND0zRp6ckBcq3iCHeapun0xrLMK2xzsOjOvMrdV0tNmT94rfZuh9N8Vx0a1GlbLde8VzZYTXlUqcoBoSTkxmMSj3wzeS6f99M+yqjqwwqPT35P11b5LOs+yhdrjcfgeoef+fYR/72aH/n9Xj7qs7R4TC6UwFjjz8Kxj6M+yxAfrlUeRzxu9/D9v3vEf3eVx8NSjb286vW3o89yv+KfpZ2j3nePx+eo97SJx+5R76/Ph1WMpmedvvUae/LvlV+gXiZNl//Obvnv1uRaFysalVHzoUzezqNxL+RRxK53ms6jKk3T5FCaj/lLpVcYGLFSnV71dz1XMm9GxGfy90XTNHm34Ftdzxt7kvJZdsp7q5H9ECohIEzL/pqrENU292AeDnotv5X/Xr5xfmvpxc3Z6mh5uCHsbPmgXHx3u2gve5KmaW40TXOhBIX9J/x1YNhOex18q3wnXJiHgqW/sWE5pOT3VmlI6Kp1iBUJCNOycvWgbJBV00oI83CwkVGY8sV6ubIv1lYDXOnvfHHphbrcLKXojV98c1AoF7U3ll4ERqH8nh9XRcjPvxYRz+frQxk82Gil4DRKSKitKm6iciUEhOnIKxetcyNZ0+6GGw0Hi8oXay2VhPMtb1Nfc/Ugj9S/VEbmqrkAl+CYj9sLqgkwWoevoTdLe2OuFlw/zZLaFbrsO4ujCAjTsfKNfmUjyfkLrKqbwnJMaxl9afOmvtYt7/dLQKx26dXS6nShwlE54IzKd8+dhWrB1U20N7aphJqaNkA1B6ESAsI0vLHml1hNW59frW2HxRJWahl9aeVclZayGjeJ29/EvJN1lGrCTmVzVYAWlDlPQ60WHKemgFD7JqWTISCM34MjyqKnVctI8p0aJ3rF90dfapjEvVVu7s+qxurBYMLBIXYEBapXBrsMaPAYAWH8Lq/TllPai2rZFKrWlpcPlCVQ7yy90L82AkKNk5MvDzAcAAxJlYNwbI6AMG4vneHGqpb2opsDKeXWEGLOtPpDSxWItr029B5fgAEwCMNjBITxunnGyZy13CzWtgfDkUqI2fTSp2ddzai2gHBnzZW3AFiBKi2HCQjjdLMsw3kWNeyi+9bAJoLVcDN7lipCbetPV91aBjAyx+3zwAQJCONz76xLXqaUarlRrHY5y6OUMLPpuQhrnbsy56SmDfFeG9kqIQC1853LAQFhXNraSKyGgLBf68pFT7DpULPuuatp7en9ypbdA4BJecrpHo3c/36tpY3EarhZzMt2NkvPcprjdmGN0feaAsJeZRviAcCkCAjj0Macg0V2Mhy2nTVKxTXNPxhUaxlAW0q754XT/uus8kZXBIThe+mMqxUdpaZedFa3s8aa1rWEwqFNTAc4lZTSufJdmx/nFgZmdtbdQTiltPh/HywMDt1e+POhVYpYlYAwXA+62ECqognKrG+dc1jL9vY26wFGoVxP54+1Q8AKzi8M8M1XInw1vh8k7pUAcbcEh7vaOTmOgDBMb+QlNTv6xT639AxDs9I5rCwUCgjAIJX2oMslENS4K/3F8nhxITjcWwgMrv8cEBCGJVcNrnbcc2j+wfBdHOgnuGc0CxiS0jZ0uSwvPsTv3nlouLL0CpMmIAzDfNlHq7twKiuuZFRLBcFkO2AQSrXguhtrxkpAqN/N0k7U18RNFYRxuDDATW9MTgaqllLaKQN2l5wpxkxAqNN+6cXuMxjM6UFkU6yyAVSptBLtqRgwFXZSrtOtvK+B5R45g1XahmqpGmmfA6qTUrpWKpzCAZOhglCnKymlPesW05MqqkZ+3hmo1yZ24q5OZa+cUjW4pZ2IKRIQ6rVX2e62ABzSNM31pSdHrCyLPPqAUOYa3K5ojxjolRajel2yaRkA9CuldFU4YOoEhLrdmPoBAIC+lHDwpnDA1NXcYtRnX+dupT2G5/OXVdM0ggKrujC0I5b7fe3zAWzKQjiAyas2IPTZ11k2PHln6YU6XE8p3XLjxIpWCQi3KwnIOzZLAzahzDkQDqDQYvQojNwvG5LV6HzZwh3Gzh4cQO/KakUGJ2CBgPB9Na9Eca18gfXB3gtsil28gU24Zc4BPE5AKCqvImyVZU/7ICBMTy3n3KpdQK/KJmj2OYBDBITH5SrC/tKzdbhS5kp0zVyH6aklILhIA70plflJ7WMBpyUgLChVhL5G6tfRx3uzm+30VFM1SildXnoSoBvXtBbB0QSEZXsVVxFe7GHzNC1GE1OCcS0EBKBzpXpgARA4hoBwSFlOtOYqQqfl0MpuFunPvUqO9eUeJ+QD06V6ACcQEI5WcxXhUtnMpUt3NvsR2YBaWsu2VBGAHnR9He3CvXJ9zo8HfkjoUs07KW9MriKklHJIeLXSt5irCF3urny3kgmjN5umGeKX+BDlc36lkvfd9c83MGFlU7TzFR6B/bIfw93y58OmaU49eFM+17ny2Fn4c0e1hFUJCMfbq7gEeT4vzdY0TVetULWMJueVm65re+pFTZsE5Z/vq03TCAlAF2oaeNov+zDsrRIGjnLon7+1+FdK6+bOocfFI/418AEtRscYwlyEDnu1a7pZtARdD856YerAnrkIQEdq2XPltYi4kCvlXX8H53uapmlu54HF8t/LAWE7Il5Z+stMXggIJ2ua5nrFfX5bXa3AUEbsa/ncV0rZlO69VdEx3hIOgbaVgYdNj5znuQSfzPcYZTByI8p/29LmHElAeLKab1Je7XDztFtLz2xOzZWcMampcpS9bF8EoGWbHnDK4WC3wqotPEZAeILSB13zagFdBZiabhbzyk1Gk7tXUyicu6GCBLRok+1F+yUcbKxqwGBsvA1OQDidmm9OO2nBaZrmVmVLvb7qRrFbpbWslv0Q5rZKSDAfAWjDJr9LrgkHDIWAcAoDqCJ01YJT24jy7Q5bqnikxpWDLpZzP7SQINBCfTb1e7lvZTZWsPF7HQHh9GquIuQWnC7KUbV9meXR5FtGkztVY5tRDC0kpJTy786LSy8AU1Xrdyt12vgAk4BwSgOoIrR+M5+XRKvwMw/uRjHvWbH0QqVKm1GtO2nnc3+35laz/HOZUqpp0zmgDvbzYRUXN90xISCspuZdfT/YXGrp2bOrcQWhodwo3i43iq+XEeWhqPm9ni8BsbrfxbLi0n2bD0HVNnXTZdUiVrXRVfwEhBWUEfVaR1ejo83TblQ2WXlufqNY3TKYJbjkn5VLC09fKdWE6isfpVpW4zmfy61mb6aUqmg3y6M8+b1ExBcq3Xkd+L7zGzoW5s+xqmubvMYJCKureS7C+bY3TysrLtQ6opxvxr5Q0413aSe6fcwo8pUBtUcNYe+J3ON/Py+Bu4ljWqpE18vIoPkGMAybWqnN3DlWdX6T95wCwooGUEXoInHWfrN4pdwobqztJE8SL73nrz9hFPniQFZj2qu8ijCXj/WrfQaFUjG4UdqJXn3C+QbqsqllRm36yDpe3tS9jYCwnpqrCFtt39CXias3l16oy7ztpNegUIJBDo1vH1M1OEr1cyhK5WhIO1jPg8KsVJRavRjnc5WrQyUEvlNCqWAAnNZFe/kMQo0DwJ231JZr3PXF+ycBYQ0DqCJc6WCE+tpARpTPLwSF612M1JcR5HyzeL8Eg0tLf+nJtkolYeO7JZ5gKFWEw66U1rMmh7fyc7B72p+Fcn53yz93q5znr5TqkAnIMGyb3KhsSIMu1GXeUnvjrPcNpT128Rr3sFzjXl2cK/PU0j/JaV0vN4e12muzpJlHlFNKe+UHaAjOl/ead2C+V+YFfPBYdSfLcmO5U7Y+323xJjGHhLdTSi/VuIHOAM/5US6VxwefIaUUJfQcXlHknJt/mIRNzhnKexbl3ZRrCgo1D1Jtwv01B/36sFUGwK6Ua9md8n4Xl9C9Xf7cOTTvZf7/d05b/RYQ1pSrCCmlmxWvd/5iToil2tGKpmnm5adNrQKxrovl8XI8uklcvEE86vhcKI++bhpzxeNcZReNub2yvO/QzvlJtiq+AADd2vR+BHnZ64ebHhQq1/LrI/tub8OQ9qu4dMS1rLUBPQHhbK5XviHS9Q5GB65WXjk5jcUbxFpuFPNFY6dpmqrW9y9VhGtlCU+AoathP4I3S5vItVUr2mdRquFXRzjo0yb7VRTmIJzBACbvXmp7wm6pSLy19AJtqHKvhKZpbjnnwBg0TXO3krlVV/pYfa3Mqbpa9mp5p4wwCwfHs+N1ISCcXc0rGkVH7+/qQCevDkGteyUMZZI6wJMc1Vq6CYvLNH+w+tpZv/tLIMj/nr2FVdfetFfL6VQUIDdOi9EZ5SpC5XMRzrc9Kaq0nVweQatRreZ7JVwuVaqNKz/nV7UaASNwq7Ib5oPJp/HoJv9BGcmeB5nDE1HjUPvw/H+bW9WOfNwnH6gEhHZUPxchj0602etYJmm/NvAVbmo23ytht4xobFxuNao8DAOcxq0yql6r8+Xhhn8zJh8QQotROwYwF2GrtIi0Kq9qVPl+EENX414J+efo3tKzAANRBsvMq+I4OUBOnoDQntp7tF/tYtOwstfCg6Vnact8r4QqVjcqF1ZzUIChq27vGepQBn0nPxAmILSk3DjVvkti6xOWy+e+7Iaxc2+W5UY3rrQ8VbUcK8AqyupsBrc4zuQDpIDQrr3Kb5TzMpo7S8+eUblh3BUSOpf3SqjiS6tcXF9aegFgOGpfhZDNuTH1exoBoUUDqSJ08v5KSKhihHvkcsi7VcMyqGUn0DeWXgAYgPIdporAknI/N+m5CAJC+2qvIlzqatJr+bI1qty9F2vZK6FpmmuVT9AHOIl2SY4z6QqTgNCygVQROmtTERJ6kyect94uto6maa4KCcAQ5SW7rWjEUcpk5deOeGkSBIRu1F5FON/lqjglJHxy6v17HcqrK+yWC1sVSkjQbgQM0VWtRhyj9vu5zggIHShVhNpLU9e7bFFZmLjsS7ddb5VwUMXmaYtKu5HqETAoC6vxwWMWlvaeHAGhI03T7FV+c3y+60nF5SZ2x3rCrXmlaZrLbe6I3bZSPfqM6hEwJOV6ZYCDJWXVvslVyAWEbtVeRbjW9UTXfDPbNM2O9pMzyUHzkyV0Vq98me4KhsCQlAEO86lYUirkk7qmCQgdGsASalt9Taguv1xGlleXg9VOjS1FJ1loMXOxBQbDogucYFIDXwJC92qvIuR19S8sPduBMrKc/1t3+v6QA5SD5Qs5WNXcUnSSUj26KhgCQyIkcJRyLZ5MSBAQOjaQjVh6a10pN427bhpP9FqpGlSzStFZLATDKS0luF9+xoEBKiHBnAQeM6WQICD0o/YqwotdbZ52nIWbRnMTvi9XVp5vmub6UKsGxynB8HK5aR77ylY5CF0oP+PAQJUBvhcmMpj1wKqDp7MQEkZdZRIQelC+ZGpvq+k9xJSbxjw34fmJtx3dKe1Eu2VjltHKN81N01woVZKxXXTnbWFVrzQFnF6p5I69AvpGWXFw1NefNi200L401gApIPSn9irCpS43TztJvikubUcvTCwo5M/6UgkGo2gnOq1cJSkX3TEEhfz+X8vBZ2rnEabgUAV0TDeD86r1YOe6bVoZAN4ZY4AUEHpSbhxUEU6Qj9FCUBhz6W6xYnBj6dWJKBfdxaAwtPL2fnnfF8rnAEZsoTV26AMbk6la96EMcl4e2yCngNCv2m8izqeUOt087TRKULhaWo+GeON4lP1Sxn1+ihWDk8yDQmk9emkAIzH3SuXn3BjniwDHWxjYmO/vM6SgcHMhGLgGtezQIOfgKwoCQo+GUkXoevO00yqpfH7j+Jny5TakL+P98p4/U24mrxmtOVmuqJSRmBwOX6lopYgH5WYgb1i3M+XKD3BwfbpWKgqvVDyQ9aAMtOXBqauCQfdKUKjxOnacB+VeJQ/QHVzbUtM0kVLKafjVY/7BjWiaJtX0ftpSVgt6u/K3+VrNLRMppctlBYH85/mlv7BZ+YsgfwHftopNO0pgnZ/z3R7P+fxc3lh3o7qUUrP05AaM5fvUtWrzUkr5d+JSRW/pThm13biUUq4qXK3g2rTWd1ct53aMv1Nlv6nF69jW0l/qx4MyGT2f6/yzcfe4gcsPAgIMVfml2y3l3vznxR4/yn75BZv/ot3WbtK9cs53Fs75hRYuxg/mX5bz8+lcAutauDbNr09dXpvuLHx3uQ4NQAmTO+X61dZ1bG5+b/Kw/JkDwP1Vq0cCAqNTfvEuLPzyzXeKXmdkZN4S9vDQL5wbyMqUC/L8XOdzf1Kr3PyL8v5xoycAbSodBPPvqXPle2pu54hR5XvlmjN3vzwObvx8f41LqZgv/lw8qTp2d+FnpNX7EgEBAAB4JCL+fwRBcOn9x9KJAAAAAElFTkSuQmCC - mediatype: image/png - install: - spec: - clusterPermissions: - - rules: - - apiGroups: - - "" - resources: - - secrets - - pods - - pods/exec - - pods/log - - services - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - batch - resources: - - jobs - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - apps - resources: - - deployments - - daemonsets - - replicasets - - statefulsets - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - examplecnf.openshift.io - resources: - - trexconfigs - - trexconfigs/status - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - security.openshift.io - resourceNames: - - privileged - resources: - - securitycontextconstraints - verbs: - - use - - apiGroups: - - events.k8s.io - resources: - - events - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - examplecnf.openshift.io - resources: - - trexapps - - trexapps/status - - trexapps/finalizers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - k8s.cni.cncf.io - resources: - - network-attachment-definitions - verbs: - - get - - list - - watch - - apiGroups: - - security.openshift.io - resourceNames: - - privileged - resources: - - securitycontextconstraints - verbs: - - use - - apiGroups: - - examplecnf.openshift.io - resources: - - cnfappmacs - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - k8s.cni.cncf.io - resources: - - network-attachment-definitions - verbs: - - get - - list - - watch - serviceAccountName: trex-operator-controller-manager - deployments: - - name: trex-operator-controller-manager - spec: - replicas: 1 - selector: - matchLabels: - control-plane: controller-manager - strategy: {} - template: - metadata: - labels: - control-plane: controller-manager - example-cnf-type: trex-operator - spec: - containers: - - args: - - --enable-leader-election - - --leader-election-id=trex-operator - - --max-concurrent-reconciles=1 - image: quay.io/rh-nfv-int/trex-operator:v0.2.5 - imagePullPolicy: IfNotPresent - livenessProbe: - httpGet: - path: /healthz - port: 6789 - initialDelaySeconds: 15 - periodSeconds: 20 - name: manager - readinessProbe: - httpGet: - path: /readyz - port: 6789 - initialDelaySeconds: 5 - periodSeconds: 10 - resources: {} - serviceAccountName: trex-operator-controller-manager - terminationGracePeriodSeconds: 10 - permissions: - - rules: - - apiGroups: - - "" - resources: - - configmaps - verbs: - - get - - list - - watch - - create - - update - - patch - - delete - - apiGroups: - - "" - resources: - - events - verbs: - - create - - patch - serviceAccountName: trex-operator-controller-manager - strategy: deployment - installModes: - - supported: true - type: OwnNamespace - - supported: true - type: SingleNamespace - - supported: false - type: MultiNamespace - - supported: true - type: AllNamespaces - keywords: - - trex - - cnf - - nfv - links: - - name: Trex Operator - url: https://trex-operator.domain - maintainers: - - email: skramaja@redhat.com - name: Saravanan KR - maturity: alpha - provider: - name: Red Hat - version: 0.2.5 diff --git a/bundle/manifests/trexconfig-editor-role_rbac.authorization.k8s.io_v1_clusterrole.yaml b/bundle/manifests/trexconfig-editor-role_rbac.authorization.k8s.io_v1_clusterrole.yaml deleted file mode 100644 index 340a4fa..0000000 --- a/bundle/manifests/trexconfig-editor-role_rbac.authorization.k8s.io_v1_clusterrole.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - creationTimestamp: null - name: trexconfig-editor-role -rules: -- apiGroups: - - examplecnf.openshift.io - resources: - - trexconfigs - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - examplecnf.openshift.io - resources: - - trexconfigs/status - verbs: - - get diff --git a/bundle/manifests/trexconfig-viewer-role_rbac.authorization.k8s.io_v1_clusterrole.yaml b/bundle/manifests/trexconfig-viewer-role_rbac.authorization.k8s.io_v1_clusterrole.yaml deleted file mode 100644 index 92b641a..0000000 --- a/bundle/manifests/trexconfig-viewer-role_rbac.authorization.k8s.io_v1_clusterrole.yaml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - creationTimestamp: null - name: trexconfig-viewer-role -rules: -- apiGroups: - - examplecnf.openshift.io - resources: - - trexconfigs - verbs: - - get - - list - - watch -- apiGroups: - - examplecnf.openshift.io - resources: - - trexconfigs/status - verbs: - - get diff --git a/bundle/metadata/annotations.yaml b/bundle/metadata/annotations.yaml deleted file mode 100644 index a531121..0000000 --- a/bundle/metadata/annotations.yaml +++ /dev/null @@ -1,15 +0,0 @@ -annotations: - # Core bundle annotations. - operators.operatorframework.io.bundle.mediatype.v1: registry+v1 - operators.operatorframework.io.bundle.manifests.v1: manifests/ - operators.operatorframework.io.bundle.metadata.v1: metadata/ - operators.operatorframework.io.bundle.package.v1: trex-operator - operators.operatorframework.io.bundle.channels.v1: alpha - operators.operatorframework.io.bundle.channel.default.v1: alpha - operators.operatorframework.io.metrics.project_layout: ansible.sdk.operatorframework.io/v1 - operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 - operators.operatorframework.io.metrics.builder: operator-sdk-v1.4.0+git - - # Annotations for testing. - operators.operatorframework.io.test.mediatype.v1: scorecard+v1 - operators.operatorframework.io.test.config.v1: tests/scorecard/ diff --git a/bundle/tests/scorecard/config.yaml b/bundle/tests/scorecard/config.yaml deleted file mode 100644 index 1d7b722..0000000 --- a/bundle/tests/scorecard/config.yaml +++ /dev/null @@ -1,49 +0,0 @@ -apiVersion: scorecard.operatorframework.io/v1alpha3 -kind: Configuration -metadata: - name: config -stages: -- parallel: true - tests: - - entrypoint: - - scorecard-test - - basic-check-spec - image: quay.io/operator-framework/scorecard-test:master - labels: - suite: basic - test: basic-check-spec-test - - entrypoint: - - scorecard-test - - olm-bundle-validation - image: quay.io/operator-framework/scorecard-test:master - labels: - suite: olm - test: olm-bundle-validation-test - - entrypoint: - - scorecard-test - - olm-crds-have-validation - image: quay.io/operator-framework/scorecard-test:master - labels: - suite: olm - test: olm-crds-have-validation-test - - entrypoint: - - scorecard-test - - olm-crds-have-resources - image: quay.io/operator-framework/scorecard-test:master - labels: - suite: olm - test: olm-crds-have-resources-test - - entrypoint: - - scorecard-test - - olm-spec-descriptors - image: quay.io/operator-framework/scorecard-test:master - labels: - suite: olm - test: olm-spec-descriptors-test - - entrypoint: - - scorecard-test - - olm-status-descriptors - image: quay.io/operator-framework/scorecard-test:master - labels: - suite: olm - test: olm-status-descriptors-test