Summary and Next Steps

Estimated time: ~10 minutes

Learning objectives

  • Recap the 3scale → Connectivity Link mapping patterns

  • Recall the decommission checklist before removing 3scale

  • Know where to go for docs, day-2 UIs, and troubleshooting

Congratulations! You have completed the migration workshop. This module recaps what you learned, shows the conversion patterns, and provides links to official documentation.

Strategy set (recap)

Strategy You practiced it when…

Developer Hub — Golden Path

Module 7 Software Template → Gitea → Argo CD

Kuadrant Console

Module 11 API Products, keys, traffic

Migration Toolkit

Module 12 Guided 3scale Admin API path

APIShift

Module 13 Same path + AI + catalog registration

What you accomplished

  1. Reviewed prerequisites and environment sizing

  2. Explored the 3scale environment — Products, Backends, Application Plans, APIcast

  3. Explored the Connectivity Link environment — Gateway, HTTPRoute, OIDCPolicy, AuthPolicy, RateLimitPolicy, PlanPolicy, APIProduct

  4. Compared both approaches side by side across authentication, rate limiting, GitOps, and developer experience

  5. Ran the Developer Hub Golden Path to generate Connectivity Link resources via Software Template

  6. Used the strategy UIs: Kuadrant Console, Migration Toolkit, and APIShift

  7. (Optional activity) provisioned a RHEL VM with Connectivity Link and API key auth using the RHEL Virtual Machine scaffolder template

  8. Verified the migrated application works identically to the 3scale original

  9. Used Troubleshooting when needed

Mapping Rules to HTTPRoute conversion

3scale MappingRules

mappingRules:
  - httpMethod: GET
    pattern: "/api/v1/customers$"
    metricMethodRef: hits
  - httpMethod: POST
    pattern: "/api/v1/customers$"
    metricMethodRef: hits
  - httpMethod: GET
    pattern: "/q/openapi$"
    metricMethodRef: hits

Equivalent HTTPRoute

apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
spec:
  rules:
    - matches:
        - path:
            type: PathPrefix
            value: /api
      backendRefs:
        - name: neuralbank-backend-svc
          port: 8080
    - matches:
        - path:
            type: PathPrefix
            value: /q
      backendRefs:
        - name: neuralbank-backend-svc
          port: 8080

Application Plans to PlanPolicy conversion

3scale Application Plans

applicationPlans:
  basic:
    name: "Basic Plan"
    limits:
      - period: minute
        value: 60
        metricMethodRef:
          systemName: hits
  premium:
    name: "Premium Plan"
    limits:
      - period: minute
        value: 300
        metricMethodRef:
          systemName: hits

Equivalent PlanPolicy

apiVersion: extensions.kuadrant.io/v1alpha1
kind: PlanPolicy
spec:
  plans:
    - tier: basic
      predicate: |
        auth.identity.metadata.annotations["secret.kuadrant.io/plan-id"] == "basic"
      limits:
        daily: 1000
        custom:
          - limit: 60
            window: "1m"
    - tier: pro
      predicate: |
        auth.identity.metadata.annotations["secret.kuadrant.io/plan-id"] == "pro"
      limits:
        daily: 10000
        custom:
          - limit: 300
            window: "1m"

Decommission flow

Once the migration is validated, follow these steps to decommission the 3scale environment:

  1. Disable traffic to 3scale: Update DNS or Routes to point exclusively to the Connectivity Link gateway.

  2. Disable the 3scale Product: Set the Product to "disabled" or remove the public endpoint.

  3. Verify no traffic: Monitor 3scale analytics to confirm zero traffic.

  4. Delete 3scale resources: Remove the Product, Backend, and Application CRDs.

  5. Delete the source namespace: oc delete namespace neuralbank-3scale (or nfl-wallet-3scale).

  6. Remove 3scale Operator (optional): If no other APIs use 3scale, uninstall the operator.

Do not delete the source namespace until you have fully validated the Connectivity Link environment in production.

Repository

The source code, Helm charts, Software Templates, and this workshop documentation are available at:

Need help?

See 14. Troubleshooting for common OIDC iframe, Argo CD sync, auth, and showroom refresh issues.

Thank you

This workshop was created by Maximiliano Pizarro and is powered by Kuadrant and Red Hat Developer Hub.