Landscaper provides the means to describe, install and maintain cloud-native landscapes. It allows you to express an order of building blocks, connect output with input data and ultimately, bring your landscape to live.
What does a 'landscape' consist of? In this context it refers not only to application bundles but also includes infrastructure components in public, private and hybrid environments.
While tools like Terraform, Helm or native Kubernetes resources work well in their specific problem space, it has been a manual task to connect them so far. Landscaper solves this specific problem and offers a fully-automated installation flow. To do so, it translates blueprints of components into actionable items and employs well-known tools like Helm or Terraform to deploy them. In turn the produced output can be used as input and trigger for a subsequent step - regardless of the tools used underneath. Since implemented as a set of Kubernetes operators, Landscaper uses the concept of reconciliation to enforce a desired state, which also allows for updates to be rolled out smoothly.
Work in progress... partial and unfinished documentation ahead!
- The documentation can be found here.
- A list of available deployers is maintained here.
- A glossary can be found here
Landscaper is a Kubernetes controller that can be easily installed via helm using the helm chart in charts/landscaper.
helm install -n ls-system landscaper ./charts/landscaper
We also build oci charts so the landscaper can also be installed with a specific version with:
export HELM_EXPERIMENTAL_OCI=1
export LS_VERSION="0.1.0"
helm chart pull eu.gcr.io/gardener-project/landscaper/charts/landscaper-controller:$LS_VERSION
helm chart export eu.gcr.io/gardener-project/landscaper/charts/landscaper-controller:$LS_VERSION ./charts
helm install ./charts
The chart can be configured via the values file:
image:
tag: image version # .e.g. 0.2.0; check the latest releases in the github releases
landscaper:
registryConfig:
allowPlainHttpRegistries: false
secrets: # contains optional oci secrets
default: {
"auths": {
"hostname": {
"auth": "my auth"
}
}
}
# deploy with integrated deployers for quick start
deployers:
- container
- helm
- manifest