Source & Build
Connect a GitHub organization, manage a repository, and define the CI that builds and publishes
a container image. Applications later reference the BuildDefinition as their source.
GithubConnection
# manifests/github-connection/default/default.yaml
apiVersion: lowops.manifests.v1
kind: GithubConnection
metadata:
name: default
organization: fincorp
spec:
owner: fincorp-eng
authenticationMethod: GITHUB_APP # GITHUB_APP | PERSONAL_ACCESS_TOKEN
administrators:
- jane-smith
GithubRepository
# manifests/github-connection/default/github-repository/payment-api/payment-api.yaml
apiVersion: lowops.manifests.v1
kind: GithubRepository
metadata:
name: payment-api
github-connection: default
organization: fincorp
spec:
description: "Backend API for payment processing"
strategy: GIT_FLOW # GIT_FLOW | GITHUB_FLOW | TRUNK_BASED
configuration:
wiki: false
projects: false
issues: true
downloads: false
codeOwners:
- path: "*"
owners:
- retail-cloudops
permissions:
administrators:
groups: []
members: []
contributors:
groups:
- retail-devops
members: []
viewers:
groups: []
members: []
BuildDefinition (Go service → container)
# manifests/github-connection/default/github-repository/payment-api/build-definition/payment-api.yaml
apiVersion: lowops.manifests.v1
kind: BuildDefinition
metadata:
name: payment-api
github-repository: payment-api
github-connection: default
organization: fincorp
spec:
description: "CI pipeline for the payment API (Go backend)"
type: GOLANG
stages:
- test
- build
- containerize
golang:
target: ./cmd/server
buildType: bin # bin | lib
containerize:
- name: payment-api # container name applications reference
dockerfile: Dockerfile
registries:
- docker-private # an ArtifactRegistry manifest
ArtifactRegistry (publish target)
# manifests/artifact-registry/docker-private.yaml
apiVersion: lowops.manifests.v1
kind: ArtifactRegistry
metadata:
name: docker-private
organization: fincorp
spec:
public: false
type: DOCKER # DOCKER | MAVEN | PYTHON | NPM | GO | ...
permissions:
readers:
groups:
- retail-developers
members: []
writers:
groups: []
members: []