How to Migrate Proxies and other data from Apigee edge to Apigee x.

We are planning to migrate proxies, app keys, specs and other data from APIGEE edge to APIGEE x.
Need some help  related to migration, is any tool is there to migrate the data?? or how can we do this??

Solved Solved
0 11 3,697
1 ACCEPTED SOLUTION

That's correct. Basic resources should be re-deployable to X after export from Edge.

View solution in original post

11 REPLIES 11

There is an Apigee sackmesser tool (German for "Multitool")  that can export configuration from Edge or X. 

I am not sure if it can also IMPORT from that exported content. 

@strebel may have some perspective.

Apigee Sackmesser lets you export an Organization including org and env configs, proxies and shared flows with the export command

 

sackmesser export --apigeeapi -u "$APIGEE_USER" -p "$APIGEE_PASS" -o "$APIGEE_ORG"

 

With the deploy command you can then iterate through the exported proxies or point at specific config to deploy them to another platform. For Apgiee X this would look something like this.

 

echo "Test Re-Import Edge Export in X"
sackmesser deploy \
  --googleapi \
  -d "$SCRIPT_FOLDER/$APIGEE_ORG/config" \
  -t "$APIGEE_X_TOKEN" \
  -o "$APIGEE_X_ORG" \
  -e "$APIGEE_X_ENV"

sackmesser deploy \
  --googleapi \
  -d "$SCRIPT_FOLDER/$APIGEE_ORG/proxies/sackmesser-edge-v0" \
  -t "$APIGEE_X_TOKEN" \
  -o "$APIGEE_X_ORG" \
  -e "$APIGEE_X_ENV"

 

It's important however that this is not designed to serve as a fully automated migration tool as it lacks migration features like:

  • Migration of encrypted KVM entries (can't be exported)
  • Migration of Keystores (Certs can't be exported)
  • Shared flow dependency resolution (if sf A uses sf B then sf B needs to be deployed before sf A)
  • Export of specs

The devrel nightly does a very simple export/re-deploy cycle for a proxy and env config here: https://github.com/apigee/devrel/blob/main/tools/apigee-sackmesser/pipeline.sh#L91-L143

Thanks this will surely help us to get an idea regarding migration plan.

@strebel so with the above tool i can migrate Proxies, App keys and few other data from APIGEE edge to APIGEE x right with export and deploy commands??

Off course as you mentioned there are some limitations.

That's correct. Basic resources should be re-deployable to X after export from Edge.

Does sackmesser tool also migrate API keys and custom attributes ?

Sackmesser doesn't migrate but it can export API keys and app custom attributes and deploy them to Apigee using the maven config plugin format.

Hi! I am receiving an error on a sample export, is there a known issue or should I post a github issue? Right away the export command errors out:

sackmesser export --apigeeapi -u "USER-NAME" -p "PASSWORD" -o "ORG" -m 1234546

curl: (3) URL rejected: Malformed input to a URL function

Thanks!

Hmm that does look OK from this level can you run with `--debug`? that should give you the curl that it calls.

Thank you for the quick response! A bit more information from the debug option:

[DEBUG] Apigee OAuth2 (note: Basic Auth for Apigee Private Cloud [OPDK]) access token: eylalalai...
[DEBUG] Sackmesser command: export
[INFO] exporting to /c/Users/Username/my-org
[DEBUG] Apigee OAuth2 (note: Basic Auth for Apigee Private Cloud [OPDK]) access token: eylalalai...
[DEBUG] Sackmesser command: list
[DEBUG] Sackmesser list organizations/my-org/sharedflows
[INFO] download shared flow: APIKEY_CHECK
[DEBUG] Apigee OAuth2 (note: Basic Auth for Apigee Private Cloud [OPDK]) access token: eylalalai...
[DEBUG] Sackmesser command: list
[DEBUG] Sackmesser list organizations/my-org/sharedflows/APIKEY_CHECK
curl: (3) URL rejected: Malformed input to a URL function
/revisions/?format=bundle(zip) organizations/my-org/sharedflows/APIKEY_CHECK
curl: (3) URL rejected: Malformed input to a URL function

Hmm the fact that the list works shows that the host + organization names all seem fine. 

I my suspicion is that the sharedflow name might have broken the URL. 

feel free to drop me a direct email on [username]@google.com if you think the original value might contain some special character that we haven't considered.

@strebel using the sackmesser tool am able to export and deploy proxies, policies, developer keys etc.