Browse Source

initial commit

main
Nicolas Massé 5 years ago
commit
4f9eb3ddf8
  1. 7
      build/Dockerfile
  2. 6
      build/README.md
  3. 18
      build/build.sh
  4. 5
      build/index.html
  5. 11
      deploy/base/config.yaml
  6. 26
      deploy/base/deployment.yaml
  7. 8
      deploy/base/kustomization.yaml
  8. 14
      deploy/base/route.yaml
  9. 13
      deploy/base/service.yaml
  10. 11
      deploy/overlays/prod-dc1/config.yaml
  11. 8
      deploy/overlays/prod-dc1/kustomization.yaml
  12. 11
      deploy/overlays/prod-dc2/config.yaml
  13. 8
      deploy/overlays/prod-dc2/kustomization.yaml

7
build/Dockerfile

@ -0,0 +1,7 @@
FROM registry.access.redhat.com/ubi8/nginx-118
# Add application sources
ADD index.html .
# Run script uses standard ways to run the application
CMD nginx -g "daemon off;"

6
build/README.md

@ -0,0 +1,6 @@
# Build the application
```sh
podman login quay.io
./build.sh
```

18
build/build.sh

@ -0,0 +1,18 @@
#!/bin/sh
set -Eeuo pipefail
echo "Building the container image..."
podman build -t multi-cluster-app:latest .
echo "Running it..."
podman run -d --rm --name multi-cluster-app -p 8080:8080 multi-cluster-app:latest
trap "podman stop multi-cluster-app" EXIT
echo "Testing it..."
sleep 2
curl -s -o /dev/null -w "HTTP status code: %{http_code}\n" http://localhost:8080/
echo "Pushing to Quay.io..."
podman tag multi-cluster-app:latest quay.io/nmasse_itix/multi-cluster-app:latest
podman push quay.io/nmasse_itix/multi-cluster-app:latest

5
build/index.html

@ -0,0 +1,5 @@
<html>
<body>
<h1>DEFAULT</h1>
</body>
</html>

11
deploy/base/config.yaml

@ -0,0 +1,11 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: multi-cluster-config
data:
index.html: |
<html>
<body>
<h1>BASE</h1>
</body>
</html>

26
deploy/base/deployment.yaml

@ -0,0 +1,26 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: multi-cluster-app
spec:
replicas: 1
selector:
matchLabels:
app: multi-cluster-app
template:
metadata:
labels:
app: multi-cluster-app
spec:
containers:
- name: nginx
image: quay.io/nmasse_itix/multi-cluster-app:latest
ports:
- containerPort: 8080
volumeMounts:
- name: config
mountPath: /opt/app-root/src
volumes:
- name: config
configMap:
name: multi-cluster-config

8
deploy/base/kustomization.yaml

@ -0,0 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
- service.yaml
- config.yaml
- route.yaml

14
deploy/base/route.yaml

@ -0,0 +1,14 @@
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: multi-cluster-app
spec:
port:
targetPort: 8080
tls:
termination: edge
to:
kind: Service
name: multi-cluster-app
weight: 100
wildcardPolicy: None

13
deploy/base/service.yaml

@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: multi-cluster-app
labels:
app: multi-cluster-app
spec:
ports:
- port: 8080
protocol: TCP
targetPort: 8080
selector:
app: multi-cluster-app

11
deploy/overlays/prod-dc1/config.yaml

@ -0,0 +1,11 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: multi-cluster-config
data:
index.html: |
<html>
<body>
<h1>PROD-DC1</h1>
</body>
</html>

8
deploy/overlays/prod-dc1/kustomization.yaml

@ -0,0 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
bases:
- ../../base
patchesStrategicMerge:
- config.yaml

11
deploy/overlays/prod-dc2/config.yaml

@ -0,0 +1,11 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: multi-cluster-config
data:
index.html: |
<html>
<body>
<h1>PROD-DC2</h1>
</body>
</html>

8
deploy/overlays/prod-dc2/kustomization.yaml

@ -0,0 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
bases:
- ../../base
patchesStrategicMerge:
- config.yaml
Loading…
Cancel
Save