| |
@@ -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: