Setup release process#30
Conversation
|
AFAIK current setup is copied from https://github.com/src-d/landing/ \cc @rporres for next steps |
There was a problem hiding this comment.
I only performed a high-level review, and saw that the changes made are only:
- removing not needed services: landingApi and slackin,
- renaming landing by code-annotation
what makes sense for code-annotation necessities.
I only spotted some inconsistencies regarding hostnames for staging, so in general LGTM
| tiller_ns: kube-system | ||
| wait: true | ||
| when: | ||
| event: [tag] No newline at end of file |
| build_stg: | ||
| image: golang:1.8-alpine3.6 | ||
| environment: | ||
| - REACT_APP_SERVER_URL="//code-annotation.srcd.run" |
There was a problem hiding this comment.
expected url would be //code-annotation-staging.srcd.run
same pattern than for: talks-staging.srcd.run, blog-staging.srcd.run, and landing-staging.srcd.run
https://github.com/src-d/guide/blob/master/engineering/continuous-delivery.md
| release: code-annotation | ||
| prefix: STG | ||
| secrets: [ STG_API_SERVER, STG_KUBERNETES_TOKEN ] | ||
| values: ingress.globalStaticIpName=code-annotation-staging,ingress.hostname=code-annotation.srcd.run,image.tag=commit-${DRONE_COMMIT_SHA:0:7} |
There was a problem hiding this comment.
expected ingress.hostname would be expected url would be code-annotation-staging.srcd.run
There was a problem hiding this comment.
sure if I change it, I'll change it everywhere
| group: docker | ||
| image: plugins/docker | ||
| registry: quay.io | ||
| repo: quay.io/srcd/code-annotation |
|
|
||
| # deployment to production environment | ||
|
|
||
| build_prod: |
rporres
left a comment
There was a problem hiding this comment.
Looks good. A couple of details to be addressed.
| ingress: | ||
| annotations: | ||
| kubernetes.io/ingress.class: gce | ||
| kubernetes.io/tls-acme: "true" |
There was a problem hiding this comment.
There was no way for you to know this, but we're moving away from kube-lego to handle Let's Encrypt certificates as it has given us some grief in the past and it's no longer under development. We're using kube-cert-manager. See https://github.com/src-d/docs/tree/master/helm-charts/docs
| pullPolicy: IfNotPresent | ||
| registry: docker.io/srcd | ||
| codeAnnotation: | ||
| name: code-annotation |
There was a problem hiding this comment.
Are you planning to have multiple images for this in the future? If not, this is not necessary. It was done that way in landing as deployment is composed of multiple containers. The standard way of declaring this is using image.repository and image.tag, e.g. https://github.com/src-d/docs/blob/master/helm-charts/docs/values.yaml#L6-L7 and https://github.com/src-d/docs/blob/master/helm-charts/docs/templates/deployment.yaml#L20
|
Addressed. PR waits for published docker image and cluster with ingress. |
|
@rporres I just updated PR. There are secrets are required now. And you can take image here: |
|
We have a problem with those secrets due to ipedrazas/drone-helm#52. The only workaround is for the chart to be able to accept a secret already deployed in the cluster. If you want to keep your chart flexible enough (which I think it is good) I would modify the chart to:
The above solution would only work if the existing secret structure is the same as the secret already present in the cluster, so that would also need be documented. I'm sorry that you've hit that nasty drone-helm bug |
|
Now that I'm back to work I will take a look into this |
|
ingress metadata is missing the line |
|
https://code-annotation-staging.srcd.run/ and https://code-annotation-staging.srcd.run/ work with the ingress fix above. Since we cannot force redirections in GCE ingress, it would be nice that the application did it |
|
I still have to configure drone, so please do not merge it |
|
|
rporres
left a comment
There was a problem hiding this comment.
Drone set up. Feel free to merge it.
Fixes: #8
TODO (need infra):