Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions ansible/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,10 @@ create-build-env-vars: guard-build_label guard-out_dir
deploy-ecs-proxies: guard-account guard-build_label guard-service_id guard-APIGEE_ENVIRONMENT guard-PROXY_VARS_FILE
@poetry run ansible-playbook -i local deploy-ecs-proxies.yml

deploy-apigee-proxy: guard-SERVICE_NAME guard-SERVICE_BASE_PATH guard-APIGEE_ENVIRONMENT guard-APIGEE_ORGANIZATION guard-APIGEE_ACCESS_TOKEN guard-PROXY_DIR guard-PING
deploy-apigee-proxy: guard-FULLY_QUALIFIED_SERVICE_NAME guard-SERVICE_BASE_PATH guard-APIGEE_ENVIRONMENT guard-APIGEE_ORGANIZATION guard-APIGEE_ACCESS_TOKEN guard-PROXY_DIR guard-PING
@poetry run ansible-playbook -i local deploy-apigee-proxy.yml

deploy-apigee-product-and-spec: guard-SERVICE_NAME guard-APIGEE_ENVIRONMENT guard-APIGEE_ORGANIZATION guard-APIGEE_ACCESS_TOKEN guard-FRIENDLY_NAME guard-PRODUCT_DISPLAY_NAME guard-PRODUCT_DESCRIPTION guard-VISIBLE guard-REQUIRE_CALLBACK_URL
deploy-apigee-product-and-spec: guard-FULLY_QUALIFIED_SERVICE_NAME guard-APIGEE_ENVIRONMENT guard-APIGEE_ORGANIZATION guard-APIGEE_ACCESS_TOKEN guard-FRIENDLY_NAME guard-PRODUCT_DISPLAY_NAME guard-PRODUCT_DESCRIPTION guard-VISIBLE guard-REQUIRE_CALLBACK_URL
@poetry run ansible-playbook -i local deploy-apigee-product-and-spec.yml

template-proxies: guard-PROXIES_DIR guard-SERVICE_BASE_PATH guard-APIGEE_ENVIRONMENT
Expand Down
6 changes: 6 additions & 0 deletions ansible/deploy-apigee-product-and-spec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

vars:
SERVICE_NAME: "{{ lookup('env', 'SERVICE_NAME') }}"
FULLY_QUALIFIED_SERVICE_NAME: "{{ lookup('env', 'FULLY_QUALIFIED_SERVICE_NAME') }}"
APIGEE_ENVIRONMENT: "{{ lookup('env','APIGEE_ENVIRONMENT') }}"
APIGEE_ORGANIZATION: "{{ lookup('env', 'APIGEE_ORGANIZATION') }}"
APIGEE_ACCESS_TOKEN: "{{ lookup('env', 'APIGEE_ACCESS_TOKEN') }}"
Expand All @@ -21,6 +22,11 @@
msg: "SERVICE_NAME not set"
when: not SERVICE_NAME

- name: check FULLY_QUALIFIED_SERVICE_NAME
fail:
msg: "FULLY_QUALIFIED_SERVICE_NAME not set"
when: not FULLY_QUALIFIED_SERVICE_NAME

- name: check APIGEE_ENVIRONMENT
fail:
msg: "APIGEE_ENVIRONMENT not set"
Expand Down
8 changes: 4 additions & 4 deletions ansible/deploy-apigee-proxy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
gather_facts: no

vars:
SERVICE_NAME: "{{ lookup('env', 'SERVICE_NAME') }}"
FULLY_QUALIFIED_SERVICE_NAME: "{{ lookup('env', 'FULLY_QUALIFIED_SERVICE_NAME') }}"
SERVICE_BASE_PATH: "{{ lookup('env', 'SERVICE_BASE_PATH') }}"
APIGEE_ENVIRONMENT: "{{ lookup('env','APIGEE_ENVIRONMENT') }}"
APIGEE_ORGANIZATION: "{{ lookup('env', 'APIGEE_ORGANIZATION') }}"
Expand All @@ -13,10 +13,10 @@
PING: "{{ (lookup('env', 'PING') | length > 0) | ternary(lookup('env', 'PING'), 'true') }}"

pre_tasks:
- name: check SERVICE_NAME
- name: check FULLY_QUALIFIED_SERVICE_NAME
fail:
msg: "SERVICE_NAME not set"
when: not SERVICE_NAME
msg: "FULLY_QUALIFIED_SERVICE_NAME not set"
when: not FULLY_QUALIFIED_SERVICE_NAME

