Google’s new application manager is focused on simplifying setting up GitOps with Google Kubernetes Engine (GKE) as the target platform. GitOps is an approach where developers include a definition of the infrastructure in a git repository alongside the code itself.
This allows developers to automate the implementation with a script that sets up both the production environment and the compilation of the code. If developers then need to make a change to the infrastructure, they can do so by modifying its definition, with all the benefits of history and management that come with using a repository.
The new Application Manager is an add-on that runs in a Google Kubernetes Enterprise (GKE) cluster, and has a command line interface that is used when running appctl.
GitHub or GitLab
Repositories should be hosted in GitHub or GitLab. Once installed, developers can use commands to manage applications. This starts with creating repositories for an application. By default, a developer gets two repositories, one for configuring the infrastructure and one for the actual code.
Next, the developer sets the requirements for deploying Kubernetes in a YAML file, according to a Kustomize configuration, and appctl commands can be used to add environments. These can be used for testing, staging, and production. Then the developer prepares a tagged version of the application, to be deployed with the appctl prepare command.
The latter generates a pull request in the repository, which the developer can then assess. Once the request is approved, appctl can be used to create the specified environment and then deploy an application.