commit 882fa06adcad69fa5900ac01d4c6553a8a1cb618 Author: Tomasz Torcz Date: Mon Dec 28 15:28:54 2020 +0100 qrgen: import qrgeneratora z pracy diff --git a/Containerfile b/Containerfile new file mode 100644 index 0000000..7b9c057 --- /dev/null +++ b/Containerfile @@ -0,0 +1,17 @@ +FROM artifactory.hcp.preprod.oneadr.net/docker-nordea-images-local/nordea-python-36-rhel7:1 + +# workaround for running yum in container +USER root + +RUN yum install --assumeyes \ + python-flask \ + python-flask-wtf \ + && yum clean all + +USER 1000 + +ADD /app /app + +WORKDIR /app + +CMD [ "/app/qrwebform.py" ] diff --git a/README.md b/README.md new file mode 100644 index 0000000..7f7d740 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ + +QR generator docker.io/samwierema/go-qr-generator + +flask app which post to itself + +One pod with two containers (fronted, backend) and two exposed ports. +One Service with with named ports. +Two Routes, with the same hostname, but routing based on path: / to fronted, /render to backend. +One NetworkPolicy allowing access to both ports. diff --git a/app/qrwebform.py b/app/qrwebform.py new file mode 100755 index 0000000..964a678 --- /dev/null +++ b/app/qrwebform.py @@ -0,0 +1,27 @@ +#!/usr/bin/python + +from flask import Flask, render_template, flash, request +from wtforms import Form, TextField + +DEBUG = False +app = Flask(__name__) +app.config.from_object(__name__) + +class ReusableForm(Form): + url = TextField("URL:") + + @app.route("/", methods=["GET", "POST"]) + def main(): + form = ReusableForm(request.form) + + if request.method == "POST": + target_url = request.form["url"] + else: + target_url = "https://qrgen.ap-opiate-app.test01.qaoneadr.local/" + + return render_template("main.html", form=form, target_url=target_url, genurl="https://qrgen.ap-opiate-app.test01.qaoneadr.local/render/") + +if __name__ == "__main__": + app.run(host='::') + + diff --git a/app/templates/main.html b/app/templates/main.html new file mode 100644 index 0000000..4030ed9 --- /dev/null +++ b/app/templates/main.html @@ -0,0 +1,29 @@ + + + QR generator + + + + + +
+
+

+

+
+ {{ form.url.label}} {{ form.url }}
+ +
+ + +

+ +
+ +

+


+ {{ target_url }} +
+

+
+ diff --git a/qrgen.yaml b/qrgen.yaml new file mode 100644 index 0000000..9b765ad --- /dev/null +++ b/qrgen.yaml @@ -0,0 +1,111 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: qrgen +spec: + replicas: 1 + selector: + matchLabels: + name: qrgen + template: + metadata: + labels: + name: qrgen + app.kubernetes.io/version: "002" + annotations: + source: "https://bitbucket.itgit.oneadr.net/users/m013403/repos/quick-qrcode-generator/browse" + spec: + containers: + - name: qrfrontend + image: docker-registry.default.svc:5000/devops-team/qrfrontend:002 + ports: + - containerPort: 5000 + resources: + requests: + cpu: 1m + memory: 10Mi + limits: + cpu: 500m + memory: 256Mi + - name: qrbackend + image: docker-registry.default.svc:5000/devops-team/samwierema-go-qr-generator + ports: + - containerPort: 8080 + resources: + requests: + cpu: 1m + memory: 10Mi + limits: + cpu: 500m + memory: 256Mi + + +--- +kind: Service +apiVersion: v1 +metadata: + name: qrgen +spec: + selector: + name: qrgen + ports: + - port: 5000 + name: frontend + targetPort: 5000 + protocol: TCP + - port: 8080 + name: backend + targetPort: 8080 + protocol: TCP + +--- +kind: Route +apiVersion: v1 +metadata: + name: qrfrontend +spec: + host: qrgen.ap-opiate-app.test01.qaoneadr.local + path: "/" + to: + kind: Service + name: qrgen + port: + targetPort: frontend + tls: + termination: edge + insecureEdgeTerminationPolicy: Redirect + +--- +kind: Route +apiVersion: v1 +metadata: + name: qrbackend +spec: + host: qrgen.ap-opiate-app.test01.qaoneadr.local + path: "/render" + to: + kind: Service + name: qrgen + port: + targetPort: backend + tls: + termination: edge + insecureEdgeTerminationPolicy: Redirect + + +--- +kind: NetworkPolicy +apiVersion: networking.k8s.io/v1 +metadata: + name: allowall-qrgen +spec: + podSelector: + matchLabels: + name: qrgen + ingress: + - ports: + - port: 5000 + - port: 8080 + from: [] +