Service Foundry

Getting Started

Introduction

Service Foundry provides automated tools to create and manage Kubernetes resources required for Turnkey applications using Kustomize, Helm, and Terraform in the way of Turnkey solution.

A single configuration file is used to generate the Kubernetes resources required for the Turnkey solution. The configuration file is a YAML file that contains the information about the application, such as the name of the application, the version of the application, and the configuration of the application.

sf concept
Figure 1. Single configuration for Turnkey solutions - eg, Observability

Service Foundry provides a set of tools to automate this process with one single configuration file.

Definition

Turnkey solution

Turnkey solution is a pre-packaged software solution that is ready to use out of the box. It is a complete solution that includes all the necessary components, such as software, hardware, and documentation, to get the system up and running quickly and easily.

Getting Started with Service Foundry Builder as Kubernetes Job using Helm

Service Foundry Builder

Service Foundry Builder is a tool for building and deploying applications in a Kubernetes environment. It provides a set of tools and best practices for building, deploying, and scaling applications in a cloud-native way.

sf builder on k8s

GitHub SSH key is required to run Service Foundry Builder. Contact the Service Foundry team to get the SSH key.

1. Add helm repo service-foundry

$ helm repo add service-foundry https://nsalexamy.github.io/helm-charts

2. Create service-foundry namespace

$ kubectl create namespace service-foundry

3. Create aws-secret

$ kubectl -n service-foundry create secret generic aws-secret \
  --from-literal=AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
  --from-literal=AWS_ACCOUNT_ID=$AWS_ACCOUNT_ID \
  --from-literal=AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
  --from-literal=AWS_REGION=$AWS_REGION

4. Create service-foundry-github-ssh

$ kubectl -n service-foundry create secret generic service-foundry-github-ssh \
    --from-file=./id_rsa --from-file=./id_rsa.pub

5. Create service-foundry-config-files

$ kubectl create secret generic service-foundry-config-files \
  --from-file=infra-foundry-config.yaml \
  --from-file=o11y-foundry-config.yaml \
  --from-file=sso-foundry-config.yaml \
  -n service-foundry

6. Create service-foundry-builder job using Helm chart

$ helm install service-foundry-builder service-foundry/service-foundry-builder \
  -n service-foundry --create-namespace

7. Check Kubernetes resources created by Service Foundry Builder

You can check the Kubernetes resources created by Service Foundry Builder on AWS Admin Console.

sf aws results

8. Clean up

To clean up the resources created by Service Foundry Builder, you can use the following command:

$ kubectl create secret generic service-foundry-config-files \
  --from-file=infra-foundry-config.yaml \
  --from-file=o11y-foundry-config.yaml \
  --from-file=sso-foundry-config.yaml \
  -n service-foundry --set command=clean

Make sure to use the --set command=clean option to clean up the resources created by Service Foundry Builder.

Getting Started with Service Foundry on Local Machine

sf on local machine

For more information about how to get started with Service Foundry on local machine, please refer to the following link: