> For the complete documentation index, see [llms.txt](https://docs.greenstand.org/application-platform/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.greenstand.org/application-platform/devops-notes/ci-cd.md).

# CI-CD

Here the DevOps practices and methodologies that we have in Greenstand&#x20;

**Continuous Integration**

The goal is to build and deploy the application per environment (development, test and production). Every application or micro-service should has at least one continuous integration job.

At the end of a successful build process, the deployable artifact is archived and stored in GitHub asset management with a version matching the for use during deployment, using semantic versioning.

**Continuous Deployment**

The deployment process is dependent on CI. The deployment is into the Digital Ocean clusters via [kustomize](https://kustomize.io/)

Supporting CI-CD there are workflows templates created:

[**Workflow-templates**](https://github.com/Greenstand/.github/tree/master/workflow-templates)

As a solution to encrypt our secrets:

* Kubeseal for secrets: [sealed-secrets](https://github.com/Greenstand/treetracker-infrastructure/tree/master/sealed-secrets)

For how services are reached (i.e. ingress)

* A reverse proxy exists for our services controlled by [Ambassador](https://www.getambassador.io/)
* DNS is set with terraform in our Digital Ocean account

For how our services are monitored, monitoring is split among three pieces

* Prometheus + Grafana for metrics
* Jaeger for traces
* Elasticsearch + Kibana for logs


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.greenstand.org/application-platform/devops-notes/ci-cd.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
