#32 deploying koji components
Merged 2 years ago by lrossett. Opened 2 years ago by lrossett.
kube-sig/ lrossett/koji-operator issue-22_minikibe-components  into  main

file modified
+247 -8
@@ -10,20 +10,259 @@ 

    uninstall.sh: |

      #!/bin/bash

  

-     kubectl delete kojira/default -n koji-system

+     # delete resouces

+     kubectl delete deployment/postgres -n koji-system

+     kubectl delete kojihub/sample -n koji-system

      kubectl delete kojibuilder/createrepo -n koji-system

      kubectl delete kojibuilder/builder -n koji-system

-     kubectl delete kojihub/default -n koji-system

+     kubectl delete kojira/kojira -n koji-system

  

-     kubectl delete -f /manifests/koji-operator.yaml

+     # delete koji-operator

+     kubectl delete -f https://pagure.io/kube-sig/koji-operator/raw/main/f/deploy/koji-operator.yaml

    install.sh: |

      #!/bin/bash

+     kubectl apply -f https://pagure.io/kube-sig/koji-operator/raw/main/f/deploy/koji-operator.yaml

+ 

+     while true; do

+       if [[ $(kubectl get deployment/controller-manager -o jsonpath='{.status.conditions[?(@.type=="Available")].status}' -n koji-system) == "True" ]]; then

+         echo deployment/controller-manager ready

+         break

+       else

+         echo deployment/controller-manager waiting readiness

+         sleep 5

+       fi

+     done

+ 

+     echo "

+     apiVersion: v1

+     kind: Secret

+     metadata:

+       name: postgres

+       namespace: koji-system

+       labels:

+         app: postgres

+     stringData:

+       POSTGRES_HOST: postgres

+       POSTGRES_DB: koji

+       POSTGRES_USER: koji

+       POSTGRES_PASSWORD: koji

+     ---

+     apiVersion: apps/v1

+     kind: Deployment

+     metadata:

+       name: postgres

+       namespace: koji-system

+     spec:

+       replicas: 1

+       selector:

+         matchLabels:

+           app: postgres

+       template:

+         metadata:

+           labels:

+             app: postgres

+         spec:

+           volumes:

+             - name: data

+               emptyDir: {}

+           containers:

+             - name: postgres

+               volumeMounts:

+                 - mountPath: /var/lib/postgresql

+                   name: data

+               image: postgres:10.4

+               imagePullPolicy: Always

+               ports:

+                 - containerPort: 5432

+               envFrom:

+                 - secretRef:

+                     name: postgres

+     ---

+     apiVersion: v1

+     kind: Service

+     metadata:

+       name: postgres

+       namespace: koji-system

+       labels:

+         app: postgres

+     spec:

+       type: NodePort

+       ports:

+         - port: 5432

+       selector:

+         app: postgres

+     " | kubectl apply -f -

+ 

+     while true; do

+       if [[ $(kubectl  get deployment/postgres -o jsonpath='{.status.conditions[?(@.type=="Available")].status}' -n koji-system) == "True" ]]; then

+         echo deployment/postgres ready

+         break

+       else

+         echo deployment/postgres waiting readiness

+         sleep 5

+       fi

+     done

+ 

+     echo "

+     apiVersion: v1

+     kind: Secret

+     metadata:

+       name: rabbitmq-certs

+       namespace: koji-system

+     data:

+       ca: |-

+         Y2hhbmdlbWU=

+       cert: |-

+         Y2hhbmdlbWU=

+       key: |-

+         Y2hhbmdlbWU=

+     ---

+     apiVersion: v1

+     kind: Secret

+     metadata:

+       name: koji-hub-msg

+       namespace: koji-system

+     data:

+       koji.ca: |-

+         Y2hhbmdlbWU=

+       koji.crt: |-

+         Y2hhbmdlbWU=

+       koji.key: |-

+         Y2hhbmdlbWU=

+     " | kubectl apply -f -

+ 

+     echo "

+     apiVersion: buildsys.apps.fedoraproject.org/v1alpha1

+     kind: KojiHub

+     metadata:

+       name: sample

+       namespace: koji-system

+     spec:

+       image: quay.io/fedora-kube-sig/koji-hub:latest

+       replicas: 1

+       persistent: true

+       host: koji.myservice.test

+       configmap: koji-hub

+       ca_cert_secret: koji-hub-ca-cert

+       service_cert_secret: koji-hub-service-cert

+       postgres_secret: postgres

+       http_enabled: true

+       https_enabled: true

+       topic_prefix: kojikube

