diff --git a/infrastructure/gitlab-runner/kustomization.yaml b/infrastructure/calico/kustomization.yaml similarity index 57% rename from infrastructure/gitlab-runner/kustomization.yaml rename to infrastructure/calico/kustomization.yaml index 5d1b88e8a2d9ca2c1fddd9f3294f835aabf0fe60..d9e0d9152f9a161e3303d26f1e69b6b28c85d956 100644 --- a/infrastructure/gitlab-runner/kustomization.yaml +++ b/infrastructure/calico/kustomization.yaml @@ -1,5 +1,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization -namespace: openshift-operators +namespace: default resources: - - subscription.yaml + - repository.yaml + - release.yaml diff --git a/infrastructure/calico/release.yaml b/infrastructure/calico/release.yaml new file mode 100644 index 0000000000000000000000000000000000000000..2b328d83322c50cb6fbe188c07ca0e3f39af009a --- /dev/null +++ b/infrastructure/calico/release.yaml @@ -0,0 +1,15 @@ +apiVersion: helm.toolkit.fluxcd.io/v2beta1 +kind: HelmRelease +metadata: + name: calico + namespace: default +spec: + releaseName: calico + chart: + spec: + chart: tigera-operator + sourceRef: + kind: HelmRepository + name: projectcalico + version: v3.20.1 + interval: 15m diff --git a/infrastructure/calico/repository.yaml b/infrastructure/calico/repository.yaml new file mode 100644 index 0000000000000000000000000000000000000000..65fde274e1e5484e2866847002acb341797f9e37 --- /dev/null +++ b/infrastructure/calico/repository.yaml @@ -0,0 +1,7 @@ +apiVersion: source.toolkit.fluxcd.io/v1beta1 +kind: HelmRepository +metadata: + name: projectcalico +spec: + interval: 30m + url: https://docs.projectcalico.org/charts diff --git a/infrastructure/cert-manager/kustomization.yaml b/infrastructure/cert-manager/kustomization.yaml index 5d1b88e8a2d9ca2c1fddd9f3294f835aabf0fe60..77c66d9c9fd9b5b4c4ea64ab34ce5cbe25e8df79 100644 --- a/infrastructure/cert-manager/kustomization.yaml +++ b/infrastructure/cert-manager/kustomization.yaml @@ -1,5 +1,7 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization -namespace: openshift-operators +namespace: cert-manager resources: - - subscription.yaml + - namespace.yaml + - repository.yaml + - release.yaml diff --git a/infrastructure/cert-manager/namespace.yaml b/infrastructure/cert-manager/namespace.yaml new file mode 100644 index 0000000000000000000000000000000000000000..237888c1ca123fa65dd33ec48825b910f6b13f19 --- /dev/null +++ b/infrastructure/cert-manager/namespace.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: cert-manager + labels: + name: cert-manager diff --git a/infrastructure/cert-manager/release.yaml b/infrastructure/cert-manager/release.yaml new file mode 100644 index 0000000000000000000000000000000000000000..52ad9e957d3055bbfc2339bc45712abf13382239 --- /dev/null +++ b/infrastructure/cert-manager/release.yaml @@ -0,0 +1,17 @@ +apiVersion: helm.toolkit.fluxcd.io/v2beta1 +kind: HelmRelease +metadata: + name: cert-manager + namespace: cert-manager +spec: + releaseName: cert-manager + chart: + spec: + chart: cert-manager + sourceRef: + kind: HelmRepository + name: jetstack + version: v1.5.3 + interval: 5m + values: + installCRDs: true diff --git a/infrastructure/cert-manager/repository.yaml b/infrastructure/cert-manager/repository.yaml new file mode 100644 index 0000000000000000000000000000000000000000..5d4b5e87724af73da61d42ff22ac38b1097f9299 --- /dev/null +++ b/infrastructure/cert-manager/repository.yaml @@ -0,0 +1,7 @@ +apiVersion: source.toolkit.fluxcd.io/v1beta1 +kind: HelmRepository +metadata: + name: jetstack +spec: + interval: 30m + url: https://charts.jetstack.io diff --git a/infrastructure/cert-manager/subscription.yaml b/infrastructure/cert-manager/subscription.yaml deleted file mode 100644 index 6244334b0f8fe7c118af0e14ab86a91756be5b01..0000000000000000000000000000000000000000 --- a/infrastructure/cert-manager/subscription.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: operators.coreos.com/v1alpha1 -kind: Subscription -metadata: - name: cert-manager - namespace: openshift-operators -spec: - channel: stable - name: cert-manager - source: community-operators - sourceNamespace: openshift-marketplace diff --git a/infrastructure/gitlab-runner/subscription.yaml b/infrastructure/gitlab-runner/subscription.yaml deleted file mode 100644 index 8c35063ed8fdd6a58dd93d2df5fc93bef6228b92..0000000000000000000000000000000000000000 --- a/infrastructure/gitlab-runner/subscription.yaml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: operators.coreos.com/v1alpha1 -kind: Subscription -metadata: - name: gitlab-runner-operator - namespace: openshift-operators -spec: - channel: stable - installPlanApproval: Automatic - name: gitlab-runner-operator - source: community-operators - sourceNamespace: openshift-marketplace diff --git a/infrastructure/hcloud-csi/hcloud-csi.yaml b/infrastructure/hcloud-csi/hcloud-csi.yaml deleted file mode 100644 index 9ec92d754679828146a2e4a42a7dda8fef06d937..0000000000000000000000000000000000000000 --- a/infrastructure/hcloud-csi/hcloud-csi.yaml +++ /dev/null @@ -1,341 +0,0 @@ ---- -apiVersion: storage.k8s.io/v1 -kind: CSIDriver -metadata: - name: csi.hetzner.cloud -spec: - attachRequired: true - podInfoOnMount: true - volumeLifecycleModes: - - Persistent ---- -kind: StorageClass -apiVersion: storage.k8s.io/v1 -metadata: - namespace: kube-system - name: hcloud-volumes -provisioner: csi.hetzner.cloud -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: hcloud-csi - namespace: kube-system ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: hcloud-csi -rules: - # attacher - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "update", "patch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["csi.storage.k8s.io"] - resources: ["csinodeinfos"] - verbs: ["get", "list", "watch"] - - apiGroups: ["storage.k8s.io"] - resources: ["csinodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["storage.k8s.io"] - resources: ["volumeattachments"] - verbs: ["get", "list", "watch", "update", "patch"] - # provisioner - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "create", "delete", "patch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims", "persistentvolumeclaims/status"] - verbs: ["get", "list", "watch", "update", "patch"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["list", "watch", "create", "update", "patch"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents"] - verbs: ["get", "list"] - # node - - apiGroups: [""] - resources: ["events"] - verbs: ["get", "list", "watch", "create", "update", "patch"] ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: hcloud-csi -subjects: - - kind: ServiceAccount - name: hcloud-csi - namespace: kube-system -roleRef: - kind: ClusterRole - name: hcloud-csi - apiGroup: rbac.authorization.k8s.io ---- -kind: StatefulSet -apiVersion: apps/v1 -metadata: - name: hcloud-csi-controller - namespace: kube-system -spec: - selector: - matchLabels: - app: hcloud-csi-controller - serviceName: hcloud-csi-controller - replicas: 1 - template: - metadata: - labels: - app: hcloud-csi-controller - spec: - serviceAccount: hcloud-csi - containers: - - name: csi-attacher - image: quay.io/k8scsi/csi-attacher:v2.2.0 - args: - - --csi-address=/var/lib/csi/sockets/pluginproxy/csi.sock - - --v=5 - volumeMounts: - - name: socket-dir - mountPath: /var/lib/csi/sockets/pluginproxy/ - securityContext: - privileged: true - capabilities: - add: ["SYS_ADMIN"] - allowPrivilegeEscalation: true - - name: csi-resizer - image: quay.io/k8scsi/csi-resizer:v0.3.0 - args: - - --csi-address=/var/lib/csi/sockets/pluginproxy/csi.sock - - --v=5 - volumeMounts: - - name: socket-dir - mountPath: /var/lib/csi/sockets/pluginproxy/ - securityContext: - privileged: true - capabilities: - add: ["SYS_ADMIN"] - allowPrivilegeEscalation: true - - name: csi-provisioner - image: quay.io/k8scsi/csi-provisioner:v1.6.0 - args: - - --provisioner=csi.hetzner.cloud - - --csi-address=/var/lib/csi/sockets/pluginproxy/csi.sock - - --feature-gates=Topology=true - - --v=5 - volumeMounts: - - name: socket-dir - mountPath: /var/lib/csi/sockets/pluginproxy/ - securityContext: - privileged: true - capabilities: - add: ["SYS_ADMIN"] - allowPrivilegeEscalation: true - - name: hcloud-csi-driver - image: image-registry.openshift-image-registry.svc:5000/kube-system/hcloud-csi-driver:latest - imagePullPolicy: Always - env: - - name: CSI_ENDPOINT - value: unix:///var/lib/csi/sockets/pluginproxy/csi.sock - - name: METRICS_ENDPOINT - value: 0.0.0.0:9189 - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - - name: HCLOUD_TOKEN - valueFrom: - secretKeyRef: - name: hcloud-csi - key: token - volumeMounts: - - name: socket-dir - mountPath: /var/lib/csi/sockets/pluginproxy/ - ports: - - containerPort: 9189 - name: metrics - - name: healthz - containerPort: 9808 - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 10 - timeoutSeconds: 3 - periodSeconds: 2 - securityContext: - privileged: true - capabilities: - add: ["SYS_ADMIN"] - allowPrivilegeEscalation: true - - name: liveness-probe - imagePullPolicy: Always - image: quay.io/k8scsi/livenessprobe:v1.1.0 - args: - - --csi-address=/var/lib/csi/sockets/pluginproxy/csi.sock - volumeMounts: - - mountPath: /var/lib/csi/sockets/pluginproxy/ - name: socket-dir - volumes: - - name: socket-dir - emptyDir: {} ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: hcloud-csi-node - namespace: kube-system - labels: - app: hcloud-csi -spec: - selector: - matchLabels: - app: hcloud-csi - template: - metadata: - labels: - app: hcloud-csi - spec: - tolerations: - - effect: NoExecute - operator: Exists - - effect: NoSchedule - operator: Exists - - key: CriticalAddonsOnly - operator: Exists - serviceAccount: hcloud-csi - hostNetwork: true - containers: - - name: csi-node-driver-registrar - image: quay.io/k8scsi/csi-node-driver-registrar:v1.3.0 - args: - - --v=5 - - --csi-address=/csi/csi.sock - - --kubelet-registration-path=/var/lib/kubelet/plugins/csi.hetzner.cloud/csi.sock - env: - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - volumeMounts: - - name: plugin-dir - mountPath: /csi - - name: registration-dir - mountPath: /registration - securityContext: - privileged: true - - name: hcloud-csi-driver - image: image-registry.openshift-image-registry.svc:5000/kube-system/hcloud-csi-driver:latest - imagePullPolicy: Always - env: - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: METRICS_ENDPOINT - value: 0.0.0.0:9189 - - name: HCLOUD_TOKEN - valueFrom: - secretKeyRef: - name: hcloud-csi - key: token - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - volumeMounts: - - name: kubelet-dir - mountPath: /var/lib/kubelet - mountPropagation: "Bidirectional" - - name: plugin-dir - mountPath: /csi - - name: device-dir - mountPath: /dev - securityContext: - privileged: true - ports: - - containerPort: 9189 - name: metrics - - name: healthz - containerPort: 9808 - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 10 - timeoutSeconds: 3 - periodSeconds: 2 - - name: liveness-probe - imagePullPolicy: Always - image: quay.io/k8scsi/livenessprobe:v1.1.0 - args: - - --csi-address=/csi/csi.sock - volumeMounts: - - mountPath: /csi - name: plugin-dir - volumes: - - name: kubelet-dir - hostPath: - path: /var/lib/kubelet - type: Directory - - name: plugin-dir - hostPath: - path: /var/lib/kubelet/plugins/csi.hetzner.cloud/ - type: DirectoryOrCreate - - name: registration-dir - hostPath: - path: /var/lib/kubelet/plugins_registry/ - type: Directory - - name: device-dir - hostPath: - path: /dev - type: Directory ---- -apiVersion: v1 -kind: Service -metadata: - name: hcloud-csi-controller-metrics - namespace: kube-system - labels: - app: hcloud-csi -spec: - selector: - app: hcloud-csi-controller - ports: - - port: 9189 - name: metrics - targetPort: metrics - ---- -apiVersion: v1 -kind: Service -metadata: - name: hcloud-csi-node-metrics - namespace: kube-system - labels: - app: hcloud-csi -spec: - selector: - app: hcloud-csi - ports: - - port: 9189 - name: metrics - targetPort: metrics diff --git a/infrastructure/hcloud-csi/imagestream.yaml b/infrastructure/hcloud-csi/imagestream.yaml deleted file mode 100644 index 568b62eef46a0f919e250c4ee2157b8cd0f8ea6b..0000000000000000000000000000000000000000 --- a/infrastructure/hcloud-csi/imagestream.yaml +++ /dev/null @@ -1,18 +0,0 @@ -kind: ImageStream -apiVersion: image.openshift.io/v1 -metadata: - name: hcloud-csi-driver - namespace: kube-system -spec: - lookupPolicy: - local: false - tags: - - name: latest - annotations: null - from: - kind: DockerImage - name: 'docker.io/hetznercloud/hcloud-csi-driver:latest' - importPolicy: - scheduled: true - referencePolicy: - type: Local diff --git a/infrastructure/hcloud-csi/kustomization.yaml b/infrastructure/hcloud-csi/kustomization.yaml index 79151fedc2d761d3b986c382d6106d3792cfdf6a..0f01ae8883aab0084d3cb2b70047df445634bbc8 100644 --- a/infrastructure/hcloud-csi/kustomization.yaml +++ b/infrastructure/hcloud-csi/kustomization.yaml @@ -1,5 +1,11 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- hcloud-csi.yaml -- imagestream.yaml +- https://git.shivering-isles.com/github-mirror/hetznercloud/csi-driver/-/raw/v1.6.0/deploy/kubernetes/hcloud-csi.yml +patchesJson6902: +- target: + group: "storage.k8s.io" + version: v1 + kind: StorageClass + name: hcloud-volumes + path: remove-default-annotation.yaml diff --git a/infrastructure/hcloud-csi/remove-default-annotation.yaml b/infrastructure/hcloud-csi/remove-default-annotation.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1122e8e5ebd693e296fecfc922a67669329093ad --- /dev/null +++ b/infrastructure/hcloud-csi/remove-default-annotation.yaml @@ -0,0 +1,2 @@ +- op: remove + path: metadata/annotations diff --git a/infrastructure/kustomization.yaml b/infrastructure/kustomization.yaml index 415fd47b1626d2441576cccc8ece67cb13b66999..7c8a91a11f34e72a333f3cc051a29b3d0641f778 100644 --- a/infrastructure/kustomization.yaml +++ b/infrastructure/kustomization.yaml @@ -1,11 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - sources + - calico + - kyverno - hcloud-csi - - cert-manager - - namespace-configuration - rook - - postgres - - openshift-monitoring - + - cert-manager diff --git a/infrastructure/kyverno/deny-network-policies.yaml b/infrastructure/kyverno/deny-network-policies.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d291ebcd8b2b061da87e19628d69fc973c282872 --- /dev/null +++ b/infrastructure/kyverno/deny-network-policies.yaml @@ -0,0 +1,20 @@ +apiVersion: kyverno.io/v1 +kind: ClusterPolicy +metadata: + name: deny-netpol-changes +spec: + validationFailureAction: enforce + background: false + rules: + - name: deny-netpol-changes + match: + resources: + kinds: + - NetworkPolicy + name: "*-managed" + exclude: + clusterRoles: + - cluster-admin + validate: + message: "Changing managed network policies is not allowed." + deny: {} diff --git a/infrastructure/kyverno/deny-system-namespaces.yaml b/infrastructure/kyverno/deny-system-namespaces.yaml new file mode 100644 index 0000000000000000000000000000000000000000..388ef889a4ef6d6e8e80c4f9f95c7f26a3c092da --- /dev/null +++ b/infrastructure/kyverno/deny-system-namespaces.yaml @@ -0,0 +1,20 @@ +apiVersion: kyverno.io/v1 +kind: ClusterPolicy +metadata: + name: deny-system-namespaces +spec: + validationFailureAction: enforce + background: false + rules: + - name: deny-system-namespaces + match: + resources: + kinds: + - Namespace + name: "*-system" + exclude: + clusterRoles: + - cluster-admin + validate: + message: "Creating *-system namespaces is not allowed." + deny: {} diff --git a/infrastructure/kyverno/kustomization.yaml b/infrastructure/kyverno/kustomization.yaml new file mode 100644 index 0000000000000000000000000000000000000000..55f9e4967c90b7374ffa0fb0eb0e640574e071fe --- /dev/null +++ b/infrastructure/kyverno/kustomization.yaml @@ -0,0 +1,9 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: kyverno +resources: + - namespace.yaml + - repository.yaml + - release.yaml + - deny-system-namespaces.yaml + - deny-network-policies.yaml diff --git a/infrastructure/kyverno/namespace.yaml b/infrastructure/kyverno/namespace.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e5d0650e5c7868a8dbef9b6d35a049086db3327f --- /dev/null +++ b/infrastructure/kyverno/namespace.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: kyverno + labels: + name: kyverno diff --git a/infrastructure/kyverno/release.yaml b/infrastructure/kyverno/release.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ec685cb2c184103e42197901b34dc255cb7527b6 --- /dev/null +++ b/infrastructure/kyverno/release.yaml @@ -0,0 +1,33 @@ +apiVersion: helm.toolkit.fluxcd.io/v2beta1 +kind: HelmRelease +metadata: + name: kyverno-crds + namespace: kyverno +spec: + releaseName: kyverno-crds + chart: + spec: + chart: kyverno-crds + sourceRef: + kind: HelmRepository + name: kyverno + version: v3.20.1 + interval: 5m +--- +apiVersion: helm.toolkit.fluxcd.io/v2beta1 +kind: HelmRelease +metadata: + name: kyverno + namespace: kyverno +spec: + releaseName: kyverno + chart: + spec: + chart: kyverno + sourceRef: + kind: HelmRepository + name: kyverno + version: v3.20.1 + interval: 5m + dependsOn: + - name: kyverno-crds diff --git a/infrastructure/kyverno/repository.yaml b/infrastructure/kyverno/repository.yaml new file mode 100644 index 0000000000000000000000000000000000000000..addd2fd4dbcc4b44618c0dcf8f6cdccce2da87df --- /dev/null +++ b/infrastructure/kyverno/repository.yaml @@ -0,0 +1,7 @@ +apiVersion: source.toolkit.fluxcd.io/v1beta1 +kind: HelmRepository +metadata: + name: kyverno +spec: + interval: 30m + url: https://kyverno.github.io/kyverno/ diff --git a/infrastructure/namespace-configuration/kustomization.yaml b/infrastructure/namespace-configuration/kustomization.yaml deleted file mode 100644 index 9b1683b8c5b458837e1f1e1e41a1748f0efc0ee6..0000000000000000000000000000000000000000 --- a/infrastructure/namespace-configuration/kustomization.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: namespace-configuration-operator -resources: -- namespace.yaml -- subscription.yaml -- network-policy.yaml diff --git a/infrastructure/namespace-configuration/namespace.yaml b/infrastructure/namespace-configuration/namespace.yaml deleted file mode 100644 index 756127dfa77148a6481e0e3ec1ef02f5d0d4d75b..0000000000000000000000000000000000000000 --- a/infrastructure/namespace-configuration/namespace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: namespace-configuration-operator - labels: - name: namespace-configuration-operator diff --git a/infrastructure/namespace-configuration/network-policy.yaml b/infrastructure/namespace-configuration/network-policy.yaml deleted file mode 100644 index 963ab704b4ceea23cc4f9813728564e256faf930..0000000000000000000000000000000000000000 --- a/infrastructure/namespace-configuration/network-policy.yaml +++ /dev/null @@ -1,52 +0,0 @@ -apiVersion: redhatcop.redhat.io/v1alpha1 -kind: NamespaceConfig -metadata: - name: default-networkpolicy -spec: - annotationSelector: - matchExpressions: - - operator: Exists - key: "openshift.io/requester" - templates: - - objectTemplate: | - apiVersion: networking.k8s.io/v1 - kind: NetworkPolicy - metadata: - name: allow-from-same-namespace - namespace: {{ .Name }} - spec: - podSelector: {} - ingress: - - from: - - podSelector: {} - - - objectTemplate: | - apiVersion: networking.k8s.io/v1 - kind: NetworkPolicy - metadata: - name: allow-from-openshift-ingress - namespace: {{ .Name }} - spec: - ingress: - - from: - - namespaceSelector: - matchLabels: - network.openshift.io/policy-group: ingress - podSelector: {} - policyTypes: - - Ingress - - objectTemplate: | - apiVersion: networking.k8s.io/v1 - kind: NetworkPolicy - metadata: - name: allow-from-openshift-monitoring - namespace: {{ .Name }} - spec: - ingress: - - from: - - namespaceSelector: - matchLabels: - network.openshift.io/policy-group: monitoring - podSelector: {} - policyTypes: - - Ingress diff --git a/infrastructure/namespace-configuration/subscription.yaml b/infrastructure/namespace-configuration/subscription.yaml deleted file mode 100644 index 43216076b6d144cdca18dc31e5904736ce7aee42..0000000000000000000000000000000000000000 --- a/infrastructure/namespace-configuration/subscription.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: operators.coreos.com/v1alpha1 -kind: Subscription -metadata: - name: namespace-configuration-operator - namespace: namespace-configuration-operator -spec: - channel: alpha - name: namespace-configuration-operator - source: community-operators - sourceNamespace: openshift-marketplace diff --git a/infrastructure/openshift-monitoring/cluster-monitoring-config.yaml b/infrastructure/openshift-monitoring/cluster-monitoring-config.yaml deleted file mode 100644 index ff58b988ea2479f7a3a3db6b0132b2f068524b61..0000000000000000000000000000000000000000 --- a/infrastructure/openshift-monitoring/cluster-monitoring-config.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: cluster-monitoring-config - namespace: openshift-monitoring -data: - config.yaml: | - enableUserWorkload: true - diff --git a/infrastructure/openshift-monitoring/kustomization.yaml b/infrastructure/openshift-monitoring/kustomization.yaml deleted file mode 100644 index be69e3732936c44c85112cefc5c783b25f6217e0..0000000000000000000000000000000000000000 --- a/infrastructure/openshift-monitoring/kustomization.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: openshift-monitoring -resources: - - cluster-monitoring-config.yaml diff --git a/infrastructure/postgres/release.yaml b/infrastructure/postgres/release.yaml index 36bce962d5ca3fb9827251990aac9548a266bf78..c47a95ed2740bc1b2ee1675ce01a3e2899fecac1 100644 --- a/infrastructure/postgres/release.yaml +++ b/infrastructure/postgres/release.yaml @@ -11,18 +11,10 @@ spec: sourceRef: kind: HelmRepository name: zalando-postgres-operator - namespace: flux-system valuesFiles: - values.yaml version: 1.6.3 interval: 5m values: - configGeneral: - kubernetes_use_configmaps: "true" - # Required due to OpenShift magic - securityContext: - runAsUser: null - readOnlyRootFilesystem: true - allowPrivilegeEscalation: false configKubernetes: enable_pod_antiaffinity: "true" diff --git a/infrastructure/sources/zalando-postgres.yaml b/infrastructure/postgres/repository.yaml similarity index 100% rename from infrastructure/sources/zalando-postgres.yaml rename to infrastructure/postgres/repository.yaml diff --git a/infrastructure/postgres/user-namespace-network-policy.yaml b/infrastructure/postgres/user-namespace-network-policy.yaml index c51b72587f3d6490258e060345547eb88fb017f0..fabc183d046bd7abf8e3f6197e7e6092bce9bc96 100644 --- a/infrastructure/postgres/user-namespace-network-policy.yaml +++ b/infrastructure/postgres/user-namespace-network-policy.yaml @@ -1,34 +1,42 @@ -apiVersion: redhatcop.redhat.io/v1alpha1 -kind: NamespaceConfig +apiVersion: kyverno.io/v1 +kind: ClusterPolicy metadata: - name: user-namespaces-network-policy-zalando-postgres + name: default spec: - annotationSelector: - matchExpressions: - - operator: Exists - key: "openshift.io/requester" - templates: - - objectTemplate: | - apiVersion: networking.k8s.io/v1 - kind: NetworkPolicy - metadata: - name: allow-from-zalando-postgres - namespace: {{ .Name }} - spec: - ingress: - - from: - - namespaceSelector: - matchLabels: - name: zalando-postgres - ports: - - port: 8008 - protocol: TCP - - port: 5432 - protocol: TCP - - port: 8080 - protocol: TCP - podSelector: - matchLabels: - application: spilo - policyTypes: - - Ingress + rules: + - name: allow-from-zalando-postgres + match: + resources: + kinds: + - Namespace + exclude: + resources: + namespaces: + - *-system + - default + - kube-public + - kyverno + generate: + apiVersion: networking.k8s.io/v1 + kind: NetworkPolicy + metadata: + name: allow-from-zalando-postgres-managed + namespace: "{{request.object.metadata.name}}" + spec: + ingress: + - from: + - namespaceSelector: + matchLabels: + name: zalando-postgres + ports: + - port: 8008 + protocol: TCP + - port: 5432 + protocol: TCP + - port: 8080 + protocol: TCP + podSelector: + matchLabels: + application: spilo + policyTypes: + - Ingress diff --git a/infrastructure/redis/kustomization.yaml b/infrastructure/redis/kustomization.yaml deleted file mode 100644 index 5d1b88e8a2d9ca2c1fddd9f3294f835aabf0fe60..0000000000000000000000000000000000000000 --- a/infrastructure/redis/kustomization.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: openshift-operators -resources: - - subscription.yaml diff --git a/infrastructure/redis/subscription.yaml b/infrastructure/redis/subscription.yaml deleted file mode 100644 index 890da9dcd518f86f987a3023add7f3eb83823410..0000000000000000000000000000000000000000 --- a/infrastructure/redis/subscription.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: operators.coreos.com/v1alpha1 -kind: Subscription -metadata: - name: redis-operator - namespace: openshift-operators -spec: - channel: stable - installPlanApproval: Automatic - name: redis-operator - source: community-operators diff --git a/infrastructure/rook/cluster-on-pvc.yaml b/infrastructure/rook/cluster-on-pvc.yaml index 5cc8d4316444615d4dd9d4bf136b3d87b86a0308..dccfc44075b90d06698b026264fa0ba26afdc8ef 100644 --- a/infrastructure/rook/cluster-on-pvc.yaml +++ b/infrastructure/rook/cluster-on-pvc.yaml @@ -33,7 +33,7 @@ spec: requests: storage: 10Gi cephVersion: - image: image-registry.openshift-image-registry.svc:5000/rook-ceph/ceph:v16.2.5 + image: quay.io/ceph/ceph:v16.2.5 allowUnsupported: false skipUpgradeChecks: false continueUpgradeAfterChecksEvenIfNotHealthy: false diff --git a/infrastructure/rook/imagestream.yaml b/infrastructure/rook/imagestream.yaml deleted file mode 100644 index fece0275775732c8d19bbabcf149ca5896fb9d78..0000000000000000000000000000000000000000 --- a/infrastructure/rook/imagestream.yaml +++ /dev/null @@ -1,18 +0,0 @@ -kind: ImageStream -apiVersion: image.openshift.io/v1 -metadata: - name: ceph - namespace: rook-ceph -spec: - lookupPolicy: - local: false - tags: - - name: v16.2.5 - annotations: null - from: - kind: DockerImage - name: 'quay.io/ceph/ceph:v16.2.5' - importPolicy: - scheduled: true - referencePolicy: - type: Local diff --git a/infrastructure/rook/kustomization.yaml b/infrastructure/rook/kustomization.yaml index 01dd686dcc09b5daf2dd06f749b7efbb302a9c93..a9494c8d7c36abf7fe5a3d481e9e938091c4f7fe 100644 --- a/infrastructure/rook/kustomization.yaml +++ b/infrastructure/rook/kustomization.yaml @@ -4,9 +4,8 @@ namespace: rook-ceph resources: - https://git.shivering-isles.com/github-mirror/rook/rook/-/raw/v1.7.1/cluster/examples/kubernetes/ceph/crds.yaml - https://git.shivering-isles.com/github-mirror/rook/rook/-/raw/v1.7.1/cluster/examples/kubernetes/ceph/common.yaml - - https://git.shivering-isles.com/github-mirror/rook/rook/-/raw/v1.7.1/cluster/examples/kubernetes/ceph/operator-openshift.yaml + - https://git.shivering-isles.com/github-mirror/rook/rook/-/raw/v1.7.1/cluster/examples/kubernetes/ceph/operator.yaml - https://git.shivering-isles.com/github-mirror/rook/rook/-/raw/v1.7.1/cluster/examples/kubernetes/ceph/csi/rbd/snapshotclass.yaml - - imagestream.yaml - cluster-on-pvc.yaml - storageclass.yaml - https://git.shivering-isles.com/github-mirror/rook/rook/-/raw/v1.7.1/cluster/examples/kubernetes/ceph/monitoring/service-monitor.yaml