From 28d4d8b69cc061f20983cd5b12a8505809cd909f Mon Sep 17 00:00:00 2001 From: Leonardo Rossetti Date: Dec 08 2021 12:04:36 +0000 Subject: deploy/koji-operator.yaml updates --- diff --git a/deploy/koji-operator.yaml b/deploy/koji-operator.yaml index 49d832e..bd963d1 100644 --- a/deploy/koji-operator.yaml +++ b/deploy/koji-operator.yaml @@ -2,4 +2,396 @@ apiVersion: v1 kind: Namespace metadata: - name: koji-system \ No newline at end of file + name: koji-system +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: controller-manager + namespace: koji-system +--- +#CRDS BEGIN +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: kojibuilders.buildsys.apps.fedoraproject.org +spec: + group: buildsys.apps.fedoraproject.org + names: + kind: KojiBuilder + listKind: KojiBuilderList + plural: kojibuilders + singular: kojibuilder + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: KojiBuilder is the Schema for the kojibuilders 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 KojiBuilder + type: object + x-kubernetes-preserve-unknown-fields: true + status: + description: Status defines the observed state of KojiBuilder + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: kojihubs.buildsys.apps.fedoraproject.org +spec: + group: buildsys.apps.fedoraproject.org + names: + kind: KojiHub + listKind: KojiHubList + plural: kojihubs + singular: kojihub + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: KojiHub is the Schema for the kojihubs 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 KojiHub + type: object + x-kubernetes-preserve-unknown-fields: true + status: + description: Status defines the observed state of KojiHub + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: kojiras.buildsys.apps.fedoraproject.org +spec: + group: buildsys.apps.fedoraproject.org + names: + kind: Kojira + listKind: KojiraList + plural: kojiras + singular: kojira + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: Kojira is the Schema for the kojiras 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 Kojira + type: object + x-kubernetes-preserve-unknown-fields: true + status: + description: Status defines the observed state of Kojira + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: kojiusers.buildsys.apps.fedoraproject.org +spec: + group: buildsys.apps.fedoraproject.org + names: + kind: KojiUser + listKind: KojiUserList + plural: kojiusers + singular: kojiuser + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: KojiUser is the Schema for the kojiusers 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 KojiUser + type: object + x-kubernetes-preserve-unknown-fields: true + status: + description: Status defines the observed state of KojiUser + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: true + subresources: + status: {} +#CRDS END +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: manager-rolebinding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: manager-role +subjects: + - kind: ServiceAccount + name: controller-manager + namespace: koji-system +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: manager-role + labels: + kubevirt.io: "" +rules: + ## + ## Base operator rules + ## + # TODO: remove openshift resources from base definition \ + # and add it with kustomize whe needed. + - apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: + - '*' + - apiGroups: + - "" + resources: + - secrets + - configmaps + - services + - services/finalizers + - pods + - pods/exec + - pods/log + - endpoints + - persistentvolumeclaims + - events + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + ## + ## Rules for buildsys.apps.fedoraproject.org/v1alpha1, Kind: KojiHub + ## + - apiGroups: + - buildsys.apps.fedoraproject.org + resources: + - kojihubs + - kojihubs/status + - kojihubs/finalizers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + ## + ## Rules for buildsys.apps.fedoraproject.org/v1alpha1, Kind: KojiBuilder + ## + - apiGroups: + - buildsys.apps.fedoraproject.org + resources: + - kojibuilders + - kojibuilders/status + - kojibuilders/finalizers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + ## + ## Rules for buildsys.apps.fedoraproject.org/v1alpha1, Kind: Kojira + ## + - apiGroups: + - buildsys.apps.fedoraproject.org + resources: + - kojiras + - kojiras/status + - kojiras/finalizers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + ## + ## Rules for buildsys.apps.fedoraproject.org/v1alpha1, Kind: KojiUser + ## + - apiGroups: + - buildsys.apps.fedoraproject.org + resources: + - kojiusers + - kojiusers/status + - kojiusers/finalizers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + ## + ## Rules for the apiGroup kubevirt.io + ## + - apiGroups: + - subresources.kubevirt.io + resources: + - virtualmachineinstances/console + - virtualmachineinstances/vnc + verbs: + - get + - apiGroups: + - kubevirt.io + resources: + - virtualmachineinstances + - virtualmachines + - virtualmachineinstancepresets + - virtualmachineinstancereplicasets + - virtualmachines/status + - virtualmachines/finalizers + verbs: + - get + - delete + - create + - update + - patch + - list + - watch + - deletecollection +#+kubebuilder:scaffold:rules +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: controller-manager + namespace: koji-system + labels: + control-plane: controller-manager +spec: + selector: + matchLabels: + control-plane: controller-manager + replicas: 1 + template: + metadata: + labels: + control-plane: controller-manager + spec: + containers: + - args: + - --leader-elect + - --leader-election-id=operator + image: quay.io/fedora-kube-sig/koji-operator:latest + name: manager + env: + - name: ANSIBLE_GATHERING + value: explicit + securityContext: + allowPrivilegeEscalation: false + livenessProbe: + httpGet: + path: /healthz + port: 6789 + initialDelaySeconds: 15 + periodSeconds: 20 + readinessProbe: + httpGet: + path: /readyz + port: 6789 + initialDelaySeconds: 5 + periodSeconds: 10 + serviceAccountName: controller-manager + terminationGracePeriodSeconds: 10 \ No newline at end of file