Skip to content

Commit

Permalink
feat(deploy): added k8s manifest files for API
Browse files Browse the repository at this point in the history
  • Loading branch information
xmlking committed Mar 14, 2019
1 parent 29cbb89 commit 324d3c1
Show file tree
Hide file tree
Showing 9 changed files with 219 additions and 169 deletions.
40 changes: 21 additions & 19 deletions .deploy/api/README.md
@@ -1,17 +1,17 @@
API
===
Deploying ngx-starter-kit API
Deploying NGX API

### Build
```bash
# build app docker image
docker build --tag=ngx-starter-kit-api -f .deploy/api/Dockerfile .
docker build --tag=ngxapi -f .deploy/api/Dockerfile .
```

### Run
```bash
docker-compose up api
# docker run -it --env TYPEORM_HOST=postgres -p 3000:3000 ngx-starter-kit-api
# docker run -it --env TYPEORM_HOST=postgres -p 3000:3000 ngxapi
# to see ditectory content:
docker-compose exec api ./node
docker-compose exec api ./node -e 'console.log(__dirname);'
Expand All @@ -25,7 +25,7 @@ docker-compose exec api ./node -e 'const fs = require('fs'); fs.readdirSync('.')
```bash
# test
curl -v -X GET \
http://localhost:3000/myapi/tenant \
http://localhost:3000/api \
| jq .
```
Expand All @@ -38,49 +38,51 @@ curl -v -X GET \
docker login
# tag
docker tag ngx-starter-kit-api xmlking/ngx-starter-kit-api:1.2.0-SNAPSHOT
docker tag xmlking/ngx-starter-kit-api:1.2.0-SNAPSHOT xmlking/ngx-starter-kit-api:latest
docker tag ngxapi xmlking/ngxapi:1.2.0-SNAPSHOT
docker tag xmlking/ngxapi:1.2.0-SNAPSHOT xmlking/ngxapi:latest
# push
docker push xmlking/ngx-starter-kit-api:1.2.0-SNAPSHOT
docker push xmlking/ngx-starter-kit-api:latest
docker push xmlking/ngxapi:1.2.0-SNAPSHOT
docker push xmlking/ngxapi:latest
```
#### OpenShift Deployment
> Deploy ngx-starter-kit-api to OpenShift
> Deploy ngxapi to OpenShift
```bash
# login
oc login <my OpenShift URL>
# oc login https://console.starter-us-east-1.openshift.com
oc project ngx-starter-kit
cd .deploy/api
oc project ngx
cd .deploy/api/openshift
# create app (first time deployment)
oc new-app -f api.tmpl.yml -p APPNAME=ngx-starter-kit-api -n ngx-starter-kit
oc new-app -f api.tmpl.yml -p APPNAME=ngxapi -n ngx
# follow next steps if you want completely delete and redeploy.
# delete only deploymentConfig
oc delete all -l app=ngx-starter-kit-api -n ngx-starter-kit
oc delete all -l app=ngxapi -n ngx
# delete fully
oc delete all,configmap,secret -l app=ngx-starter-kit-api -n ngx-starter-kit
oc delete all,configmap,secret -l app=ngxapi -n ngx
# redeploy
# From OpenShift Console UI
Applications > Deployments > ngx-starter-kit > Deploy
Applications > Deployments > ngxapi > Deploy
```
#### Kubernetes Deployment
> assume you already setup `ngx-starter-kit` context
> assume you already setup `ngx` context
> make sure `Env`, docker image `Version` are correct in `api.yml`
> make sure `Env`, docker image `Version` are correct in `04-ngxapi-deployment.yaml`
```bash
cd .deploy/api/manual
## view all preset contexts
kubectl config get-contexts
# switch to `ngx-starter-kit` contexts
kubectl config use-context ngx-starter-kit
# switch to `ngx` contexts
kubectl config use-context ngx
## create (first time deployment)
kubectl create -f ./api.yml
Expand Down
89 changes: 0 additions & 89 deletions .deploy/api/api.tmpl.yml

This file was deleted.

61 changes: 0 additions & 61 deletions .deploy/api/api.yml

This file was deleted.

21 changes: 21 additions & 0 deletions .deploy/api/manual/01-ngxapi-configmap.yaml
@@ -0,0 +1,21 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: ngxapi
labels:
app: ngxapi
data:
DOMAIN_URL: ngxapi
TYPEORM_HOST: postgres
TYPEORM_PORT: '5432'
TYPEORM_DATABASE: cockpit
TYPEORM_USERNAME: cockpit
TYPEORM_LOGGING: 'false'
OIDC_ISSUER_URL: 'https://keycloak-ngx1.1d35.starter-us-east-1.openshiftapps.com/auth/realms/ngx'
OIDC_CLIENT_ID: ngxapi
EMAIL_HOST: mail.google.com
EMAIL_PORT: '25'
EMAIL_SECURE: 'false'
EMAIL_AUTH_USER: auth_user
EMAIL_FROM: '"sumo demo" <sumo@demo.com>'
VAPID_PUBLIC_KEY: 'BAJq-yHlSNjUqKW9iMY0hG96X9WdVwetUFDa5rQIGRPqOHKAL_fkKUe_gUTAKnn9IPAltqmlNO2OkJrjdQ_MXNg'
15 changes: 15 additions & 0 deletions .deploy/api/manual/02-ngxapi-secrets.yaml
@@ -0,0 +1,15 @@
apiVersion: v1
kind: Secret
metadata:
name: ngxapi
labels:
app: ngxapi
type: Opaque
data:
TYPEORM_PASSWORD: Y29ja3BpdDEyMw==
EMAIL_AUTH_PASS: YXV0aF9wYXNz
VAPID_PRIVATE_KEY: Y3doMkNZSzVoX0JfR29ibnY4WW05eDYxQjNxRkUyblRlYjlCZWlaYnRNSQ==
stringData:
TYPEORM_PASSWORD: cockpit123
EMAIL_AUTH_PASS: auth_pass
VAPID_PRIVATE_KEY: cwh2CYK5h_B_Gobnv8Ym9x61B3qFE2nTeb9BeiZbtMI
42 changes: 42 additions & 0 deletions .deploy/api/manual/04-ngxapi-deployment.yaml
@@ -0,0 +1,42 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: ngxapi
labels:
app: ngxapi
spec:
replicas: 1
strategy:
type: RollingUpdate
selector:
matchLabels:
app: ngxapi
template:
metadata:
name: ngxapi
labels:
app: ngxapi
spec:
containers:
- name: api
image: xmlking/ngxapi:latest
imagePullPolicy: Always
resources:
limits:
memory: 4G
requests:
memory: 2G
ports:
- containerPort: 3000
protocol: TCP
envFrom:
- secretRef:
name: ngxapi
- configMapRef:
name: ngxapi
env:
- name: TYPEORM_PASSWORD
valueFrom:
secretKeyRef:
name: postgres
key: COCKPIT_POSTGRES_PASSWORD
16 changes: 16 additions & 0 deletions .deploy/api/manual/05-ngxapi-service-nodeport.yaml
@@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: ngxapi
labels:
app: ngxapi
spec:
type: NodePort
ports:
- name: http
port: 3000
protocol: TCP
targetPort: 3000
nodePort: 33000
selector:
app: ngxapi
15 changes: 15 additions & 0 deletions .deploy/api/manual/05-ngxapi-service.yaml
@@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
name: ngxapi
labels:
app: ngxapi
spec:
type: ClusterIP
ports:
- name: http
port: 3000
protocol: TCP
targetPort: 3000
selector:
app: ngxapi

0 comments on commit 324d3c1

Please sign in to comment.