Steps

  1. Copy-paste template-service folder under the service file and rename it

  2. Update the code with the features you want.

  3. Add GitHub actions for the new service

    1. create new files under .github/workflows folder

    2. Just copy the files for the other services

    3. If the new service exposes a REST API, update tyk-brave-api-importer.yaml to include it to Tyk

  4. Put any relevant secrets in Vault.

  5. Prepare deployment config files

    1. Update the following under the devops/argocd/environments/<env>/apps:

      1. create a folder for the new service

        1. Copy-paste the Chart.yaml and values.yaml file from other services

        2. Update values.yaml file to conform to the new service

        3. Put necessary env vars and secrets in the values.yaml file

      2. under /base folder, add Application kubernetes config file named after the service

      3. add the new file made in the previous step in kustomization.yaml

      4. repeat for all environment folders

    2. Update terraform/_files/microservices.yaml file to include new service

      1. if the service uses a database, set create_postgres to true

      2. if the service connects to kafka topics, add kafka under inject_secrets

      3. if the service uses temporal, add temporal under inject_secrets

  6. Submit PR to merge branch to master

Sample PR: https://github.com/SafiBank/SaFiMono/pull/6813/files

sample PR is updates tyk-api-importer.yaml but you should update tyk-brave-api-importer.yaml instead