Skip to content

Latest commit

 

History

History
46 lines (44 loc) · 4.5 KB

solution.md

File metadata and controls

46 lines (44 loc) · 4.5 KB

Solution YAML

This file describes the yaml spec for a solution that are deployed with arete.

apiVersion: arete/v1alpha1                                      # version of the configuration
kind: Config                                                    # always `Config`
metadata:                                                       # hold additional information about the config
  name:                                                         # solution name
  annotations:                                                  #
    config.kubernetes.io/local-config: "true"                   # apply the local config flag so that this file won't be applied to the cluster
spec:
  url: "https://github.com/user/repo"                           # the github url of the solution
  description: "Cool solution"                                  # short description of the solution
deploy:                                                         # deployment pipeline
  stage:                                                        # deployment pipeline stage
    infra:                                                      # infrastructure pipeline stage is expecting the a KCC endpoint
      requires:                                                 # describes a list of required components for the solution to function
        useConfigConnectorSA: "true|false"                      # Pull the SA account from the Kubernetes Config Controller, use the kubeContext settings if they have been set.
        iam:                                                    # setup the following IAM roles to apply to the implementor of the solution
          - role:  "roles/gcp.reader"                                 # role to be applied
            member: "user|serviceAccount|group:[email protected]"      # account in which to apply the role
            resource:                                                 # add role binding to a resource
              level: "organization|project"                           # bindings are added at either the organization or project level
              id: "123abc"                                            # organization ID or Project ID
        services:                                               # enable apis on the project, normally used to enable apis outside the project the solution is being deployed into
          - service: "api.googleapis.com"                       # api to be enabled
            project: "project ID"                               # project ID that the API should be enabled on
        depends:                                                # depends uses the asset inventory, search-all-resources gcloud command
          - asset-type: "compute.googleapis.com/Networks"       # see https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types
            scope: "projects/prod_id"                           # projects/project_id or organizations/org_id or folders/folder_id
            name: "my-vpc"                                      # the name of the asset
      kubeContext:                                              # Kube Context configuration
        clusterName: "cluster name"                             # the name of the GKE cluster in which KCC is installed and setup on
        region: "gcp region"                                    # the region the GKE cluster is in. Set if the cluster is regional else use zone
        project: "my-kcc-project"                               # the GCP project ID
        zone: "gcp zone"                                        # the zone the GKE cluster is in. Only one of region or zone should be set
        internalIP: "true|false"                                # use the internal IP address of the cluster endpoint or not
    app:                                                        # application pipeline stage
      kubeContext:                                              # Kube Context configuration
        clusterName: "cluster name"                             # the name of the GKE cluster in which to intsall your application
        region: "gcp region"                                    # the region the GKE cluster is in. Set if the cluster is regional else use zone
        project: "my-kcc-project"                               # the GCP project ID
        zone: "gcp zone"                                        # the zone the GKE cluster is in. Only one of region or zone should be set
        internalIP: "true|false"                                # use the internal IP address of the cluster endpoint or not