From bb711d30147bea61cc7a0d56585b1b9184c3420f Mon Sep 17 00:00:00 2001 From: Ambrose Chua Date: Sat, 13 Jun 2020 16:53:34 +0800 Subject: [PATCH] Add web to deployment test --- build/drone.yml | 21 ++++++++ build/web/Dockerfile | 17 +++++++ cmd/web/templates.go | 2 +- deployments/experiments.yml | 99 +++++++++++++++++++++++++++++++++++++ go.sum | 1 + 5 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 build/web/Dockerfile create mode 100644 deployments/experiments.yml diff --git a/build/drone.yml b/build/drone.yml index ccf296e..9249a83 100644 --- a/build/drone.yml +++ b/build/drone.yml @@ -39,6 +39,27 @@ steps: when: branch: main +--- +kind: pipeline +type: docker +name: web + +steps: +- name: docker + image: plugins/docker + settings: + dockerfile: build/web/Dockerfile + registry: registry.makerforce.io + repo: registry.makerforce.io/photos/web + tags: + - dev + username: + from_secret: docker_username + password: + from_secret: docker_password + when: + branch: main + --- kind: pipeline type: docker diff --git a/build/web/Dockerfile b/build/web/Dockerfile new file mode 100644 index 0000000..291f6e3 --- /dev/null +++ b/build/web/Dockerfile @@ -0,0 +1,17 @@ +FROM golang:alpine AS build + +RUN mkdir /src /dist + +WORKDIR /src +COPY . ./ + +WORKDIR /src/cmd/web/ +ENV CGO_ENABLED=0 +RUN go build -o /dist/web + + +FROM scratch + +COPY --from=build /dist/web /web + +ENTRYPOINT ["/web"] diff --git a/cmd/web/templates.go b/cmd/web/templates.go index 1b105d1..b8c7b38 100644 --- a/cmd/web/templates.go +++ b/cmd/web/templates.go @@ -16,7 +16,7 @@ var funcs = template.FuncMap{ type IndexTemplateData struct { Assets string - Bucket string + Bucket lib.Bucket Metadata lib.BucketMetadata Photos []Photo } diff --git a/deployments/experiments.yml b/deployments/experiments.yml new file mode 100644 index 0000000..79249d8 --- /dev/null +++ b/deployments/experiments.yml @@ -0,0 +1,99 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: photos-proxy + labels: + app: photos-proxy +spec: + replicas: 1 + selector: + matchLabels: + app: photos-proxy + template: + metadata: + labels: + app: photos-proxy + spec: + containers: + - name: proxy + image: registry.makerforce.io/photos/proxy:dev + imagePullPolicy: Always + env: + - name: MINIO_ENDPOINT + value: api.ambrose.photos:9000 + - name: MINIO_DOMAIN + value: "" + - name: MINIO_ENDPOINT_SECURE + value: "false" + - name: BEHIND_PROXY + value: "false" + ports: + - containerPort: 80 + +--- +apiVersion: v1 +kind: Service +metadata: + name: photos-proxy +spec: + selector: + app: photos-proxy + ports: + - protocol: TCP + port: 80 + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: photos-web + labels: + app: photos-web +spec: + replicas: 1 + selector: + matchLabels: + app: photos-web + template: + metadata: + labels: + app: photos-web + spec: + containers: + - name: web + image: registry.makerforce.io/photos/web:dev + imagePullPolicy: Always + env: + - name: MINIO_ENDPOINT + value: api.ambrose.photos:9000 + - name: MINIO_DOMAIN + value: "" + - name: MINIO_ENDPOINT_SECURE + value: "false" + - name: MINIO_ACCESS_KEY + valueFrom: + secretKeyRef: + key: accesskey + name: minio + - name: MINIO_SECRET_KEY + valueFrom: + secretKeyRef: + key: secretkey + name: minio + - name: WEB_ENDPOINT + value: "http://web.ambrose.photos" + ports: + - containerPort: 8004 + +--- +apiVersion: v1 +kind: Service +metadata: + name: photos-web +spec: + selector: + app: photos-web + ports: + - protocol: TCP + port: 80 + targetPort: 8004 diff --git a/go.sum b/go.sum index f5abce1..364d455 100644 --- a/go.sum +++ b/go.sum @@ -65,6 +65,7 @@ golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=