gke-deploy

command module
v0.0.0-...-921a65a Latest Latest
Warning

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

Go to latest
Published: Apr 19, 2024 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.
apply
Package apply contains the logic for `gke-deploy apply` subcommand.
Package apply contains the logic for `gke-deploy apply` subcommand.
common
Package common functionality shared between commands.
Package common functionality shared between commands.
prepare
Package prepare contains the logic for `gke-deploy prepare` subcommand.
Package prepare contains the logic for `gke-deploy prepare` subcommand.
run
Package run contains the logic for `gke-deploy run` subcommand.
Package run contains the logic for `gke-deploy run` subcommand.
core
cluster
Package cluster contains logic related to talking to a GKE cluster.
Package cluster contains logic related to talking to a GKE cluster.
crd
Package crd contains logic related to CRDs.
Package crd contains logic related to CRDs.
gcp
Package gcp contains logic related to Google Cloud Platform.
Package gcp contains logic related to Google Cloud Platform.
gcs
Package gcs contains logic related to Google Cloud Storage.
Package gcs contains logic related to Google Cloud Storage.
image
Package image contains related to container images.
Package image contains related to container images.
resource
Package resource contains logic related to Kubernetes resource objects.
Package resource contains logic related to Kubernetes resource objects.
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