diff --git a/playbooks/setup_uyuni.yml b/playbooks/setup_uyuni.yml index f8c25e4..d465d3d 100644 --- a/playbooks/setup_uyuni.yml +++ b/playbooks/setup_uyuni.yml @@ -2,5 +2,7 @@ - name: Deploy Uyuni Server on Kubernetes hosts: manager_nodes become: false + vars: + ansible_python_interpreter: "/home/{{ ansible_user }}/.venv/bin/python" roles: - uyuni diff --git a/roles/uyuni/tasks/helm.yml b/roles/uyuni/tasks/helm.yml index ee8400c..ba162ca 100644 --- a/roles/uyuni/tasks/helm.yml +++ b/roles/uyuni/tasks/helm.yml @@ -8,28 +8,22 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "ConfigMap", - "metadata": { - "labels": { - "app.kubernetes.io/part-of": "uyuni" - }, - "name": "uyuni-config", - "namespace": "{{ uyuni_namespace }}" - }, - "data": { - "fqdn": "{{ uyuni_helm_values.global.fqdn }}", - "email": "{{ uyuni_helm_values.server.email }}", - "db_host": "db", - "db_port": "5432", - "db_name": "{{ uyuni_helm_values.db.internal.name }}", - "reportdb_host": "reportdb", - "reportdb_port": "5432", - "reportdb_name": "reportdb" - } -} - state: present + apiVersion: v1 + metadata: + labels: + app.kubernetes.io/part-of: uyuni + name: uyuni-config + namespace: '{{ uyuni_namespace }}' + data: + fqdn: "{{ uyuni_helm_values['global.fqdn'] }}" + email: "{{ uyuni_helm_values['server.email'] }}" + db_host: db + db_port: '5432' + db_name: "{{ uyuni_helm_values['db.internal.name'] }}" + reportdb_host: reportdb + reportdb_port: '5432' + reportdb_name: reportdb + state: present # PersistentVolumeClaims - name: PersistentVolumeClaim | ca-certs @@ -40,28 +34,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "ca-certs", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "10Mi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: ca-certs + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Mi + state: present - name: PersistentVolumeClaim | etc-apache2 kubernetes.core.k8s: @@ -71,28 +56,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "etc-apache2", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "1Mi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: etc-apache2 + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Mi + state: present - name: PersistentVolumeClaim | etc-cobbler kubernetes.core.k8s: @@ -102,28 +78,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "etc-cobbler", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "1Mi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: etc-cobbler + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Mi + state: present - name: PersistentVolumeClaim | etc-postfix kubernetes.core.k8s: @@ -133,28 +100,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "etc-postfix", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "1Mi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: etc-postfix + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Mi + state: present - name: PersistentVolumeClaim | etc-rhn kubernetes.core.k8s: @@ -164,28 +122,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "etc-rhn", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "1Mi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: etc-rhn + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Mi + state: present - name: PersistentVolumeClaim | etc-salt kubernetes.core.k8s: @@ -195,28 +144,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "etc-salt", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "1Mi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: etc-salt + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Mi + state: present - name: PersistentVolumeClaim | etc-sssd kubernetes.core.k8s: @@ -226,28 +166,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "etc-sssd", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "1Mi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: etc-sssd + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Mi + state: present - name: PersistentVolumeClaim | etc-sysconfig kubernetes.core.k8s: @@ -257,28 +188,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "etc-sysconfig", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "20Mi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: etc-sysconfig + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 20Mi + state: present - name: PersistentVolumeClaim | etc-systemd-multi kubernetes.core.k8s: @@ -288,28 +210,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "etc-systemd-multi", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "1Mi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: etc-systemd-multi + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Mi + state: present - name: PersistentVolumeClaim | etc-systemd-sockets kubernetes.core.k8s: @@ -319,28 +232,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "etc-systemd-sockets", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "1Mi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: etc-systemd-sockets + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Mi + state: present - name: PersistentVolumeClaim | etc-tomcat kubernetes.core.k8s: @@ -350,28 +254,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "etc-tomcat", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "1Mi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: etc-tomcat + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Mi + state: present - name: PersistentVolumeClaim | run-salt-master kubernetes.core.k8s: @@ -381,28 +276,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "run-salt-master", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "10Mi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: run-salt-master + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Mi + state: present - name: PersistentVolumeClaim | srv-formulametadata kubernetes.core.k8s: @@ -412,28 +298,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "srv-formulametadata", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "10Mi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: srv-formulametadata + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Mi + state: present - name: PersistentVolumeClaim | srv-pillar kubernetes.core.k8s: @@ -443,28 +320,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "srv-pillar", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "10Mi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: srv-pillar + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Mi + state: present - name: PersistentVolumeClaim | srv-salt kubernetes.core.k8s: @@ -474,28 +342,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "srv-salt", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "10Mi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: srv-salt + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Mi + state: present - name: PersistentVolumeClaim | srv-spacewalk kubernetes.core.k8s: @@ -505,28 +364,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "srv-spacewalk", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "10Mi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: srv-spacewalk + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Mi + state: present - name: PersistentVolumeClaim | srv-susemanager kubernetes.core.k8s: @@ -536,28 +386,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "srv-susemanager", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "1Mi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: srv-susemanager + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Mi + state: present - name: PersistentVolumeClaim | srv-tftpboot kubernetes.core.k8s: @@ -567,28 +408,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "srv-tftpboot", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "300Mi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: srv-tftpboot + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 300Mi + state: present - name: PersistentVolumeClaim | srv-www kubernetes.core.k8s: @@ -598,28 +430,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "srv-www", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "100Gi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: srv-www + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Gi + state: present - name: PersistentVolumeClaim | var-cache kubernetes.core.k8s: @@ -629,28 +452,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "var-cache", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "10Gi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: var-cache + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + state: present - name: PersistentVolumeClaim | var-cobbler kubernetes.core.k8s: @@ -660,28 +474,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "var-cobbler", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "10Mi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: var-cobbler + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Mi + state: present - name: PersistentVolumeClaim | var-log kubernetes.core.k8s: @@ -691,28 +496,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "var-log", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "2Gi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: var-log + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 2Gi + state: present - name: PersistentVolumeClaim | var-pgsql18 kubernetes.core.k8s: @@ -722,28 +518,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "var-pgsql18", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "50Gi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: var-pgsql18 + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 50Gi + state: present - name: PersistentVolumeClaim | var-salt kubernetes.core.k8s: @@ -753,28 +540,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "var-salt", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "10Mi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: var-salt + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Mi + state: present - name: PersistentVolumeClaim | var-search kubernetes.core.k8s: @@ -784,28 +562,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "var-search", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "10Gi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: var-search + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + state: present - name: PersistentVolumeClaim | var-spacewalk kubernetes.core.k8s: @@ -815,28 +584,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "var-spacewalk", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "100Gi" - } - } - } -} - state: present + apiVersion: v1 + metadata: + name: var-spacewalk + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Gi + state: present # Services - name: Service | cobbler @@ -847,32 +607,22 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "Service", - "metadata": { - "labels": { - "app.kubernetes.io/component": "server", - "app.kubernetes.io/part-of": "uyuni" - }, - "name": "cobbler", - "namespace": "{{ uyuni_namespace }}" - }, - "spec": { - "ports": [ - { - "name": "cobbler", - "port": 25151 - } - ], - "selector": { - "app.kubernetes.io/component": "server", - "app.kubernetes.io/part-of": "uyuni" - }, - "type": "ClusterIP" - } -} - state: present + apiVersion: v1 + metadata: + labels: + app.kubernetes.io/component: server + app.kubernetes.io/part-of: uyuni + name: cobbler + namespace: '{{ uyuni_namespace }}' + spec: + ports: + - name: cobbler + port: 25151 + selector: + app.kubernetes.io/component: server + app.kubernetes.io/part-of: uyuni + type: ClusterIP + state: present - name: Service | db kubernetes.core.k8s: @@ -882,32 +632,22 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "Service", - "metadata": { - "labels": { - "app.kubernetes.io/component": "db", - "app.kubernetes.io/part-of": "uyuni" - }, - "name": "db", - "namespace": "{{ uyuni_namespace }}" - }, - "spec": { - "ports": [ - { - "name": "pgsql", - "port": 5432 - } - ], - "selector": { - "app.kubernetes.io/component": "db", - "app.kubernetes.io/part-of": "uyuni" - }, - "type": "ClusterIP" - } -} - state: present + apiVersion: v1 + metadata: + labels: + app.kubernetes.io/component: db + app.kubernetes.io/part-of: uyuni + name: db + namespace: '{{ uyuni_namespace }}' + spec: + ports: + - name: pgsql + port: 5432 + selector: + app.kubernetes.io/component: db + app.kubernetes.io/part-of: uyuni + type: ClusterIP + state: present - name: Service | reportdb kubernetes.core.k8s: @@ -917,32 +657,22 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "Service", - "metadata": { - "labels": { - "app.kubernetes.io/component": "db", - "app.kubernetes.io/part-of": "uyuni" - }, - "name": "reportdb", - "namespace": "{{ uyuni_namespace }}" - }, - "spec": { - "ports": [ - { - "name": "pgsql", - "port": 5432 - } - ], - "selector": { - "app.kubernetes.io/component": "db", - "app.kubernetes.io/part-of": "uyuni" - }, - "type": "ClusterIP" - } -} - state: present + apiVersion: v1 + metadata: + labels: + app.kubernetes.io/component: db + app.kubernetes.io/part-of: uyuni + name: reportdb + namespace: '{{ uyuni_namespace }}' + spec: + ports: + - name: pgsql + port: 5432 + selector: + app.kubernetes.io/component: db + app.kubernetes.io/part-of: uyuni + type: ClusterIP + state: present - name: Service | salt kubernetes.core.k8s: @@ -952,36 +682,24 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "Service", - "metadata": { - "labels": { - "app.kubernetes.io/component": "server", - "app.kubernetes.io/part-of": "uyuni" - }, - "name": "salt", - "namespace": "{{ uyuni_namespace }}" - }, - "spec": { - "ports": [ - { - "name": "publish", - "port": 4505 - }, - { - "name": "request", - "port": 4506 - } - ], - "selector": { - "app.kubernetes.io/component": "server", - "app.kubernetes.io/part-of": "uyuni" - }, - "type": "ClusterIP" - } -} - state: present + apiVersion: v1 + metadata: + labels: + app.kubernetes.io/component: server + app.kubernetes.io/part-of: uyuni + name: salt + namespace: '{{ uyuni_namespace }}' + spec: + ports: + - name: publish + port: 4505 + - name: request + port: 4506 + selector: + app.kubernetes.io/component: server + app.kubernetes.io/part-of: uyuni + type: ClusterIP + state: present - name: Service | taskomatic-internal kubernetes.core.k8s: @@ -991,36 +709,24 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "Service", - "metadata": { - "labels": { - "app.kubernetes.io/component": "server", - "app.kubernetes.io/part-of": "uyuni" - }, - "name": "taskomatic-internal", - "namespace": "{{ uyuni_namespace }}" - }, - "spec": { - "ports": [ - { - "name": "jmx", - "port": 5557 - }, - { - "name": "mtrx", - "port": 9800 - } - ], - "selector": { - "app.kubernetes.io/component": "server", - "app.kubernetes.io/part-of": "uyuni" - }, - "type": "ClusterIP" - } -} - state: present + apiVersion: v1 + metadata: + labels: + app.kubernetes.io/component: server + app.kubernetes.io/part-of: uyuni + name: taskomatic-internal + namespace: '{{ uyuni_namespace }}' + spec: + ports: + - name: jmx + port: 5557 + - name: mtrx + port: 9800 + selector: + app.kubernetes.io/component: server + app.kubernetes.io/part-of: uyuni + type: ClusterIP + state: present - name: Service | tomcat-internal kubernetes.core.k8s: @@ -1030,40 +736,26 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "Service", - "metadata": { - "labels": { - "app.kubernetes.io/component": "server", - "app.kubernetes.io/part-of": "uyuni" - }, - "name": "tomcat-internal", - "namespace": "{{ uyuni_namespace }}" - }, - "spec": { - "ports": [ - { - "name": "node-exporter", - "port": 9100 - }, - { - "name": "jmx", - "port": 5556 - }, - { - "name": "pgsql-exporter", - "port": 9187 - } - ], - "selector": { - "app.kubernetes.io/component": "server", - "app.kubernetes.io/part-of": "uyuni" - }, - "type": "ClusterIP" - } -} - state: present + apiVersion: v1 + metadata: + labels: + app.kubernetes.io/component: server + app.kubernetes.io/part-of: uyuni + name: tomcat-internal + namespace: '{{ uyuni_namespace }}' + spec: + ports: + - name: node-exporter + port: 9100 + - name: jmx + port: 5556 + - name: pgsql-exporter + port: 9187 + selector: + app.kubernetes.io/component: server + app.kubernetes.io/part-of: uyuni + type: ClusterIP + state: present - name: Service | web kubernetes.core.k8s: @@ -1073,34 +765,24 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "v1", - "kind": "Service", - "metadata": { - "labels": { - "app.kubernetes.io/component": "server", - "app.kubernetes.io/part-of": "uyuni" - }, - "name": "web", - "namespace": "{{ uyuni_namespace }}" - }, - "spec": { - "ports": [ - { - "name": "http", - "port": 80, - "protocol": "TCP", - "targetPort": 80 - } - ], - "selector": { - "app.kubernetes.io/component": "server", - "app.kubernetes.io/part-of": "uyuni" - }, - "type": "ClusterIP" - } -} - state: present + apiVersion: v1 + metadata: + labels: + app.kubernetes.io/component: server + app.kubernetes.io/part-of: uyuni + name: web + namespace: '{{ uyuni_namespace }}' + spec: + ports: + - name: http + port: 80 + protocol: TCP + targetPort: 80 + selector: + app.kubernetes.io/component: server + app.kubernetes.io/part-of: uyuni + type: ClusterIP + state: present # Deployments - name: Deployment | db @@ -1111,151 +793,88 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "apps/v1", - "kind": "Deployment", - "metadata": { - "creationTimestamp": null, - "labels": { - "app.kubernetes.io/component": "db", - "app.kubernetes.io/part-of": "uyuni" - }, - "name": "db", - "namespace": "{{ uyuni_namespace }}" - }, - "spec": { - "replicas": 1, - "selector": { - "matchLabels": { - "app.kubernetes.io/component": "db", - "app.kubernetes.io/part-of": "uyuni" - } - }, - "strategy": { - "type": "Recreate" - }, - "template": { - "metadata": { - "labels": { - "app.kubernetes.io/component": "db", - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "containers": [ - { - "env": [ - { - "name": "TZ", - "value": "Etc/UTC" - }, - { - "name": "POSTGRES_USER", - "valueFrom": { - "secretKeyRef": { - "key": "username", - "name": "db-admin-credentials" - } - } - }, - { - "name": "POSTGRES_PASSWORD", - "valueFrom": { - "secretKeyRef": { - "key": "password", - "name": "db-admin-credentials" - } - } - }, - { - "name": "MANAGER_USER", - "valueFrom": { - "secretKeyRef": { - "key": "username", - "name": "db-credentials" - } - } - }, - { - "name": "MANAGER_PASS", - "valueFrom": { - "secretKeyRef": { - "key": "password", - "name": "db-credentials" - } - } - }, - { - "name": "REPORT_DB_USER", - "valueFrom": { - "secretKeyRef": { - "key": "username", - "name": "reportdb-credentials" - } - } - }, - { - "name": "REPORT_DB_PASS", - "valueFrom": { - "secretKeyRef": { - "key": "password", - "name": "reportdb-credentials" - } - } - } - ], - "image": "registry.opensuse.org/uyuni/server-postgresql:latest", - "imagePullPolicy": "IfNotPresent", - "name": "db", - "volumeMounts": [ - { - "mountPath": "/var/lib/pgsql/data", - "name": "var-pgsql" - }, - { - "mountPath": "/etc/pki", - "name": "tls-secret" - } - ] - } - ], - "securityContext": { - "fsGroup": 999 - }, - "volumes": [ - { - "name": "var-pgsql", - "persistentVolumeClaim": { - "claimName": "var-pgsql18" - } - }, - { - "name": "tls-secret", - "secret": { - "items": [ - { - "key": "tls.crt", - "path": "tls/certs/spacewalk.crt" - }, - { - "key": "tls.key", - "mode": 256, - "path": "tls/private/pg-spacewalk.key" - }, - { - "key": "ca.crt", - "path": "trust/anchors/LOCAL-RHN-ORG-TRUSTED-SSL-CERT" - } - ], - "secretName": "db-cert" - } - } - ] - } - } - } -} - state: present + apiVersion: apps/v1 + metadata: + creationTimestamp: null + labels: + app.kubernetes.io/component: db + app.kubernetes.io/part-of: uyuni + name: db + namespace: '{{ uyuni_namespace }}' + spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/component: db + app.kubernetes.io/part-of: uyuni + strategy: + type: Recreate + template: + metadata: + labels: + app.kubernetes.io/component: db + app.kubernetes.io/part-of: uyuni + spec: + containers: + - env: + - name: TZ + value: Etc/UTC + - name: POSTGRES_USER + valueFrom: + secretKeyRef: + key: username + name: db-admin-credentials + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + key: password + name: db-admin-credentials + - name: MANAGER_USER + valueFrom: + secretKeyRef: + key: username + name: db-credentials + - name: MANAGER_PASS + valueFrom: + secretKeyRef: + key: password + name: db-credentials + - name: REPORT_DB_USER + valueFrom: + secretKeyRef: + key: username + name: reportdb-credentials + - name: REPORT_DB_PASS + valueFrom: + secretKeyRef: + key: password + name: reportdb-credentials + image: registry.opensuse.org/uyuni/server-postgresql:latest + imagePullPolicy: IfNotPresent + name: db + volumeMounts: + - mountPath: /var/lib/pgsql/data + name: var-pgsql + - mountPath: /etc/pki + name: tls-secret + securityContext: + fsGroup: 999 + volumes: + - name: var-pgsql + persistentVolumeClaim: + claimName: var-pgsql18 + - name: tls-secret + secret: + items: + - key: tls.crt + path: tls/certs/spacewalk.crt + - key: tls.key + mode: 256 + path: tls/private/pg-spacewalk.key + - key: ca.crt + path: trust/anchors/LOCAL-RHN-ORG-TRUSTED-SSL-CERT + secretName: db-cert + state: present - name: Deployment | uyuni kubernetes.core.k8s: @@ -1265,811 +884,451 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "apps/v1", - "kind": "Deployment", - "metadata": { - "labels": { - "app.kubernetes.io/component": "server", - "app.kubernetes.io/part-of": "uyuni" - }, - "name": "uyuni", - "namespace": "{{ uyuni_namespace }}" - }, - "spec": { - "replicas": 1, - "selector": { - "matchLabels": { - "app.kubernetes.io/component": "server", - "app.kubernetes.io/part-of": "uyuni" - } - }, - "strategy": { - "type": "Recreate" - }, - "template": { - "metadata": { - "labels": { - "app.kubernetes.io/component": "server", - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "containers": [ - { - "env": [ - { - "name": "container", - "value": "oci" - }, - { - "name": "TZ", - "value": "Etc/UTC" - }, - { - "name": "ADMIN_USER", - "valueFrom": { - "secretKeyRef": { - "key": "username", - "name": "admin-credentials", - "optional": false - } - } - }, - { - "name": "ADMIN_PASS", - "valueFrom": { - "secretKeyRef": { - "key": "password", - "name": "admin-credentials", - "optional": false - } - } - }, - { - "name": "MANAGER_USER", - "valueFrom": { - "secretKeyRef": { - "key": "username", - "name": "db-credentials", - "optional": false - } - } - }, - { - "name": "MANAGER_PASS", - "valueFrom": { - "secretKeyRef": { - "key": "password", - "name": "db-credentials", - "optional": false - } - } - }, - { - "name": "REPORT_DB_USER", - "valueFrom": { - "secretKeyRef": { - "key": "username", - "name": "reportdb-credentials", - "optional": false - } - } - }, - { - "name": "REPORT_DB_PASS", - "valueFrom": { - "secretKeyRef": { - "key": "password", - "name": "reportdb-credentials", - "optional": false - } - } - }, - { - "name": "MANAGER_DB_NAME", - "value": "{{ uyuni_helm_values.db.internal.name }}" - }, - { - "name": "MANAGER_DB_HOST", - "value": "db" - }, - { - "name": "MANAGER_DB_CA_CERT", - "value": "/etc/pki/trust/anchors/DB-RHN-ORG-TRUSTED-SSL-CERT" - }, - { - "name": "MANAGER_DB_PORT", - "value": "5432" - }, - { - "name": "EXTERNALDB_PROVIDER" - }, - { - "name": "ISS_PARENT" - }, - { - "name": "REPORT_DB_NAME", - "value": "reportdb" - }, - { - "name": "REPORT_DB_HOST", - "value": "reportdb" - }, - { - "name": "REPORT_DB_CA_CERT", - "value": "/etc/pki/trust/anchors/DB-RHN-ORG-TRUSTED-SSL-CERT" - }, - { - "name": "REPORT_DB_PORT", - "value": "5432" - }, - { - "name": "MANAGER_ADMIN_EMAIL", - "valueFrom": { - "configMapKeyRef": { - "key": "email", - "name": "uyuni-config", - "optional": false - } - } - }, - { - "name": "MANAGER_MAIL_FROM", - "valueFrom": { - "configMapKeyRef": { - "key": "email", - "name": "uyuni-config", - "optional": false - } - } - }, - { - "name": "UYUNI_HOSTNAME", - "valueFrom": { - "configMapKeyRef": { - "key": "fqdn", - "name": "uyuni-config", - "optional": false - } - } - } - ], - "image": "registry.opensuse.org/uyuni/server:latest", - "imagePullPolicy": "IfNotPresent", - "lifecycle": { - "preStop": { - "exec": { - "command": [ - "/bin/sh", - "-c", - "spacewalk-service stop" - ] - } - } - }, - "name": "uyuni", - "securityContext": { - "capabilities": { - "add": [ - "SYS_ADMIN" - ] - }, - "seLinuxOptions": { - "level": "s0" - } - }, - "ports": [ - { - "containerPort": 80 - }, - { - "containerPort": 4505 - }, - { - "containerPort": 4506 - }, - { - "containerPort": 25151 - }, - { - "containerPort": 9100 - }, - { - "containerPort": 5556 - }, - { - "containerPort": 5557 - }, - { - "containerPort": 9187 - }, - { - "containerPort": 9800 - } - ], - "startupProbe": { - "exec": { - "command": [ - "/usr/bin/startup-check.sh" - ] - }, - "periodSeconds": 10, - "timeoutSeconds": 5, - "failureThreshold": 3600 - }, - "livenessProbe": { - "exec": { - "command": [ - "/usr/bin/liveness-check.sh" - ] - }, - "timeoutSeconds": 5, - "failureThreshold": 5, - "periodSeconds": 60 - }, - "readinessProbe": { - "httpGet": { - "path": "/rhn/manager/api/api/getVersion", - "port": 80, - "scheme": "HTTP" - }, - "periodSeconds": 10, - "successThreshold": 1, - "initialDelaySeconds": 120 - }, - "volumeMounts": [ - { - "mountPath": "/var/lib/cobbler", - "name": "var-cobbler" - }, - { - "mountPath": "/var/lib/rhn/search", - "name": "var-search" - }, - { - "mountPath": "/var/lib/salt", - "name": "var-salt" - }, - { - "mountPath": "/var/cache", - "name": "var-cache" - }, - { - "mountPath": "/var/spacewalk", - "name": "var-spacewalk" - }, - { - "mountPath": "/var/log", - "name": "var-log" - }, - { - "mountPath": "/srv/salt", - "name": "srv-salt" - }, - { - "mountPath": "/srv/www/", - "name": "srv-www" - }, - { - "mountPath": "/srv/tftpboot", - "name": "srv-tftpboot" - }, - { - "mountPath": "/srv/formula_metadata", - "name": "srv-formulametadata" - }, - { - "mountPath": "/srv/pillar", - "name": "srv-pillar" - }, - { - "mountPath": "/srv/susemanager", - "name": "srv-susemanager" - }, - { - "mountPath": "/srv/spacewalk", - "name": "srv-spacewalk" - }, - { - "mountPath": "/etc/pki/trust/anchors/", - "name": "ca-certs" - }, - { - "mountPath": "/run/salt/master", - "name": "run-salt-master" - }, - { - "mountPath": "/etc/apache2", - "name": "etc-apache2" - }, - { - "mountPath": "/etc/systemd/system/multi-user.target.wants", - "name": "etc-systemd-multi" - }, - { - "mountPath": "/etc/systemd/system/sockets.target.wants", - "name": "etc-systemd-sockets" - }, - { - "mountPath": "/etc/salt", - "name": "etc-salt" - }, - { - "mountPath": "/etc/tomcat", - "name": "etc-tomcat" - }, - { - "mountPath": "/etc/cobbler", - "name": "etc-cobbler" - }, - { - "mountPath": "/etc/sysconfig", - "name": "etc-sysconfig" - }, - { - "mountPath": "/etc/postfix", - "name": "etc-postfix" - }, - { - "mountPath": "/etc/sssd", - "name": "etc-sssd" - }, - { - "mountPath": "/etc/rhn", - "name": "etc-rhn" - }, - { - "mountPath": "/etc/pki/trust/anchors/LOCAL-RHN-ORG-TRUSTED-SSL-CERT", - "name": "ca-cert", - "readOnly": true, - "subPath": "ca.crt" - }, - { - "mountPath": "/usr/share/susemanager/salt/certs/RHN-ORG-TRUSTED-SSL-CERT", - "name": "ca-cert", - "readOnly": true, - "subPath": "ca.crt" - }, - { - "mountPath": "/srv/www/htdocs/pub/RHN-ORG-TRUSTED-SSL-CERT", - "name": "ca-cert", - "readOnly": true, - "subPath": "ca.crt" - }, - { - "mountPath": "/etc/pki/trust/anchors/DB-RHN-ORG-TRUSTED-SSL-CERT", - "name": "db-ca-cert", - "readOnly": true, - "subPath": "ca.crt" - }, - { - "mountPath": "/etc/pki/", - "name": "tls" - }, - { - "mountPath": "/run", - "name": "run" - }, - { - "mountPath": "/sys/fs/cgroup", - "name": "sys-fs-cgroup" - } - ] - } - ], - "initContainers": [ - { - "command": [ - "sh", - "-x", - "-c", - "# Fill the empty volumes\nfor vol in /var/lib/cobbler \\\n /var/lib/rhn/search \\\n /var/lib/salt \\\n /var/cache \\\n /var/log \\\n /srv/salt \\\n /srv/www \\\n /srv/tftpboot \\\n /srv/formula_metadata \\\n /srv/pillar \\\n /srv/susemanager \\\n /srv/spacewalk \\\n /etc/apache2 \\\n /etc/rhn \\\n /etc/systemd/system/multi-user.target.wants \\\n /etc/systemd/system/sockets.target.wants \\\n /etc/salt \\\n /etc/tomcat \\\n /etc/cobbler \\\n /etc/sysconfig \\\n /etc/postfix \\\n /etc/sssd\ndo\n chown --reference=$vol /mnt$vol;\n chmod --reference=$vol /mnt$vol;\n if [ -z \"$(ls -A /mnt$vol)\" ]; then\n cp -a $vol/. /mnt$vol;\n fi\ndone\n" - ], - "image": "registry.opensuse.org/uyuni/server:latest", - "imagePullPolicy": "IfNotPresent", - "name": "init-volumes", - "securityContext": { - "seLinuxOptions": { - "level": "s0" - } - }, - "volumeMounts": [ - { - "mountPath": "/mnt/var/lib/cobbler", - "name": "var-cobbler" - }, - { - "mountPath": "/mnt/var/lib/rhn/search", - "name": "var-search" - }, - { - "mountPath": "/mnt/var/lib/salt", - "name": "var-salt" - }, - { - "mountPath": "/mnt/var/cache", - "name": "var-cache" - }, - { - "mountPath": "/mnt/var/spacewalk", - "name": "var-spacewalk" - }, - { - "mountPath": "/mnt/var/log", - "name": "var-log" - }, - { - "mountPath": "/mnt/srv/salt", - "name": "srv-salt" - }, - { - "mountPath": "/mnt/srv/www/", - "name": "srv-www" - }, - { - "mountPath": "/mnt/srv/tftpboot", - "name": "srv-tftpboot" - }, - { - "mountPath": "/mnt/srv/formula_metadata", - "name": "srv-formulametadata" - }, - { - "mountPath": "/mnt/srv/pillar", - "name": "srv-pillar" - }, - { - "mountPath": "/mnt/srv/susemanager", - "name": "srv-susemanager" - }, - { - "mountPath": "/mnt/srv/spacewalk", - "name": "srv-spacewalk" - }, - { - "mountPath": "/mnt/etc/pki/trust/anchors/", - "name": "ca-certs" - }, - { - "mountPath": "/mnt/run/salt/master", - "name": "run-salt-master" - }, - { - "mountPath": "/mnt/etc/apache2", - "name": "etc-apache2" - }, - { - "mountPath": "/mnt/etc/systemd/system/multi-user.target.wants", - "name": "etc-systemd-multi" - }, - { - "mountPath": "/mnt/etc/systemd/system/sockets.target.wants", - "name": "etc-systemd-sockets" - }, - { - "mountPath": "/mnt/etc/salt", - "name": "etc-salt" - }, - { - "mountPath": "/mnt/etc/tomcat", - "name": "etc-tomcat" - }, - { - "mountPath": "/mnt/etc/cobbler", - "name": "etc-cobbler" - }, - { - "mountPath": "/mnt/etc/sysconfig", - "name": "etc-sysconfig" - }, - { - "mountPath": "/mnt/etc/postfix", - "name": "etc-postfix" - }, - { - "mountPath": "/mnt/etc/sssd", - "name": "etc-sssd" - }, - { - "mountPath": "/mnt/etc/rhn", - "name": "etc-rhn" - } - ] - }, - { - "command": [ - "sh", - "-c", - "until pg_isready -U $MANAGER_USER -h $MANAGER_DB_HOST -p $MANAGER_DB_PORT -d $MANAGER_DB_NAME; do\n sleep 60\ndone\n\nuntil pg_isready -U $REPORT_DB_USER -h $REPORT_DB_HOST -p $REPORT_DB_PORT -d $REPORT_DB_NAME; do\n sleep 60\ndone\n" - ], - "env": [ - { - "name": "MANAGER_DB_HOST", - "valueFrom": { - "configMapKeyRef": { - "key": "db_host", - "name": "uyuni-config", - "optional": false - } - } - }, - { - "name": "MANAGER_DB_PORT", - "valueFrom": { - "configMapKeyRef": { - "key": "db_port", - "name": "uyuni-config", - "optional": false - } - } - }, - { - "name": "MANAGER_DB_NAME", - "valueFrom": { - "configMapKeyRef": { - "key": "db_name", - "name": "uyuni-config", - "optional": false - } - } - }, - { - "name": "MANAGER_USER", - "valueFrom": { - "secretKeyRef": { - "key": "username", - "name": "db-credentials", - "optional": false - } - } - }, - { - "name": "REPORT_DB_HOST", - "valueFrom": { - "configMapKeyRef": { - "key": "reportdb_host", - "name": "uyuni-config", - "optional": false - } - } - }, - { - "name": "REPORT_DB_PORT", - "valueFrom": { - "configMapKeyRef": { - "key": "reportdb_port", - "name": "uyuni-config", - "optional": false - } - } - }, - { - "name": "REPORT_DB_NAME", - "valueFrom": { - "configMapKeyRef": { - "key": "reportdb_name", - "name": "uyuni-config", - "optional": false - } - } - }, - { - "name": "REPORT_DB_USER", - "valueFrom": { - "secretKeyRef": { - "key": "username", - "name": "reportdb-credentials", - "optional": false - } - } - } - ], - "image": "registry.opensuse.org/uyuni/server:latest", - "imagePullPolicy": "IfNotPresent", - "name": "db-waiter" - } - ], - "volumes": [ - { - "name": "var-cobbler", - "persistentVolumeClaim": { - "claimName": "var-cobbler" - } - }, - { - "name": "var-search", - "persistentVolumeClaim": { - "claimName": "var-search" - } - }, - { - "name": "var-salt", - "persistentVolumeClaim": { - "claimName": "var-salt" - } - }, - { - "name": "var-cache", - "persistentVolumeClaim": { - "claimName": "var-cache" - } - }, - { - "name": "var-spacewalk", - "persistentVolumeClaim": { - "claimName": "var-spacewalk" - } - }, - { - "name": "var-log", - "persistentVolumeClaim": { - "claimName": "var-log" - } - }, - { - "name": "srv-salt", - "persistentVolumeClaim": { - "claimName": "srv-salt" - } - }, - { - "name": "srv-www", - "persistentVolumeClaim": { - "claimName": "srv-www" - } - }, - { - "name": "srv-tftpboot", - "persistentVolumeClaim": { - "claimName": "srv-tftpboot" - } - }, - { - "name": "srv-formulametadata", - "persistentVolumeClaim": { - "claimName": "srv-formulametadata" - } - }, - { - "name": "srv-pillar", - "persistentVolumeClaim": { - "claimName": "srv-pillar" - } - }, - { - "name": "srv-susemanager", - "persistentVolumeClaim": { - "claimName": "srv-susemanager" - } - }, - { - "name": "srv-spacewalk", - "persistentVolumeClaim": { - "claimName": "srv-spacewalk" - } - }, - { - "name": "ca-certs", - "persistentVolumeClaim": { - "claimName": "ca-certs" - } - }, - { - "name": "run-salt-master", - "persistentVolumeClaim": { - "claimName": "run-salt-master" - } - }, - { - "name": "etc-apache2", - "persistentVolumeClaim": { - "claimName": "etc-apache2" - } - }, - { - "name": "etc-systemd-multi", - "persistentVolumeClaim": { - "claimName": "etc-systemd-multi" - } - }, - { - "name": "etc-systemd-sockets", - "persistentVolumeClaim": { - "claimName": "etc-systemd-sockets" - } - }, - { - "name": "etc-salt", - "persistentVolumeClaim": { - "claimName": "etc-salt" - } - }, - { - "name": "etc-tomcat", - "persistentVolumeClaim": { - "claimName": "etc-tomcat" - } - }, - { - "name": "etc-cobbler", - "persistentVolumeClaim": { - "claimName": "etc-cobbler" - } - }, - { - "name": "etc-sysconfig", - "persistentVolumeClaim": { - "claimName": "etc-sysconfig" - } - }, - { - "name": "etc-postfix", - "persistentVolumeClaim": { - "claimName": "etc-postfix" - } - }, - { - "name": "etc-sssd", - "persistentVolumeClaim": { - "claimName": "etc-sssd" - } - }, - { - "name": "etc-rhn", - "persistentVolumeClaim": { - "claimName": "etc-rhn" - } - }, - { - "configMap": { - "defaultMode": 420, - "name": "uyuni-ca" - }, - "name": "ca-cert" - }, - { - "configMap": { - "defaultMode": 420, - "name": "db-ca" - }, - "name": "db-ca-cert" - }, - { - "name": "tls", - "secret": { - "defaultMode": 420, - "items": [ - { - "key": "tls.crt", - "path": "tls/certs/spacewalk.crt" - }, - { - "key": "tls.key", - "mode": 256, - "path": "tls/private/spacewalk.key" - } - ], - "secretName": "uyuni-cert" - } - }, - { - "emptyDir": { - "medium": "Memory", - "sizeLimit": "256Mi" - }, - "name": "run" - }, - { - "name": "sys-fs-cgroup", - "emptyDir": null - } - ] - } - } - } -} - state: present + apiVersion: apps/v1 + metadata: + labels: + app.kubernetes.io/component: server + app.kubernetes.io/part-of: uyuni + name: uyuni + namespace: '{{ uyuni_namespace }}' + spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/component: server + app.kubernetes.io/part-of: uyuni + strategy: + type: Recreate + template: + metadata: + labels: + app.kubernetes.io/component: server + app.kubernetes.io/part-of: uyuni + spec: + containers: + - env: + - name: container + value: oci + - name: TZ + value: Etc/UTC + - name: ADMIN_USER + valueFrom: + secretKeyRef: + key: username + name: admin-credentials + optional: false + - name: ADMIN_PASS + valueFrom: + secretKeyRef: + key: password + name: admin-credentials + optional: false + - name: MANAGER_USER + valueFrom: + secretKeyRef: + key: username + name: db-credentials + optional: false + - name: MANAGER_PASS + valueFrom: + secretKeyRef: + key: password + name: db-credentials + optional: false + - name: REPORT_DB_USER + valueFrom: + secretKeyRef: + key: username + name: reportdb-credentials + optional: false + - name: REPORT_DB_PASS + valueFrom: + secretKeyRef: + key: password + name: reportdb-credentials + optional: false + - name: MANAGER_DB_NAME + value: "{{ uyuni_helm_values['db.internal.name'] }}" + - name: MANAGER_DB_HOST + value: db + - name: MANAGER_DB_CA_CERT + value: /etc/pki/trust/anchors/DB-RHN-ORG-TRUSTED-SSL-CERT + - name: MANAGER_DB_PORT + value: '5432' + - name: EXTERNALDB_PROVIDER + - name: ISS_PARENT + - name: REPORT_DB_NAME + value: reportdb + - name: REPORT_DB_HOST + value: reportdb + - name: REPORT_DB_CA_CERT + value: /etc/pki/trust/anchors/DB-RHN-ORG-TRUSTED-SSL-CERT + - name: REPORT_DB_PORT + value: '5432' + - name: MANAGER_ADMIN_EMAIL + valueFrom: + configMapKeyRef: + key: email + name: uyuni-config + optional: false + - name: MANAGER_MAIL_FROM + valueFrom: + configMapKeyRef: + key: email + name: uyuni-config + optional: false + - name: UYUNI_HOSTNAME + valueFrom: + configMapKeyRef: + key: fqdn + name: uyuni-config + optional: false + image: registry.opensuse.org/uyuni/server:latest + imagePullPolicy: IfNotPresent + lifecycle: + preStop: + exec: + command: + - /bin/sh + - -c + - spacewalk-service stop + name: uyuni + securityContext: + capabilities: + add: + - SYS_ADMIN + seLinuxOptions: + level: s0 + ports: + - containerPort: 80 + - containerPort: 4505 + - containerPort: 4506 + - containerPort: 25151 + - containerPort: 9100 + - containerPort: 5556 + - containerPort: 5557 + - containerPort: 9187 + - containerPort: 9800 + startupProbe: + exec: + command: + - /usr/bin/startup-check.sh + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 3600 + livenessProbe: + exec: + command: + - /usr/bin/liveness-check.sh + timeoutSeconds: 5 + failureThreshold: 5 + periodSeconds: 60 + readinessProbe: + httpGet: + path: /rhn/manager/api/api/getVersion + port: 80 + scheme: HTTP + periodSeconds: 10 + successThreshold: 1 + initialDelaySeconds: 120 + volumeMounts: + - mountPath: /var/lib/cobbler + name: var-cobbler + - mountPath: /var/lib/rhn/search + name: var-search + - mountPath: /var/lib/salt + name: var-salt + - mountPath: /var/cache + name: var-cache + - mountPath: /var/spacewalk + name: var-spacewalk + - mountPath: /var/log + name: var-log + - mountPath: /srv/salt + name: srv-salt + - mountPath: /srv/www/ + name: srv-www + - mountPath: /srv/tftpboot + name: srv-tftpboot + - mountPath: /srv/formula_metadata + name: srv-formulametadata + - mountPath: /srv/pillar + name: srv-pillar + - mountPath: /srv/susemanager + name: srv-susemanager + - mountPath: /srv/spacewalk + name: srv-spacewalk + - mountPath: /etc/pki/trust/anchors/ + name: ca-certs + - mountPath: /run/salt/master + name: run-salt-master + - mountPath: /etc/apache2 + name: etc-apache2 + - mountPath: /etc/systemd/system/multi-user.target.wants + name: etc-systemd-multi + - mountPath: /etc/systemd/system/sockets.target.wants + name: etc-systemd-sockets + - mountPath: /etc/salt + name: etc-salt + - mountPath: /etc/tomcat + name: etc-tomcat + - mountPath: /etc/cobbler + name: etc-cobbler + - mountPath: /etc/sysconfig + name: etc-sysconfig + - mountPath: /etc/postfix + name: etc-postfix + - mountPath: /etc/sssd + name: etc-sssd + - mountPath: /etc/rhn + name: etc-rhn + - mountPath: /etc/pki/trust/anchors/LOCAL-RHN-ORG-TRUSTED-SSL-CERT + name: ca-cert + readOnly: true + subPath: ca.crt + - mountPath: /usr/share/susemanager/salt/certs/RHN-ORG-TRUSTED-SSL-CERT + name: ca-cert + readOnly: true + subPath: ca.crt + - mountPath: /srv/www/htdocs/pub/RHN-ORG-TRUSTED-SSL-CERT + name: ca-cert + readOnly: true + subPath: ca.crt + - mountPath: /etc/pki/trust/anchors/DB-RHN-ORG-TRUSTED-SSL-CERT + name: db-ca-cert + readOnly: true + subPath: ca.crt + - mountPath: /etc/pki/ + name: tls + - mountPath: /run + name: run + - mountPath: /sys/fs/cgroup + name: sys-fs-cgroup + initContainers: + - command: + - sh + - -x + - -c + - "# Fill the empty volumes\nfor vol in /var/lib/cobbler \\\n /var/lib/rhn/search \\\n /var/lib/salt \\\n /var/cache \\\n /var/log \\\n /srv/salt \\\n /srv/www\ + \ \\\n /srv/tftpboot \\\n /srv/formula_metadata \\\n /srv/pillar \\\n /srv/susemanager \\\n /srv/spacewalk \\\n /etc/apache2 \\\n /etc/rhn \\\n \ + \ /etc/systemd/system/multi-user.target.wants \\\n /etc/systemd/system/sockets.target.wants \\\n /etc/salt \\\n /etc/tomcat \\\n /etc/cobbler \\\n /etc/sysconfig\ + \ \\\n /etc/postfix \\\n /etc/sssd\ndo\n chown --reference=$vol /mnt$vol;\n chmod --reference=$vol /mnt$vol;\n if [ -z \"$(ls -A /mnt$vol)\" ]; then\n cp -a $vol/. /mnt$vol;\n\ + \ fi\ndone\n" + image: registry.opensuse.org/uyuni/server:latest + imagePullPolicy: IfNotPresent + name: init-volumes + securityContext: + seLinuxOptions: + level: s0 + volumeMounts: + - mountPath: /mnt/var/lib/cobbler + name: var-cobbler + - mountPath: /mnt/var/lib/rhn/search + name: var-search + - mountPath: /mnt/var/lib/salt + name: var-salt + - mountPath: /mnt/var/cache + name: var-cache + - mountPath: /mnt/var/spacewalk + name: var-spacewalk + - mountPath: /mnt/var/log + name: var-log + - mountPath: /mnt/srv/salt + name: srv-salt + - mountPath: /mnt/srv/www/ + name: srv-www + - mountPath: /mnt/srv/tftpboot + name: srv-tftpboot + - mountPath: /mnt/srv/formula_metadata + name: srv-formulametadata + - mountPath: /mnt/srv/pillar + name: srv-pillar + - mountPath: /mnt/srv/susemanager + name: srv-susemanager + - mountPath: /mnt/srv/spacewalk + name: srv-spacewalk + - mountPath: /mnt/etc/pki/trust/anchors/ + name: ca-certs + - mountPath: /mnt/run/salt/master + name: run-salt-master + - mountPath: /mnt/etc/apache2 + name: etc-apache2 + - mountPath: /mnt/etc/systemd/system/multi-user.target.wants + name: etc-systemd-multi + - mountPath: /mnt/etc/systemd/system/sockets.target.wants + name: etc-systemd-sockets + - mountPath: /mnt/etc/salt + name: etc-salt + - mountPath: /mnt/etc/tomcat + name: etc-tomcat + - mountPath: /mnt/etc/cobbler + name: etc-cobbler + - mountPath: /mnt/etc/sysconfig + name: etc-sysconfig + - mountPath: /mnt/etc/postfix + name: etc-postfix + - mountPath: /mnt/etc/sssd + name: etc-sssd + - mountPath: /mnt/etc/rhn + name: etc-rhn + - command: + - sh + - -c + - "until pg_isready -U $MANAGER_USER -h $MANAGER_DB_HOST -p $MANAGER_DB_PORT -d $MANAGER_DB_NAME; do\n sleep 60\ndone\n\nuntil pg_isready -U $REPORT_DB_USER -h $REPORT_DB_HOST -p $REPORT_DB_PORT\ + \ -d $REPORT_DB_NAME; do\n sleep 60\ndone\n" + env: + - name: MANAGER_DB_HOST + valueFrom: + configMapKeyRef: + key: db_host + name: uyuni-config + optional: false + - name: MANAGER_DB_PORT + valueFrom: + configMapKeyRef: + key: db_port + name: uyuni-config + optional: false + - name: MANAGER_DB_NAME + valueFrom: + configMapKeyRef: + key: db_name + name: uyuni-config + optional: false + - name: MANAGER_USER + valueFrom: + secretKeyRef: + key: username + name: db-credentials + optional: false + - name: REPORT_DB_HOST + valueFrom: + configMapKeyRef: + key: reportdb_host + name: uyuni-config + optional: false + - name: REPORT_DB_PORT + valueFrom: + configMapKeyRef: + key: reportdb_port + name: uyuni-config + optional: false + - name: REPORT_DB_NAME + valueFrom: + configMapKeyRef: + key: reportdb_name + name: uyuni-config + optional: false + - name: REPORT_DB_USER + valueFrom: + secretKeyRef: + key: username + name: reportdb-credentials + optional: false + image: registry.opensuse.org/uyuni/server:latest + imagePullPolicy: IfNotPresent + name: db-waiter + volumes: + - name: var-cobbler + persistentVolumeClaim: + claimName: var-cobbler + - name: var-search + persistentVolumeClaim: + claimName: var-search + - name: var-salt + persistentVolumeClaim: + claimName: var-salt + - name: var-cache + persistentVolumeClaim: + claimName: var-cache + - name: var-spacewalk + persistentVolumeClaim: + claimName: var-spacewalk + - name: var-log + persistentVolumeClaim: + claimName: var-log + - name: srv-salt + persistentVolumeClaim: + claimName: srv-salt + - name: srv-www + persistentVolumeClaim: + claimName: srv-www + - name: srv-tftpboot + persistentVolumeClaim: + claimName: srv-tftpboot + - name: srv-formulametadata + persistentVolumeClaim: + claimName: srv-formulametadata + - name: srv-pillar + persistentVolumeClaim: + claimName: srv-pillar + - name: srv-susemanager + persistentVolumeClaim: + claimName: srv-susemanager + - name: srv-spacewalk + persistentVolumeClaim: + claimName: srv-spacewalk + - name: ca-certs + persistentVolumeClaim: + claimName: ca-certs + - name: run-salt-master + persistentVolumeClaim: + claimName: run-salt-master + - name: etc-apache2 + persistentVolumeClaim: + claimName: etc-apache2 + - name: etc-systemd-multi + persistentVolumeClaim: + claimName: etc-systemd-multi + - name: etc-systemd-sockets + persistentVolumeClaim: + claimName: etc-systemd-sockets + - name: etc-salt + persistentVolumeClaim: + claimName: etc-salt + - name: etc-tomcat + persistentVolumeClaim: + claimName: etc-tomcat + - name: etc-cobbler + persistentVolumeClaim: + claimName: etc-cobbler + - name: etc-sysconfig + persistentVolumeClaim: + claimName: etc-sysconfig + - name: etc-postfix + persistentVolumeClaim: + claimName: etc-postfix + - name: etc-sssd + persistentVolumeClaim: + claimName: etc-sssd + - name: etc-rhn + persistentVolumeClaim: + claimName: etc-rhn + - configMap: + defaultMode: 420 + name: uyuni-ca + name: ca-cert + - configMap: + defaultMode: 420 + name: db-ca + name: db-ca-cert + - name: tls + secret: + defaultMode: 420 + items: + - key: tls.crt + path: tls/certs/spacewalk.crt + - key: tls.key + mode: 256 + path: tls/private/spacewalk.key + secretName: uyuni-cert + - emptyDir: + medium: Memory + sizeLimit: 256Mi + name: run + - name: sys-fs-cgroup + emptyDir: null + state: present # Ingresses - name: Ingress | uyuni-ingress-ssl @@ -2080,107 +1339,66 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "networking.k8s.io/v1", - "kind": "Ingress", - "metadata": { - "creationTimestamp": null, - "name": "uyuni-ingress-ssl", - "namespace": "{{ uyuni_namespace }}", - "annotations": { - "traefik.ingress.kubernetes.io/router.tls": "true", - "traefik.ingress.kubernetes.io/router.tls.domains.n.main": "{{ uyuni_helm_values.global.fqdn }}", - "traefik.ingress.kubernetes.io/router.entrypoints": "websecure", - "traefik.ingress.kubernetes.io/router.priority": "100", - "traefik.ingress.kubernetes.io/router.middlewares": "uyuni-server-uyuni-strip-prefixes@kubernetescrd" - }, - "labels": { - "app.kubernetes.io/part-of": "uyuni", - "app.kubernetes.io/component": "server" - } - }, - "spec": { - "ingressClassName": "traefik", - "tls": [ - { - "hosts": [ - "{{ uyuni_helm_values.global.fqdn }}" - ], - "secretName": "uyuni-cert" - } - ], - "rules": [ - { - "host": "{{ uyuni_helm_values.global.fqdn }}", - "http": { - "paths": [ - { - "path": "/postgresql-exporter", - "backend": { - "service": { - "name": "tomcat-internal", - "port": { - "number": 9187 - } - } - }, - "pathType": "Prefix" - }, - { - "path": "/node-exporter", - "backend": { - "service": { - "name": "tomcat-internal", - "port": { - "number": 9100 - } - } - }, - "pathType": "Prefix" - }, - { - "path": "/tasko-exporter", - "backend": { - "service": { - "name": "taskomatic-internal", - "port": { - "number": 9800 - } - } - }, - "pathType": "Prefix" - }, - { - "path": "/tasko-jmx", - "backend": { - "service": { - "name": "taskomatic-internal", - "port": { - "number": 5557 - } - } - }, - "pathType": "Prefix" - }, - { - "path": "/tomcat-jmx", - "backend": { - "service": { - "name": "tomcat-internal", - "port": { - "number": 5556 - } - } - }, - "pathType": "Prefix" - } - ] - } - } - ] - } -} - state: present + apiVersion: networking.k8s.io/v1 + metadata: + creationTimestamp: null + name: uyuni-ingress-ssl + namespace: '{{ uyuni_namespace }}' + annotations: + traefik.ingress.kubernetes.io/router.tls: 'true' + traefik.ingress.kubernetes.io/router.tls.domains.n.main: "{{ uyuni_helm_values['global.fqdn'] }}" + traefik.ingress.kubernetes.io/router.entrypoints: websecure + traefik.ingress.kubernetes.io/router.priority: '100' + traefik.ingress.kubernetes.io/router.middlewares: uyuni-server-uyuni-strip-prefixes@kubernetescrd + labels: + app.kubernetes.io/part-of: uyuni + app.kubernetes.io/component: server + spec: + ingressClassName: traefik + tls: + - hosts: + - "{{ uyuni_helm_values['global.fqdn'] }}" + secretName: uyuni-cert + rules: + - host: "{{ uyuni_helm_values['global.fqdn'] }}" + http: + paths: + - path: /postgresql-exporter + backend: + service: + name: tomcat-internal + port: + number: 9187 + pathType: Prefix + - path: /node-exporter + backend: + service: + name: tomcat-internal + port: + number: 9100 + pathType: Prefix + - path: /tasko-exporter + backend: + service: + name: taskomatic-internal + port: + number: 9800 + pathType: Prefix + - path: /tasko-jmx + backend: + service: + name: taskomatic-internal + port: + number: 5557 + pathType: Prefix + - path: /tomcat-jmx + backend: + service: + name: tomcat-internal + port: + number: 5556 + pathType: Prefix + state: present - name: Ingress | uyuni-ingress-ssl-redirect kubernetes.core.k8s: @@ -2190,49 +1408,32 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "networking.k8s.io/v1", - "kind": "Ingress", - "metadata": { - "creationTimestamp": null, - "name": "uyuni-ingress-ssl-redirect", - "namespace": "{{ uyuni_namespace }}", - "annotations": { - "traefik.ingress.kubernetes.io/router.middlewares": "uyuni-server-uyuni-https-redirect@kubernetescrd", - "traefik.ingress.kubernetes.io/router.entrypoints": "web", - "traefik.ingress.kubernetes.io/router.priority": "1" - }, - "labels": { - "app.kubernetes.io/part-of": "uyuni", - "app.kubernetes.io/component": "server" - } - }, - "spec": { - "ingressClassName": "traefik", - "rules": [ - { - "host": "{{ uyuni_helm_values.global.fqdn }}", - "http": { - "paths": [ - { - "backend": { - "service": { - "name": "web", - "port": { - "number": 80 - } - } - }, - "path": "/", - "pathType": "Prefix" - } - ] - } - } - ] - } -} - state: present + apiVersion: networking.k8s.io/v1 + metadata: + creationTimestamp: null + name: uyuni-ingress-ssl-redirect + namespace: '{{ uyuni_namespace }}' + annotations: + traefik.ingress.kubernetes.io/router.middlewares: uyuni-server-uyuni-https-redirect@kubernetescrd + traefik.ingress.kubernetes.io/router.entrypoints: web + traefik.ingress.kubernetes.io/router.priority: '1' + labels: + app.kubernetes.io/part-of: uyuni + app.kubernetes.io/component: server + spec: + ingressClassName: traefik + rules: + - host: "{{ uyuni_helm_values['global.fqdn'] }}" + http: + paths: + - backend: + service: + name: web + port: + number: 80 + path: / + pathType: Prefix + state: present - name: Ingress | uyuni-ingress-nossl kubernetes.core.k8s: @@ -2242,302 +1443,180 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "networking.k8s.io/v1", - "kind": "Ingress", - "metadata": { - "creationTimestamp": null, - "name": "uyuni-ingress-nossl", - "namespace": "{{ uyuni_namespace }}", - "annotations": { - "traefik.ingress.kubernetes.io/router.tls": "false", - "traefik.ingress.kubernetes.io/router.entrypoints": "web", - "traefik.ingress.kubernetes.io/router.priority": "100", - "traefik.ingress.kubernetes.io/router.middlewares": "uyuni-server-uyuni-strip-prefixes@kubernetescrd" - }, - "labels": { - "app.kubernetes.io/part-of": "uyuni", - "app.kubernetes.io/component": "server" - } - }, - "spec": { - "ingressClassName": "traefik", - "rules": [ - { - "host": "{{ uyuni_helm_values.global.fqdn }}", - "http": { - "paths": [ - { - "backend": { - "service": { - "name": "web", - "port": { - "number": 80 - } - } - }, - "path": "/pub", - "pathType": "Prefix" - }, - { - "backend": { - "service": { - "name": "web", - "port": { - "number": 80 - } - } - }, - "path": "/rhn/kickstart/DownloadFile", - "pathType": "Prefix" - }, - { - "backend": { - "service": { - "name": "web", - "port": { - "number": 80 - } - } - }, - "path": "/rhn/common/DownloadFile", - "pathType": "Prefix" - }, - { - "backend": { - "service": { - "name": "web", - "port": { - "number": 80 - } - } - }, - "path": "/rhn/rpc/api", - "pathType": "Prefix" - }, - { - "backend": { - "service": { - "name": "web", - "port": { - "number": 80 - } - } - }, - "path": "/rpc/api", - "pathType": "Prefix" - }, - { - "backend": { - "service": { - "name": "web", - "port": { - "number": 80 - } - } - }, - "path": "/rhn/errors", - "pathType": "Prefix" - }, - { - "backend": { - "service": { - "name": "web", - "port": { - "number": 80 - } - } - }, - "path": "/rhn/ty/TinyUrl", - "pathType": "Prefix" - }, - { - "backend": { - "service": { - "name": "web", - "port": { - "number": 80 - } - } - }, - "path": "/rhn/websocket", - "pathType": "Prefix" - }, - { - "backend": { - "service": { - "name": "web", - "port": { - "number": 80 - } - } - }, - "path": "/rhn/metrics", - "pathType": "Prefix" - }, - { - "backend": { - "service": { - "name": "web", - "port": { - "number": 80 - } - } - }, - "path": "/cobbler_api", - "pathType": "Prefix" - }, - { - "backend": { - "service": { - "name": "web", - "port": { - "number": 80 - } - } - }, - "path": "/cblr", - "pathType": "Prefix" - }, - { - "backend": { - "service": { - "name": "web", - "port": { - "number": 80 - } - } - }, - "path": "/httpboot", - "pathType": "Prefix" - }, - { - "backend": { - "service": { - "name": "web", - "port": { - "number": 80 - } - } - }, - "path": "/images", - "pathType": "Prefix" - }, - { - "backend": { - "service": { - "name": "web", - "port": { - "number": 80 - } - } - }, - "path": "/cobbler", - "pathType": "Prefix" - }, - { - "backend": { - "service": { - "name": "web", - "port": { - "number": 80 - } - } - }, - "path": "/os-images", - "pathType": "Prefix" - }, - { - "backend": { - "service": { - "name": "web", - "port": { - "number": 80 - } - } - }, - "path": "/tftp", - "pathType": "Prefix" - }, - { - "backend": { - "service": { - "name": "web", - "port": { - "number": 80 - } - } - }, - "path": "/docs", - "pathType": "Prefix" - }, - { - "path": "/postgresql-exporter", - "backend": { - "service": { - "name": "tomcat-internal", - "port": { - "number": 9187 - } - } - }, - "pathType": "Prefix" - }, - { - "path": "/node-exporter", - "backend": { - "service": { - "name": "tomcat-internal", - "port": { - "number": 9100 - } - } - }, - "pathType": "Prefix" - }, - { - "path": "/tasko-exporter", - "backend": { - "service": { - "name": "taskomatic-internal", - "port": { - "number": 9800 - } - } - }, - "pathType": "Prefix" - }, - { - "path": "/tasko-jmx", - "backend": { - "service": { - "name": "taskomatic-internal", - "port": { - "number": 5557 - } - } - }, - "pathType": "Prefix" - }, - { - "path": "/tomcat-jmx", - "backend": { - "service": { - "name": "tomcat-internal", - "port": { - "number": 5556 - } - } - }, - "pathType": "Prefix" - } - ] - } - } - ] - } -} - state: present + apiVersion: networking.k8s.io/v1 + metadata: + creationTimestamp: null + name: uyuni-ingress-nossl + namespace: '{{ uyuni_namespace }}' + annotations: + traefik.ingress.kubernetes.io/router.tls: 'false' + traefik.ingress.kubernetes.io/router.entrypoints: web + traefik.ingress.kubernetes.io/router.priority: '100' + traefik.ingress.kubernetes.io/router.middlewares: uyuni-server-uyuni-strip-prefixes@kubernetescrd + labels: + app.kubernetes.io/part-of: uyuni + app.kubernetes.io/component: server + spec: + ingressClassName: traefik + rules: + - host: "{{ uyuni_helm_values['global.fqdn'] }}" + http: + paths: + - backend: + service: + name: web + port: + number: 80 + path: /pub + pathType: Prefix + - backend: + service: + name: web + port: + number: 80 + path: /rhn/kickstart/DownloadFile + pathType: Prefix + - backend: + service: + name: web + port: + number: 80 + path: /rhn/common/DownloadFile + pathType: Prefix + - backend: + service: + name: web + port: + number: 80 + path: /rhn/rpc/api + pathType: Prefix + - backend: + service: + name: web + port: + number: 80 + path: /rpc/api + pathType: Prefix + - backend: + service: + name: web + port: + number: 80 + path: /rhn/errors + pathType: Prefix + - backend: + service: + name: web + port: + number: 80 + path: /rhn/ty/TinyUrl + pathType: Prefix + - backend: + service: + name: web + port: + number: 80 + path: /rhn/websocket + pathType: Prefix + - backend: + service: + name: web + port: + number: 80 + path: /rhn/metrics + pathType: Prefix + - backend: + service: + name: web + port: + number: 80 + path: /cobbler_api + pathType: Prefix + - backend: + service: + name: web + port: + number: 80 + path: /cblr + pathType: Prefix + - backend: + service: + name: web + port: + number: 80 + path: /httpboot + pathType: Prefix + - backend: + service: + name: web + port: + number: 80 + path: /images + pathType: Prefix + - backend: + service: + name: web + port: + number: 80 + path: /cobbler + pathType: Prefix + - backend: + service: + name: web + port: + number: 80 + path: /os-images + pathType: Prefix + - backend: + service: + name: web + port: + number: 80 + path: /tftp + pathType: Prefix + - backend: + service: + name: web + port: + number: 80 + path: /docs + pathType: Prefix + - path: /postgresql-exporter + backend: + service: + name: tomcat-internal + port: + number: 9187 + pathType: Prefix + - path: /node-exporter + backend: + service: + name: tomcat-internal + port: + number: 9100 + pathType: Prefix + - path: /tasko-exporter + backend: + service: + name: taskomatic-internal + port: + number: 9800 + pathType: Prefix + - path: /tasko-jmx + backend: + service: + name: taskomatic-internal + port: + number: 5557 + pathType: Prefix + - path: /tomcat-jmx + backend: + service: + name: tomcat-internal + port: + number: 5556 + pathType: Prefix + state: present # Traefik IngressRouteTCP - name: IngressRouteTCP | reportdb-pgsql-route @@ -2548,37 +1627,23 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "traefik.io/v1alpha1", - "kind": "IngressRouteTCP", - "metadata": { - "name": "reportdb-pgsql-route", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - }, - "annotations": { - "kubernetes.io/ingress.class": "traefik" - } - }, - "spec": { - "entryPoints": [ - "reportdb-pgsql" - ], - "routes": [ - { - "match": "HostSNI(`*`)", - "services": [ - { - "name": "reportdb", - "port": 5432 - } - ] - } - ] - } -} - state: present + apiVersion: traefik.io/v1alpha1 + metadata: + name: reportdb-pgsql-route + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + annotations: + kubernetes.io/ingress.class: traefik + spec: + entryPoints: + - reportdb-pgsql + routes: + - match: HostSNI(`*`) + services: + - name: reportdb + port: 5432 + state: present - name: IngressRouteTCP | salt-publish-route kubernetes.core.k8s: @@ -2588,37 +1653,23 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "traefik.io/v1alpha1", - "kind": "IngressRouteTCP", - "metadata": { - "name": "salt-publish-route", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - }, - "annotations": { - "kubernetes.io/ingress.class": "traefik" - } - }, - "spec": { - "entryPoints": [ - "salt-publish" - ], - "routes": [ - { - "match": "HostSNI(`*`)", - "services": [ - { - "name": "salt", - "port": 4505 - } - ] - } - ] - } -} - state: present + apiVersion: traefik.io/v1alpha1 + metadata: + name: salt-publish-route + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + annotations: + kubernetes.io/ingress.class: traefik + spec: + entryPoints: + - salt-publish + routes: + - match: HostSNI(`*`) + services: + - name: salt + port: 4505 + state: present - name: IngressRouteTCP | salt-request-route kubernetes.core.k8s: @@ -2628,37 +1679,23 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "traefik.io/v1alpha1", - "kind": "IngressRouteTCP", - "metadata": { - "name": "salt-request-route", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - }, - "annotations": { - "kubernetes.io/ingress.class": "traefik" - } - }, - "spec": { - "entryPoints": [ - "salt-request" - ], - "routes": [ - { - "match": "HostSNI(`*`)", - "services": [ - { - "name": "salt", - "port": 4506 - } - ] - } - ] - } -} - state: present + apiVersion: traefik.io/v1alpha1 + metadata: + name: salt-request-route + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + annotations: + kubernetes.io/ingress.class: traefik + spec: + entryPoints: + - salt-request + routes: + - match: HostSNI(`*`) + services: + - name: salt + port: 4506 + state: present # Traefik Middleware - name: Middleware | uyuni-https-redirect @@ -2669,24 +1706,17 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "traefik.io/v1alpha1", - "kind": "Middleware", - "metadata": { - "name": "uyuni-https-redirect", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "redirectScheme": { - "scheme": "https", - "permanent": true - } - } -} - state: present + apiVersion: traefik.io/v1alpha1 + metadata: + name: uyuni-https-redirect + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + redirectScheme: + scheme: https + permanent: true + state: present - name: Middleware | uyuni-strip-prefixes kubernetes.core.k8s: @@ -2696,28 +1726,19 @@ namespace: "{{ uyuni_namespace }}" kubeconfig: "{{ uyuni_kubeconfig }}" definition: -{ - "apiVersion": "traefik.io/v1alpha1", - "kind": "Middleware", - "metadata": { - "name": "uyuni-strip-prefixes", - "namespace": "{{ uyuni_namespace }}", - "labels": { - "app.kubernetes.io/part-of": "uyuni" - } - }, - "spec": { - "stripPrefix": { - "prefixes": [ - "/postgresql-exporter", - "/node-exporter", - "/tasko-exporter", - "/tasko-jmx", - "/tomcat-jmx", - "/saline" - ] - } - } -} - state: present - + apiVersion: traefik.io/v1alpha1 + metadata: + name: uyuni-strip-prefixes + namespace: '{{ uyuni_namespace }}' + labels: + app.kubernetes.io/part-of: uyuni + spec: + stripPrefix: + prefixes: + - /postgresql-exporter + - /node-exporter + - /tasko-exporter + - /tasko-jmx + - /tomcat-jmx + - /saline + state: present