diff --git a/apps/okd4/kustomization.yaml b/apps/okd4/kustomization.yaml
index 892076d01b6c8b7629e58eb9397dfa75caa8cef2..98f2374359fb6070ee3d85b65503e3f38f44781e 100644
--- a/apps/okd4/kustomization.yaml
+++ b/apps/okd4/kustomization.yaml
@@ -2,3 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1
 kind: Kustomization
 resources:
   - shivering-isles/shields
+  - shivering-isles/blog
diff --git a/apps/okd4/shivering-isles/blog/cert.yaml b/apps/okd4/shivering-isles/blog/cert.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..a3a28fa2f16825f8418ed4a97c69cbf18d93be40
--- /dev/null
+++ b/apps/okd4/shivering-isles/blog/cert.yaml
@@ -0,0 +1,65 @@
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+    name: blog-tls
+    namespace: blog
+    labels:
+        app: blog
+spec:
+    dnsNames:
+        - ENC[AES256_GCM,data:c15WY9gndVVqp7zpK3XGS32GJQ==,iv:ozQgDOKaUIeImJ/oZt9XbSSYSgZhTx/LWFjBTUahgco=,tag:bs+K2pA3zIY57cgddgakRw==,type:str]
+    issuerRef:
+        name: letsencrypt
+        kind: ClusterIssuer
+    secretName: blog-tls
+sops:
+    kms: []
+    gcp_kms: []
+    azure_kv: []
+    hc_vault: []
+    age: []
+    lastmodified: "2021-08-17T23:39:25Z"
+    mac: ENC[AES256_GCM,data:S0AQlon/gBKN5cWwTG4zWmg0YDjkDEw4vFvV+lGiIRSr+11kqBjQIsw+oau5IYkoOVTJiU1yxas0eqrG7Cd6LhVkgysfZBBIKQiH61AkSPMGSOso0YX2nlUjK2ulvisTFiZKuHqUu128ad8vmQX35tRXW3HspTqUgnIVfTrXmqg=,iv:GsmoRFynkcUUz2LEFWJwcPLA/79Yq0GmidlhVtMOu3Q=,tag:h4ffoiYjqGBxVj6MmUrfJA==,type:str]
+    pgp:
+        - created_at: "2021-08-17T23:39:24Z"
+          enc: |
+            -----BEGIN PGP MESSAGE-----
+
+            hQIMA1u//sli4/n1AQ//bq+ugkVF7yTiz6Uz+KAnEo71O7td76LAFaOBqqoZF4l+
+            /R+gyXI7dS8vXDyzRN8NEPieyVCJNo2fHLqZ+jnCzdLlouoj7eAE0vIo4PG9XhVX
+            3EFYxS/aEMCZZm3eT/R7z+XktUw89gHP9j5kgha3wupDoeGJmY3g2JDA4tiEV9he
+            W479PVAOjvKSY50VCxOPmNC0+Go7PhYbFFUkjESDms42AmXFlYYLXvmwVUOo4tZs
+            XuehRrZKlWkPEFRouNtViWybOSF8c8a+VUYffab+2dZ5lhiOKJ5Dvq0y1bDlQRv0
+            IELUTL3ETj3hNslUzsyb68w04pnhhxdGjzUd2ElGiNKNmTSBPWcXFZjQydeqPKzU
+            rsfod9IgnmcsZsQ0uq3adNeWtn9OC0IrVVupF6J4f81PpyCXjD0uyOXA7u+SVsZN
+            zLx++Js2qdFYvRWvsqZceSZ2Ue2r8gLXRHHL8MRU/qU2rqi1+q+e2w70v92E2bBe
+            YGYU32ht3GolhZUBd9k+zGin4JpUo8bpa5DTWE3UqHZtZ3oOgWkzZRMci/7R4o0X
+            zDuBI2hHLIMfVXidlwAe1nsHjdNbSH/TeKAbyiP5+1EptdScFOUgUTuZSEWSMiEZ
+            YFx7e3ZIwkUlFV3APmWkN6NwwHPiSfwUJsIkGhWlOx+tRfQeggFxAGKePGqh5ILS
+            XgGo1VM16uIS2pffW5SA981rh/bJsZjf9qI6+o0wpP11ePHcibOSiSU6tjw1tvxG
+            w8N+J8DhKnr7IqM3oV6zJv3Mh+imrEOgO7hTqmU8j7eUgLnjv6qolr3/sOie9wY=
+            =LAPa
+            -----END PGP MESSAGE-----
+          fp: 9D02A9AD73EF7F3D5F657AC2B392F6EB325E8C50
+        - created_at: "2021-08-17T23:39:24Z"
+          enc: |-
+            -----BEGIN PGP MESSAGE-----
+
+            wcFMA7kpg2bgzVHcARAAk6pat1ziOrQtuPnS+aSQEeDjUzRvk0CiRn28pubabrEh
+            lJlW/kYjJA0vEq2zIthHZfGeG1W74NsIPbm9l77+++E88k2VWXeYaHjRMQDCMIPD
+            HcbZqYiiIcWBhE9DAv7QTX8eCTNHmvU6exq3ScYSCLr1rGK2bM/iQsxa57nxwu06
+            yjin1U1KmgwtIXxj74au6UgYGYD3DgDvPGigpKjKFjNL2JMdH39wWT8r8H/GktE3
+            Wws+XBPSuRXqt9CA0v+vVDGZEEJXjWhTSxpfKCC1zKwJMdDkfr8Tqjvc6mVia6WZ
+            qqUpohFXQ+sem87CKGz6NuVcV7sAq2r54ePY5WaoQLg64uYh3FGlGGvdRJuNy1Y3
+            fAX8vY5tC+GhiTU83RSKX61rX2iBisCmQa7MI8Hjx1YRSz2KFsEZbVahC74Tj3/J
+            zSv+3WXFPj4XTY30WVvExIODDfX9oIcMCDySj8eUlIp6Jg3LNvgzKhUlZyeW4YUf
+            778AC3Zf9J4Okn/Z1GqIwI7cBEsrBC7NxulxmQiYWHxO/zaHQeEAMQjsnX4/X+dS
+            ur2GuRXVYpnB1KKUI/VoOxcAlWQs6cqMtHCPgqieHP2/u9uiOxKdQCbW+iOfdlwL
+            UuEMd+F589UyVMxPWdTK9DNXZ8VU0LdEToBKBaF4z8YjDMPleiotLKzi+Z5KP8TS
+            5gEn+5dHsICnKYF1O7O44bdLwvZj9OPguE1/ixvzJEfV/LxIpp34aSpEH3FQVkdC
+            /6OqUU3kgtHdGzNKBxxU9uXkVz3Ndh+v0h49+DcVamYc6+LEn3BKAA==
+            =CrqE
+            -----END PGP MESSAGE-----
+          fp: 286791FB6648539775DB31B8FCB98C2A3EC6F601
+    encrypted_regex: ^(data|stringData|email|dnsZones?|dnsNames?|hosts?|tang)$
+    version: 3.7.1
diff --git a/apps/okd4/shivering-isles/blog/deploymentconfig.yaml b/apps/okd4/shivering-isles/blog/deploymentconfig.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..c7e032eda33fc28a9f4b83ceb57ce9d3599a52c5
--- /dev/null
+++ b/apps/okd4/shivering-isles/blog/deploymentconfig.yaml
@@ -0,0 +1,68 @@
+apiVersion: apps.openshift.io/v1
+kind: DeploymentConfig
+metadata:
+  labels:
+    app: blog
+  name: blog
+  namespace: blog
+spec:
+  replicas: 1
+  selector:
+    app: blog
+    deploymentconfig: blog
+  strategy:
+    resources:
+      requests:
+        memory: 8Mi
+      limits:
+        memory: 64Mi
+    type: Rolling
+  template:
+    metadata:
+      labels:
+        app: blog
+        deploymentconfig: blog
+    spec:
+      containers:
+      - name: blog
+        image: quay.io/shivering-isles/blog:latest
+        imagePullPolicy: Always
+        ports:
+        - name: http
+          containerPort: 8080
+          protocol: TCP
+        resources:
+          requests:
+            memory: 16Mi
+          limits:
+            memory: 64Mi
+        livenessProbe:
+          failureThreshold: 3
+          httpGet:
+            path: /status.txt
+            port: http
+            scheme: HTTP
+          periodSeconds: 10
+          successThreshold: 1
+          timeoutSeconds: 1
+        startupProbe:
+          failureThreshold: 3
+          httpGet:
+            path: /status.txt
+            port: http
+            scheme: HTTP
+          periodSeconds: 10
+          successThreshold: 1
+          timeoutSeconds: 1
+  test: false
+  triggers:
+  - type: ConfigChange
+  - imageChangeParams:
+      automatic: true
+      containerNames:
+      - blog
+      from:
+        kind: ImageStreamTag
+        name: blog:latest
+        namespace: blog
+    type: ImageChange
diff --git a/apps/okd4/shivering-isles/blog/imagestream.yaml b/apps/okd4/shivering-isles/blog/imagestream.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..d8e277b32960545e4185efd657370d7ca71b9796
--- /dev/null
+++ b/apps/okd4/shivering-isles/blog/imagestream.yaml
@@ -0,0 +1,21 @@
+apiVersion: image.openshift.io/v1
+kind: ImageStream
+metadata:
+  name: blog
+  namespace: blog
+  labels:
+    app: blog
+spec:
+  lookupPolicy:
+    local: true
+  tags:
+  - annotations:
+      openshift.io/imported-from: quay.io/shivering-isles/blog:latest
+    from:
+      kind: DockerImage
+      name: quay.io/shivering-isles/blog:latest
+    importPolicy:
+      scheduled: true
+    name: latest
+    referencePolicy:
+      type: Local
diff --git a/apps/okd4/shivering-isles/blog/ingress.yaml b/apps/okd4/shivering-isles/blog/ingress.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..060176bc25cb6fb717b3d3be85d6e4f9e8e55b3b
--- /dev/null
+++ b/apps/okd4/shivering-isles/blog/ingress.yaml
@@ -0,0 +1,74 @@
+kind: Ingress
+apiVersion: networking.k8s.io/v1beta1
+metadata:
+    name: shields
+    namespace: shields
+    annotations:
+        haproxy.router.openshift.io/hsts_header: max-age=31536000
+    labels:
+        app: blog
+spec:
+    tls:
+        - hosts:
+            - ENC[AES256_GCM,data:sxz6mH9KO86HBfNOYkiyGIkT5g==,iv:XZRTYKrIRlanTKWsyOn1ZpYkNeBdqIyF8mfLh/JXCm4=,tag:IslVb+PYINQcspsJ0Srgqw==,type:str]
+          secretName: blog-tls
+    rules:
+        - host: ENC[AES256_GCM,data:WCTDIXwanZvE27qflO+GoLaEwQ==,iv:6ZifY7e85cawa3dvVIb1z0Y10z4Q6/PDXKJWarBXLf4=,tag:+KShXuByx+U8aTsKgnmnqw==,type:str]
+          http:
+            paths:
+                - path: /
+                  pathType: ImplementationSpecific
+                  backend:
+                    serviceName: blog
+                    servicePort: 80
+sops:
+    kms: []
+    gcp_kms: []
+    azure_kv: []
+    hc_vault: []
+    age: []
+    lastmodified: "2021-08-17T23:39:49Z"
+    mac: ENC[AES256_GCM,data:IBMl+e63x4ilhAHMgEKDG45Ev5mdhG1aGUQJO6urLk00xG+IG7u8EU8EjEIJkxFltAvn1SV47wBPJQzN38zrKVY9iWmagxw+FOMI3+i2w1Vivd9aL/1Ctn/TnMAPx1o7AvdMuR3gjBeJN+r648o/AYy24OeFqhXSL53JQKJtNAg=,iv:6R4/+62K0ET0PKt/GHlPJCInNk7GxHsH2pUYZ1PErto=,tag:gPvkglsefRSjz19MbvjJ3A==,type:str]
+    pgp:
+        - created_at: "2021-08-17T23:39:48Z"
+          enc: |
+            -----BEGIN PGP MESSAGE-----
+
+            hQIMA1u//sli4/n1ARAAnTBOIYu0dU9AzaWTnUSH9jd/0WhnZ7jx0PMWvUIly0se
+            JvYU1a56AtSl9EC+wzyL3kogvyMUaeaClpoYj1U9Nku+pZd3YgCGo43OlsB8Qp5+
+            5hCjvDvCnJMEofJ3HwtbemnUr8qnK7KEz7rWeB31sFQi+cAr65ZyBeaM3Gjr0Mb9
+            /mLL7OEVQWOd1IfKd+BxeUKbAPbEEYoLkpo5A0BBNEMwQbcZ0z8W32MIy3dJvcKc
+            0tT74oqAFxAtD2OhJAKGNt7du+LTKkB9hQWq8G9MuRRNMvZg7sDtD1zMARTFHof8
+            4zOaL8hM8XqDohXGqrjt3c1uFtqbmEGTwx4S510m/KnqOVj/BRVZZY6vPzHgSghR
+            /ZPSc+P/mL5cmUAcRmWCwVZUWlaNDp4lzIs17gYo+BL7WJafNnkhsju8k2baRY/Y
+            PdIk0uoTwxyftoCzOCSKeg0wkQF6wn3RejfYrPxHpCRNEaWhVTI+6AhLWDYlbeP3
+            ECkvjqgNcHwynRvNTGfGEsAMNDd8PUf3FwPHrLe19PXoCtcUvsy/m8DRuI1v2aDg
+            rkzqPBPpLKoBZNpWV7dw+L8Y5T7YMB4Fe5mYQUZupmJUwSRnXo25M4rQLpdibMmr
+            eQiAtJsuhvkF9BBcN2Peq8uJ/mO0mTF8KDS1F6J120lCrWmEzHnzSH/lS++l20bS
+            XgEWGdwkW9WIIiDz2e0QYL197PSFS8OX5/EovGs2z6iIiivyQtXbiwq47giuK9L8
+            0FsrNjSuphH89+MD5p5a0pIhnxW1aVNWLl64YIzY9KdTrfAiVidDmeKHJO6pjG0=
+            =M/mx
+            -----END PGP MESSAGE-----
+          fp: 9D02A9AD73EF7F3D5F657AC2B392F6EB325E8C50
+        - created_at: "2021-08-17T23:39:48Z"
+          enc: |-
+            -----BEGIN PGP MESSAGE-----
+
+            wcFMA7kpg2bgzVHcARAAHe+cuzJPfBW5dEHYvSBsKP8MdoNlmAvyXyjs5R4Wsc9H
+            CiH5xLIQPu9h4Nwcd1BhnvKKnDoSe7Yl1HYgcu+MUf9MGig6aSoH6Ety12Cbo0uO
+            kn6gZe3yilK4FQo6a4ra867i0KD9HlDJJOtCfI7r5qkOlMsoMJ61zl6RPK454Qxc
+            ojjpUWd7dmoA26g1Qy3JH6C3dy0blsKdZtfsSZHs3JgVgHo3JivgGOEx4FDijcgz
+            nF0bucJHqZ/p/pAiUcc0+PYYSBxJhn+47LWRrB1VaARLscPiCKEsNb2ghEJg1Ep/
+            bBSA6cerTvN5+KreSaoxFktdf2JKZYFZVCj2iQdJZsN7Z94m+Ddesl2eHsBkUKzd
+            hHerzull++zYl5DJjmHxKN8P+OQrfi5vcKCvHnfq5DQ4lfZLssFEl6OTlid/EG/4
+            iwpkpQzJFz8KY22LhN0Tf4TFyD5IQlY3PHYOPG75pz78zcgI+Acr5O5sF01TOEmx
+            nlGjUSP11Tl3mpFBLgM1iPDqSqvZGq7IRQbNrJnN69oJrRsTAjrf+FD0xOa2ZPHf
+            FImDQsJRqIa8yB4bZE+sknwzbTRrIs/p5ZqhWbQhc7+5sollYKKVLlZ22fvWI5HP
+            I7ewnZtLGASPTtT8bC1WbgZMdOwdzfLyEXk80IJ+NXtcCuz/JVHwSyrDgAGfksvS
+            5gHbPgvqLgqCMd0r0lMU0rBCZWvSXkZnphhadD67YJETqdkAy6ns4VB2IG/RMvg/
+            yctt91/N9DY4REYSWEFxO0LkZT3wfgYzU6+eXpEZ7TM6k+I0tlD3AA==
+            =kJAq
+            -----END PGP MESSAGE-----
+          fp: 286791FB6648539775DB31B8FCB98C2A3EC6F601
+    encrypted_regex: ^(data|stringData|email|dnsZones?|dnsNames?|hosts?|tang)$
+    version: 3.7.1
diff --git a/apps/okd4/shivering-isles/blog/kustomization.yaml b/apps/okd4/shivering-isles/blog/kustomization.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..1a9eca766fa757d3ce77b493fadb7cc327b075de
--- /dev/null
+++ b/apps/okd4/shivering-isles/blog/kustomization.yaml
@@ -0,0 +1,9 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+resources:
+- setup.yaml
+- imagestream.yaml
+- deploymentconfig.yaml
+- cert.yaml
+- service.yaml
+- ingress.yaml
diff --git a/apps/okd4/shivering-isles/blog/service.yaml b/apps/okd4/shivering-isles/blog/service.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f092356e283ba6594e8243d5328b127b0821a3c2
--- /dev/null
+++ b/apps/okd4/shivering-isles/blog/service.yaml
@@ -0,0 +1,17 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: blog
+  namespace: blog
+  labels:
+    app: blog
+spec:
+  ports:
+  - name: http
+    port: 80
+    protocol: TCP
+    targetPort: http
+  selector:
+    app: blog
+    deploymentconfig: blog
+  type: ClusterIP
diff --git a/apps/okd4/shivering-isles/blog/setup.yaml b/apps/okd4/shivering-isles/blog/setup.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..9e28db8a0a05c795d8b4ac7d21ea7026d13da21f
--- /dev/null
+++ b/apps/okd4/shivering-isles/blog/setup.yaml
@@ -0,0 +1,36 @@
+apiVersion: v1
+kind: Namespace
+metadata:
+  name: blog
+  annotations:
+    openshift.io/requester: sheogorath
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: blog-reconciler
+  namespace: blog
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+  name: blog-reconciler
+  namespace: blog
+rules:
+  - apiGroups: ["*"]
+    resources: ["*"]
+    verbs: ["*"]
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+  name: blog-reconciler
+  namespace: blog
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: Role
+  name: blog-reconciler
+subjects:
+  - kind: ServiceAccount
+    name: blog-reconciler
+    namespace: blog