+       fedora_messaging_url: amqps://koji:something@rabbitmq

+       messaging_cert_secret: koji-hub-msg

+       ingress_backend: nginx # default

+       httpd_pvc_name: koji-hub-httpd-pvc

+       httpd_pvc_size: 1Gi

+       mnt_pvc_name: koji-hub-mnt-pvc

+       mnt_pvc_size: 10Gi

+       web_client_cert_secret: koji-hub-web-client-cert

+       web_client_username: kojiweb

+       admin_client_cert: koji-hub-admin-cert

+       admin_username: kojiadmin

+       svc_name: koji-hub

+       " | kubectl apply -f -

+ 

+       while true; do

+         if [[ $(kubectl  get kojihubs/sample -o jsonpath='{.status.conditions[?(@.reason=="Successful")].status}' -n koji-system) == "True" ]]; then

+           echo kojihubs/sample ready

+           break

+         else

+           echo kojihubs/sample waiting readiness

+           sleep 5

+         fi

+       done

+ 

+       echo "

+       apiVersion: buildsys.apps.fedoraproject.org/v1alpha1

+       kind: KojiBuilder

+       metadata:

+         name: createrepo

+         namespace: koji-system

+         annotations:

+           buildsys.apps.fedoraproject.org/hub: sample/koji-system

+       spec:

+         image: quay.io/fedora-kube-sig/koji-builder:latest

+         type: repo

+         max_jobs: 5

+         archs:

+           - x86_64

+         channels:

+           - createrepo

+         ssl_verify: false

+         volume: true

+       " | kubectl apply -f -

+ 

+       while true; do

+         if [[ $(kubectl  get kojibuilder/createrepo -o jsonpath='{.status.conditions[?(@.reason=="Successful")].status}' -n koji-system) == "True" ]]; then

+           echo kojibuilder/createrepo ready

+           break

+         else

+           echo kojibuilder/createrepo waiting readiness

+           sleep 5

+         fi

+       done

+ 

+       echo "

+       apiVersion: buildsys.apps.fedoraproject.org/v1alpha1

+       kind: Kojira

+       metadata:

+         name: kojira

+         namespace: koji-system

+         annotations:

+           buildsys.apps.fedoraproject.org/hub: sample/koji-system

+       spec:

+         image: quay.io/fedora/kojira:latest

+         src: 'no'

+         max_repo_tasks: 15

+         repo_tasks_limit: 15

+       " | kubectl apply -f -

+ 

+       while true; do

+         if [[ $(kubectl  get kojira/kojira -o jsonpath='{.status.conditions[?(@.reason=="Successful")].status}' -n koji-system) == "True" ]]; then

+           echo kojira/kojira ready

+           break

+         else

+           echo kojira/kojira waiting readiness

+           sleep 5

+         fi

+       done

+ 

+       if [[ "$(egrep 'svm|vmx' /proc/cpuinfo)" != "" ]]; then

+         echo "

+         apiVersion: buildsys.apps.fedoraproject.org/v1alpha1

+         kind: KojiBuilder

+         metadata:

+           name: builder

+           namespace: koji-system

+           annotations:

+             buildsys.apps.fedoraproject.org/hub: sample/koji-system

+         spec:

+           image: quay.io/fedora-kube-sig/koji-builder-kubevirt:latest

+           type: kubevirt

+           max_jobs: 5

+           archs:

+             - x86_64

+           channels:

+             - default

+           ssl_verify: false

+           volume: false

+           running: true

+         " | kubectl apply -f -

+ 

+         while true; do

+           if [[ $(kubectl get kojibuilder/builder -o jsonpath='{.status.conditions[?(@.reason=="Successful")].status}' -n koji-system) == "True" ]]; then

+             echo kojibuilder/builder ready

+             break

+           else

+             echo kojibuilder/builder waiting readiness

+             sleep 5

+           fi

+         done

+       else

+         echo "virt disabled, skipping kkubevirt builder deployment."

+       fi

  

-     curl -Ls https://pagure.io/kube-sig/koji-operator/raw/main/f/deploy/koji-operator.yaml -o /manifests/koji-operator.yaml

-     kubectl create -f /manifests/koji-operator.yaml

-     

-     # TODO: create koji resources with kubectl

-     

      sleep infinity

  ---

  apiVersion: v1

fixes #22

Deploys koji components in the koji-system namespace:

  • koji-hub
  • kojira
  • kojid (createrepo)
  • kojid (kubevirt builder)

Build succeeded.

Pull-Request has been merged by lrossett

2 years ago
Metadata