- name: check SERVICE_BASE_PATH
fail:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@
vars:
qualified_product_name: >-
{{
product.name | ternary(SERVICE_NAME + '-' + product.name,
SERVICE_NAME)
product.name | ternary(FULLY_QUALIFIED_SERVICE_NAME + '-' + product.name,
FULLY_QUALIFIED_SERVICE_NAME)
}}
qualified_display_name: >-
{{ ('-pr-' in SERVICE_NAME) | ternary(qualified_product_name, product.displayName) }} ({{ env_names[APIGEE_ENVIRONMENT] }} Environment)
{{ ('-pr-' in FULLY_QUALIFIED_SERVICE_NAME) | ternary(qualified_product_name, product.displayName) }} ({{ env_names[APIGEE_ENVIRONMENT] }} Environment)
set_fact:
product: >-
{{ product | combine({'displayName': qualified_display_name,
Expand Down
10 changes: 5 additions & 5 deletions ansible/roles/deploy-apigee-product-and-spec/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@

- name: Get or create remote spec
vars:
spec_list: "{{ specs.json.contents | selectattr('name', '==', SERVICE_NAME) | list }}"
spec_list: "{{ specs.json.contents | selectattr('name', '==', FULLY_QUALIFIED_SERVICE_NAME) | list }}"
block:
- name: select remote spec if it exists
set_fact:
Expand All @@ -58,7 +58,7 @@
method: POST
body:
folder: "{{ folder_id }}"
name: "{{ SERVICE_NAME }}"
name: "{{ FULLY_QUALIFIED_SERVICE_NAME }}"
kind: "Doc"
body_format: json
headers:
Expand Down Expand Up @@ -114,7 +114,7 @@
- name: Set default_product
set_fact:
default_product:
name: "" # SERVICE_NAME is appended inside loop, so leave blank here
name: "" # FULLY_QUALIFIED_SERVICE_NAME is appended inside loop, so leave blank here
displayName: "{{ PRODUCT_DISPLAY_NAME }}" # Environment name appended later
description: "{{ PRODUCT_DESCRIPTION }}"
approvalType: "{{ approval_type }}"
Expand All @@ -129,7 +129,7 @@
quotaTimeUnit: minute
environments:
- "{{ APIGEE_ENVIRONMENT }}"
scopes: ['urn:nhsd:apim:app:jwks', 'urn:nhsd:apim:user:aal3' ]
scopes: ['urn:nhsd:apim:app:level3:{{ SERVICE_NAME }}', 'urn:nhsd:apim:user-nhs-id:aal3:{{ SERVICE_NAME }}' ]

- name: List product files
set_fact:
Expand All @@ -150,7 +150,7 @@
assert:
that:
- product.name is defined # Each needs a unique name
# (SERVICE_NAME appended inside
# (FULLY_QUALIFIED_SERVICE_NAME appended inside
# loop)
fail_msg: >-
User defined API products must have a 'name' field
Expand Down
4 changes: 2 additions & 2 deletions ansible/roles/deploy-apigee-product-and-spec/vars/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ apigee_uri: "https://{{ APIGEE_HOSTNAME }}"
environment_subdomain: "{{ APIGEE_ENVIRONMENT }}."
api_uri: "https://{{ (APIGEE_ENVIRONMENT != 'prod') | ternary(environment_subdomain, '') }}api.service.nhs.uk/{{ SERVICE_BASE_PATH }}"
proxies_non_int:
- "{{ SERVICE_NAME }}"
- "{{ FULLY_QUALIFIED_SERVICE_NAME }}"
- "identity-service-{{ APIGEE_ENVIRONMENT }}"
proxies_int:
- "{{ SERVICE_NAME }}"
- "{{ FULLY_QUALIFIED_SERVICE_NAME }}"
- "identity-service-{{ APIGEE_ENVIRONMENT }}"
- "identity-service-{{ APIGEE_ENVIRONMENT }}-no-smartcard"
proxies: "{{ (APIGEE_ENVIRONMENT == 'int') | ternary(proxies_int, proxies_non_int) }}"
Expand Down
4 changes: 2 additions & 2 deletions ansible/roles/deploy-apigee-proxy/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

- name: upload the flow to apigee
uri:
url: "{{ apis_api_uri }}?action=import&name={{ SERVICE_NAME }}&validate=true"
url: "{{ apis_api_uri }}?action=import&name={{ FULLY_QUALIFIED_SERVICE_NAME }}&validate=true"
method: POST
status_code: 201
headers:
Expand All @@ -38,7 +38,7 @@

- name: update proxy deployment
uri:
url: "{{ env_apis_api_uri }}/{{ SERVICE_NAME }}/revisions/{{ revision }}/deployments"
url: "{{ env_apis_api_uri }}/{{ FULLY_QUALIFIED_SERVICE_NAME }}/revisions/{{ revision }}/deployments"
method: "POST"
body:
override: true
Expand Down
4 changes: 2 additions & 2 deletions azure/templates/deploy-service.yml
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,8 @@ steps:
set -euo pipefail

export PROXY_DIR="$(SERVICE_DIR)/proxies/${{ parameters.proxy_path }}"
export SERVICE_NAME="${{ parameters.fully_qualified_service_name }}"
export SERVICE_NAME="${{ parameters.service_name }}"
export FULLY_QUALIFIED_SERVICE_NAME="${{ parameters.fully_qualified_service_name }}"
export SERVICE_BASE_PATH="${{ parameters.service_base_path }}"
export APIGEE_ACCESS_TOKEN="$(secret.AccessToken)"
export PRODUCT_DISPLAY_NAME="${{ parameters.product_display_name }}"
Expand All @@ -230,7 +231,6 @@ steps:

if [ -f $(SERVICE_DIR)/manifest.yml ]; then
export DIST_DIR=$(SERVICE_DIR)
export SERVICE_NAME="${{ parameters.service_name }}"
export PULL_REQUEST="${{ parameters.pr_label }}"
make --no-print-directory -C $(UTILS_DIR)/ansible deploy-manifest
else
Expand Down