Skip to main content
This page lists the dependencies and prerequisites for a project team, and describes the repository structure used to manage and configure core connector deployments.

Dependencies and prerequisites

To start using Grand Central Connectors, ensure you are familiar with: Contact the Grand Central team to get access to the following:
  • gc-applications-live repository
  • Subscription key for the Grand Central APIM platform. In the platform, you have access to Grand Central’s products and Grand Central Unified API Specification, with example requests and responses.

Reference repository structure

The gc-applications-live repository manages iPaaS and connector deployments to predefined environments, such as dev, test, and prod. It contains the runtime configuration for these environments. This is an example of a gc-applications-live repository structure:
runtimes
├── dev
└── test
    ├── apps
    │   └── gc-mambu.yaml
    └── values
        ├── gc-mambu
            └── desposit-v0.values.yaml
            └── values.yaml
The following table describes the files and folders in the example repository:
File/folderDescription
runtimesThe available runtimes for deployment.
devDevelopment environment for experimenting and debugging.
testTest environment. Primarily for integration.
appsConnector configurations per product. The YAML files in this folder represent the list of deployed connectors. For more information, see YAML files.
gc-mambu.yamlDeployment configuration for Mambu connectors that run on a test environment. The -v2 suffix refers to the 2.x version of the Camel-K runtime.
valuesDeployment values. These values override the default configuration in a connector: JOLT mappings, connector properties, and traits.
gc-mambuOverride values for Mambu connectors.
desposit-v0.values.yamlOverride values for Mambu deposit account connector.
values.yamlOverride values for all connectors within the gc-mambu deployment file.

YAML files

The apps folder contains multiple YAML files in a hierarchical structure. Files are processed in order, with later files overriding earlier ones. This hierarchy ranges from values common to all connectors in an environment to values specific to individual connector versions. The following sample deployment descriptor YAML file contains:
  • Deployment namespace
  • Source repository
  • Azure Container Registry (ACR) repository
  • Helm chart template
  • ArgoCD Sync Policy
  • Configurable resources such as transformation JOLT or XSLT files.

Sample apps YAML file

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: gc-generic
  namespace: argocd
spec:
  project: default
  destination:
    server: https://kubernetes.default.svc
    namespace: gc-generic
  sources:
    - repoURL: https://github.com/baas-devops-ecos/gc-applications-live.git
      targetRevision: gc-dev
      ref: apps-live

    - repoURL: ecosystemsgctmp.azurecr.io/charts
      chart: template-connector
      targetRevision: 1.1.3-camel-k-ci-21-SNAPSHOT
      helm:
        releaseName: template-connector-1
        valueFiles:
          - $apps-live/azure/runtimes/dev-v2/values/gc-generic/template-connector-v1.values.yaml

  syncPolicy:
    automated:
      prune: true
      allowEmpty: true
      selfHeal: true
    syncOptions:
      - CreateNamespace=true

Sample values YAML file

connector:
  properties:
    isMockedDataNeeded: true
  traits:
    knativeservice:
      minScale: 1
      enabled: true
    logging:
      color: false
      enabled: true
      level: INFO
    addons:
      telemetry:
        auto: true
        enabled: true
  resources:
    close-account-request-transformation.json: |-
      [
        {
          "operation": "shift",
          "spec": {
            "notes": "notes",
            "closeStatus": {
              "CLOSED": {
                "#CLOSE": "action"
              },
              "CLOSED_WRITTEN_OFF": {
                "#CLOSED_WRITTEN_OFF": "action"
              },
              "WITHDRAWN": {
                "#CLOSE_WITHDRAW": "action"
              },
              "CLOSED_REJECTED": {
                "#CLOSE_REJECT": "action"
              }
            }
          }
        }
      ]