๋ฐ์ดํ„ฐ ์ƒ์ฃผ๋กœ ์• ๋„๋ฆฌํ‹ฑ์Šค ๋ฐ ๋””๋ฒ„๊ทธ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘

๊ฐœ์š”

๋ฒ„์ „ 1.13.1๋ถ€ํ„ฐ ์ƒˆ๋กœ ์ƒ์„ฑ๋œ Apigee Hybrid ์กฐ์ง์€ ๋Ÿฐํƒ€์ž„ ๊ตฌ์„ฑ์š”์†Œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์— ์ง์ ‘ ์“ธ ์ˆ˜ ์žˆ๋Š” ์ƒˆ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ์ด ์ž‘์—…์ด Google Cloud ์„œ๋น„์Šค์— ์“ธ ์„œ๋ช…๋œ URL์„ ์ƒ์„ฑํ•˜๋Š” UDCA ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ํŒŒ์ดํ”„๋ผ์ธ์„ ์‚ฌ์šฉํ•˜๋ฉด Google Cloud ์„œ๋น„์Šค์— ์—…๋กœ๋“œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” UDCA ๋ฐ ๊ธฐํƒ€ ๊ด€๋ จ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Apigee Hybrid์—์„œ ๋ฐ์ดํ„ฐ ์ƒ์ฃผ ์‚ฌ์šฉ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ตฌ์„ฑ

๋‹ค์Œ ์•ˆ๋‚ด์— ๋”ฐ๋ผ ๊ฐœ๋ณ„ ๊ตฌ์„ฑ์š”์†Œ์— ์ƒˆ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ์‚ฌ์šฉํ•˜๋„๋ก Hybrid๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์ • ์Šน์ธ ํ๋ฆ„

์ƒˆ ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์— ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋Ÿฐํƒ€์ž„ ์„œ๋น„์Šค ๊ณ„์ •์˜ ๊ถŒํ•œ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ๋””๋ฒ„๊ทธ ์„ธ์…˜๊ณผ ์• ๋„๋ฆฌํ‹ฑ์Šค๊ฐ€ ์ž‘๋™ํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด ์ด ๋‹จ๊ณ„๊ฐ€ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

curl -X  PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type:application/json" \
  "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
  -d '{ "analytics_publisher_identities": ["serviceAccount:apigee-runtime@ORG_NAME.iam.gserviceaccount.com"]}'

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‘๋‹ต์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

{
  "name": "organizations/newpipeline-hybrid-org/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
    "operationType": "UPDATE",
    "targetResourceName": "organizations/newpipeline-hybrid-org/controlPlaneAccess",
    "state": "IN_PROGRESS"
  }
}

์—…๋ฐ์ดํŠธ ์‘๋‹ต์˜ ์ด๋ฆ„ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—… ์ƒํƒœ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)"  \
  -H "Content-Type:application/json"  \
  "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/ORG_NAME/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29"

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‘๋‹ต์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

{
  "name": "organizations/newpipeline-hybrid-org/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
    "operationType": "UPDATE",
    "targetResourceName": "organizations/newpipeline-hybrid-org/controlPlaneAccess",
    "state": "FINISHED"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.apigee.v1.ControlPlaneAccess",
    "name": "organizations/newpipeline-hybrid-org/controlPlaneAccess"
  }
}

์กฐ์ง์˜ ControlPlaneAccess ๊ตฌ์„ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

curl "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/ORG_NAME/controlPlaneAccess" \
-H "Authorization: Bearer $(gcloud auth print-access-token)"

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‘๋‹ต์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

{
  "synchronizerIdentities": [
    "serviceAccount:apigee-synchronizer@newpipeline-hybrid-org.iam.gserviceaccount.com"
  ],
  "analyticsPublisherIdentities": [
    "serviceAccount:apigee-runtime@newpipeline-hybrid-org.iam.gserviceaccount.com"
  ]
}

๋””๋ฒ„๊ทธ ๋ฐ ์• ๋„๋ฆฌํ‹ฑ์Šค ๋ฐ์ดํ„ฐ ์ƒ์ฃผ๋ฅผ ์œ„ํ•ด ์ƒˆ ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ์ด์ „ ํŒŒ์ดํ”„๋ผ์ธ ๊ฐ„์— ์ „ํ™˜

์„œ๋น„์Šค ๊ณ„์ •์— ์ ์ ˆํ•œ ์Šน์ธ์ด ์ œ๊ณต๋˜๋ฉด ์‚ฌ์šฉ์ž๋Š” Apigee ์ธ์Šคํ„ด์Šค๋ฅผ ์ „ํ™˜ํ•˜์—ฌ ์ƒˆ ํŒŒ์ดํ”„๋ผ์ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. overrides.yaml์—์„œ ๋‹ค์Œ ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

... rest of the overrides.yaml ...
gcp:
  projectID: PROJECT_ID
  region: ANALYTICS_REGION>  # Specifies the analytics region for the hybrid org. This attribute is
                               # the regional endpoint used to push analytics and debug data to the
                               # control plane. For example: us-central1

newDataPipeline:
  debugSession: true  # this flag enables debug session to use the new data pipeline
  analytics: true     # this flag enables analytics to use the new data pipeline

k8sCluster:
  name: CLUSTER_NAME
  region: CLUSTER_LOCATION # Must be the closest Google Cloud region to your cluster. For example, us-west1
org: ORG_NAME

... rest of the overrides.yaml ...

helm upgrade ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ์— ํ™˜๊ฒฝ ํ•˜๋‚˜๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค. --set env=ENV_NAME์œผ๋กœ ํ™˜๊ฒฝ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

helm upgrade ENV_RELEASE_NAME apigee-env/ \
  --install \
  --namespace APIGEE_NAMESPACE \
  --set env=ENV_NAME \
  -f OVERRIDES_FILE
  • ENV_RELEASE_NAME์€ ์ด์ „์— apigee-env ์ฐจํŠธ๋ฅผ ์„ค์น˜ํ•œ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
  • ENV_NAME์€ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ํ™˜๊ฒฝ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.