-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integrate Image Streams #4
Changes from all commits
61a7779
9ed79a7
6d67553
287e33c
b3a3267
d917818
58d7958
dfb1371
0b3dfe2
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
apiVersion: v1 | ||
kind: ImageStream | ||
metadata: | ||
name: apicast-cloud-hosted | ||
labels: | ||
app: apicast-cloud-hosted | ||
spec: | ||
tags: | ||
- name: latest | ||
annotations: | ||
openshift.io/display-name: APIcast Cloud Hosted (latest) | ||
from: | ||
kind: ImageStreamTag | ||
name: latest |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
apiVersion: v1 | ||
kind: ImageStream | ||
metadata: | ||
name: apicast | ||
labels: | ||
app: apicast | ||
spec: | ||
tags: | ||
- name: master-builder | ||
from: | ||
kind: DockerImage | ||
name: quay.io/3scale/apicast:master-builder | ||
importPolicy: | ||
scheduled: true |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,23 +1,23 @@ | ||
apiVersion: v1 | ||
kind: Template | ||
metadata: | ||
name: "apicast-cloud-hosted" | ||
name: "apicast-cloud-hosted-deployment" | ||
objects: | ||
|
||
- apiVersion: v1 | ||
kind: DeploymentConfig | ||
metadata: | ||
name: apicast-mapping-service | ||
name: apicast-mapping-service-${RELEASE_REF} | ||
spec: | ||
replicas: 1 | ||
selector: | ||
deploymentconfig: apicast-mapping-service | ||
deploymentconfig: apicast-mapping-service-${RELEASE_REF} | ||
strategy: | ||
type: Rolling | ||
template: | ||
metadata: | ||
labels: | ||
deploymentconfig: apicast-mapping-service | ||
deploymentconfig: apicast-mapping-service-${RELEASE_REF} | ||
spec: | ||
containers: | ||
- name: apicast-mapping-service | ||
|
@@ -50,23 +50,30 @@ objects: | |
- containerPort: 8090 | ||
name: management | ||
protocol: TCP | ||
resources: | ||
limits: | ||
cpu: '1' | ||
memory: 128Mi | ||
requests: | ||
cpu: 500m | ||
memory: 64Mi | ||
triggers: | ||
- type: ConfigChange | ||
|
||
- apiVersion: v1 | ||
kind: DeploymentConfig | ||
metadata: | ||
name: apicast | ||
name: apicast-${RELEASE_REF} | ||
spec: | ||
replicas: 1 | ||
selector: | ||
deploymentconfig: apicast | ||
deploymentconfig: apicast-${RELEASE_REF} | ||
strategy: | ||
type: Rolling | ||
template: | ||
metadata: | ||
labels: | ||
deploymentconfig: apicast | ||
deploymentconfig: apicast-${RELEASE_REF} | ||
spec: | ||
containers: | ||
- env: | ||
|
@@ -77,8 +84,10 @@ objects: | |
- name: THREESCALE_DEPLOYMENT_ENV | ||
value: "${ENVIRONMENT}" | ||
- name: THREESCALE_PORTAL_ENDPOINT | ||
value: "http://apicast-mapping-service/config" | ||
image: "${APICAST_IMAGE}" | ||
value: "http://apicast-mapping-service-${RELEASE_REF}/config" | ||
- name: APICAST_OIDC_LOG_LEVEL | ||
value: "notice" | ||
image: apicast-cloud-hosted:${RELEASE_REF} | ||
imagePullPolicy: IfNotPresent | ||
name: apicast | ||
livenessProbe: | ||
|
@@ -101,29 +110,46 @@ objects: | |
- containerPort: 8090 | ||
name: management | ||
protocol: TCP | ||
- containerPort: 9421 | ||
name: metrics | ||
protocol: TCP | ||
resources: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @mikz Should we set the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nope. APIcast autodetects number of requested CPU cores: 3scale/APIcast#600 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ok |
||
limits: | ||
cpu: '1' | ||
memory: 128Mi | ||
requests: | ||
cpu: 500m | ||
memory: 64Mi | ||
triggers: | ||
- type: ConfigChange | ||
- type: ImageChange | ||
imageChangeParams: | ||
automatic: true | ||
containerNames: | ||
- apicast | ||
from: | ||
kind: ImageStreamTag | ||
name: apicast-cloud-hosted:${RELEASE_REF} | ||
|
||
- apiVersion: v1 | ||
kind: Service | ||
metadata: | ||
name: apicast-mapping-service | ||
name: apicast-mapping-service-${RELEASE_REF} | ||
spec: | ||
ports: | ||
- name: mapping | ||
port: 80 | ||
protocol: TCP | ||
targetPort: mapping | ||
selector: | ||
deploymentconfig: apicast-mapping-service | ||
deploymentconfig: apicast-mapping-service-${RELEASE_REF} | ||
|
||
- apiVersion: v1 | ||
kind: Service | ||
metadata: | ||
name: apicast | ||
name: apicast-${RELEASE_REF} | ||
annotations: | ||
service.alpha.openshift.io/dependencies: |- | ||
[{"name": "apicast-mapping-service", "kind": "Service"}] | ||
[{"name": "apicast-mapping-service-${RELEASE_REF}", "kind": "Service"}] | ||
spec: | ||
ports: | ||
- name: proxy | ||
|
@@ -135,28 +161,31 @@ objects: | |
port: 8090 | ||
targetPort: management | ||
selector: | ||
deploymentconfig: apicast | ||
deploymentconfig: apicast-${RELEASE_REF} | ||
|
||
- apiVersion: v1 | ||
kind: Route | ||
kind: Service | ||
metadata: | ||
name: apicast-router | ||
labels: | ||
app: apicast-router | ||
name: apicast-metrics-${RELEASE_REF} | ||
annotations: | ||
prometheus.io/scrape: 'true' | ||
prometheus.io/path: '/metrics' | ||
prometheus.io/port: '9421' | ||
spec: | ||
host: apicast.${ENVIRONMENT}.gw.apicast.io | ||
to: | ||
kind: Service | ||
name: apicast | ||
port: | ||
targetPort: proxy | ||
wildcardPolicy: Subdomain | ||
tls: | ||
termination: edge | ||
insecureEdgeTerminationPolicy: Allow | ||
ports: | ||
- name: metrics | ||
protocol: TCP | ||
port: 9421 | ||
targetPort: metrics | ||
selector: | ||
deploymentconfig: apicast-${RELEASE_REF} | ||
|
||
parameters: | ||
|
||
- description: "Release version reference" | ||
name: RELEASE_REF | ||
required: true | ||
|
||
- description: "Deployment environment. `staging` or `production`" | ||
name: ENVIRONMENT | ||
required: true | ||
|
@@ -168,14 +197,10 @@ parameters: | |
- name: MAPPING_SERVICE_IMAGE | ||
description: "Mapping Service image name. Used to discover proxy configurations." | ||
required: true | ||
value: "quay.io/3scale/apicast-cloud-hosted:mapping-service-v3.0.0-cloud1" | ||
|
||
- name: APICAST_IMAGE | ||
description: "APIcast image name." | ||
required: true | ||
value: "quay.io/3scale/apicast-cloud-hosted:apicast-v3.0.0-cloud1" | ||
value: "quay.io/3scale/apicast-cloud-hosted:mapping-service-master" | ||
|
||
- name: MASTER_ACCESS_TOKEN_SECRET | ||
description: "Secret name that containts System Master Access Token password" | ||
required: true | ||
value: 'master-access-token-secret' | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
apiVersion: v1 | ||
kind: Template | ||
metadata: | ||
name: "apicast-cloud-hosted" | ||
objects: | ||
|
||
- apiVersion: v1 | ||
kind: Route | ||
metadata: | ||
name: apicast-router | ||
labels: | ||
app: apicast-router | ||
spec: | ||
host: apicast.${ENVIRONMENT}.gw.apicast.io | ||
to: | ||
kind: Service | ||
name: apicast | ||
port: | ||
targetPort: proxy | ||
wildcardPolicy: Subdomain | ||
tls: | ||
termination: edge | ||
insecureEdgeTerminationPolicy: Allow | ||
|
||
- apiVersion: v1 | ||
kind: Route | ||
metadata: | ||
name: apicast-${ENVIRONMENT}-policies | ||
spec: | ||
host: apicast.${ENVIRONMENT}.${WILDCARD_DOMAIN} | ||
path: /policies | ||
to: | ||
kind: Service | ||
name: apicast | ||
port: | ||
targetPort: management | ||
wildcardPolicy: None | ||
tls: | ||
termination: edge | ||
|
||
parameters: | ||
|
||
- description: "Deployment environment. `staging` or `production`" | ||
name: ENVIRONMENT | ||
required: true | ||
|
||
- description: "Openshift Cluster Wildcard Domain" | ||
name: WILDCARD_DOMAIN | ||
required: true |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
.PHONY: all imagestream buildconfig deploy route help | ||
.DEFAULT_GOAL := help | ||
|
||
MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST))) | ||
THISDIR_PATH := $(patsubst %/,%,$(abspath $(dir $(MKFILE_PATH)))) | ||
|
||
all: imagestream buildconfig deploy route | ||
|
||
imagestream: ## Create the Imagestreams (APIcast and Builder APICast). | ||
oc create -f $(THISDIR_PATH)/01-apicast-cloud-hosted-imagestream.yml | ||
oc create -f $(THISDIR_PATH)/02-apicast-builder-imagestream.yml | ||
|
||
buildconfig: ## Create the BuildConfig. | ||
oc create -f $(THISDIR_PATH)/03-build-config.yml | ||
|
||
deploy: ## Create the BuildConfig. Parameters: RELEASE_REF, ENVIRONMENT, CACHE_TTL. | ||
oc new-app -f $(THISDIR_PATH)/04-deployment-template.yml \ | ||
-p RELEASE_REF=${RELEASE_REF} \ | ||
-p ENVIRONMENT=${ENVIRONMENT} \ | ||
-p CACHE_TTL=${CACHE_TTL} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Will this crash when There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. yes it crashes because there is no predefined value in the template. Actually it brakes without The actuall error message: oc new-app -f /Users/dcesario/src/apicast-cloud-hosted/openshift/04-deployment-template.yml \
-p RELEASE_REF=test-dani3 \
-p ENVIRONMENT=staging \
-p CACHE_TTL=
error: error processing template "apicast-staging/apicast-cloud-hosted-deployment": Template "apicast-cloud-hosted-deployment" is invalid: template.parameters[2]: Required value: template.parameters[2]: parameter CACHE_TTL is required and must be specified
make: *** [deploy] Error 1 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 👍 |
||
|
||
route: ## Create the Routes.Parameters: WILDCARD_DOMAIN, ENVIRONMENT. | ||
oc new-app -f $(THISDIR_PATH)/05-routes.yml \ | ||
-p ENVIRONMENT=${ENVIRONMENT} \ | ||
-p WILDCARD_DOMAIN=${WILDCARD_DOMAIN} | ||
|
||
help: ## Print this help | ||
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would be good to have a comment pointing to how is this refreshed.
#4 (comment)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TBH, I don't know how
quay.io/3scale/apicast:master-builder
is refreshed either... Or are you talking about the scheduled imports from the registry?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep. Scheduled imports.
Those quay images are built when master branch is updated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done in 287e33c