gke-deploy

command module
v0.0.0-...-b4359b8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 19, 2025 License: Apache-2.0 Imports: 2 Imported by: 0

README

GKE Deploy

This tool deploys an application to a Kubernetes Engine cluster, following Google's recommended best practices.

gke-deploy vs kubectl

Using gke-deploy to deploy an application to Kubernetes Engine differs from kubectl in that gke-deploy is a wrapper around a kubectl apply deployment that follows Google's recommended best practices by...

  • Modifying a set of Kubernetes configuration files to use a container image's digest instead of a tag

  • Adding several recommended labels to the set of Kubernetes configuration files

  • Getting authorized to access a GKE cluster

  • Applying the set of Kubernetes configuration files that were modified in the prepare step, using kubectl apply

  • Waiting for applied Kubernetes configuration to be ready

Usage

gke-deploy run [flags]

This command executes all of the best practices mentioned above, in sequence.

gke-deploy prepare [flags]

This command executes the steps to modify and add labels to a set of Kubernetes configuration files, and skips the steps to get authorized to access a GKE cluster, apply configuration, and wait.

gke-deploy apply [flags]

This command skips the steps to modify and add labels to a set of Kubernetes configuration files, and executes the steps to get authorized to access a GKE cluster, apply configuration, and wait.

Deploying with Cloud Build

View this page for examples on how to use gke-deploy with Cloud Build.

Automated Deployments with Cloud Build

Follow these instructions to set up continuous deployment.

Application CR

You can deploy an Application Custom Resource for your application:

  1. Follow the instructions here to create or update a GKE cluster to install Application Delivery, which supports the Application CRD.

    You can also install the CRD manually by following the instructions here.

  2. Use the --create-application-cr flag with gke-deploy prepare or gke-deploy apply to create an Application CR for your application.

Testing Locally

Although gke-deploy is meant to be used as a build step with Cloud Build, you can run it locally for testing.

  1. First, install kubectl as a dependency.

  2. Next, install gke-deploy:

    go install github.com/GoogleCloudPlatform/cloud-builders/gke-deploy@latest
    gke-deploy -h
    
  3. If your kubectl is pointing to a cluster, you can test out a deployment by deploying an application with one simple command:

    # Deploy an nginx Deployment with a load balancer exposing port 80.
    gke-deploy run -i nginx -x 80
    
  4. After the command finishes successfully, gke-deploy will print a table displaying deployed resources. You can visit the IP address printed in the Service row.

    e.g.,

    deployed-resources

    curl 35.196.67.253
    

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
Package cmd contains the logic for `gke-deploy` top-level command.
Package cmd contains the logic for `gke-deploy` top-level command.
core
Package deployer contains logic related to deploying to a GKE cluster.
Package deployer contains logic related to deploying to a GKE cluster.
doc-gen generates gke-deploy's help docs.
doc-gen generates gke-deploy's help docs.
Package services contains logic related to HTTP and CLI clients.
Package services contains logic related to HTTP and CLI clients.
Package testservices contains fake services used for unit tests.
Package testservices contains fake services used for unit tests.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL