Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docs Splash Page Update #3031

Merged
merged 3 commits into from
Oct 10, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 25 additions & 24 deletions docs/content/en/docs/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,35 +8,37 @@ menu:
---

Skaffold is a command line tool that facilitates continuous development for
Kubernetes applications. You can iterate on your application source code
locally then deploy to local or remote Kubernetes clusters. Skaffold handles
the workflow for building, pushing and deploying your application. It also
provides building blocks and describe customizations for a CI/CD pipeline.
Kubernetes-native applications. Skaffold handles the workflow for building,
pushing, and deploying your application, and provides building blocks for
creating CI/CD pipelines. This enables you to focus on iterating on your
application locally while Skaffold continuously deploys to your local or remote
Kubernetes cluster.

## Features

* Fast local Kubernetes Development
* **optimized "Source to Kubernetes"** - Skaffold detects changes in your source code and handles the pipeline to
**build**, **push**, and **deploy** your application automatically with **policy based image tagging** and **highly optimized, fast local workflows**
* **continuous feedback** - Skaffold automatically manages logging and port-forwarding
**build**, **push**, and **deploy** your application automatically with **policy-based image tagging** and **highly optimized, fast local workflows**
* **continuous feedback** - Skaffold automatically manages deployment logging and resource port-forwarding
* Skaffold projects work everywhere
* **share with other developers** - Skaffold is the easiest way to **share your project** with the world: `git clone` and `skaffold run`
* **context aware** - use Skaffold profiles, user level config, environment variables and flags to describe differences in environments
* **CI/CD building blocks** - use `skaffold run` end-to-end or just part of Skaffold stages from build to deployment in your CI/CD system
* **context aware** - use Skaffold profiles, local user config, environment variables, and flags to easily incorporate differences across environments
* **CI/CD building blocks** - use `skaffold build` and `skaffold deploy` as part of your CI/CD pipeline, or simply `skaffold run` end-to-end
* **GitOps integration** - use `skaffold render` to build your images and render templated Kubernetes manifests for use in GitOps workflows
* skaffold.yaml - a single pluggable, declarative configuration for your project
* **skaffold init** - Skaffold discovers your files and generates its own config file
* **multi-component apps** - Skaffold supports applications consisting of multiple components
* **bring your own tools** - Skaffold has a pluggable architecture to allow for different implementations of the stages
* **skaffold init** - Skaffold can discover your build and deployment configuration and generate a Skaffold config
* **multi-component apps** - Skaffold supports applications with many components, making it great for microservice-based applications
* **bring your own tools** - Skaffold has a pluggable architecture, allowing for different implementations of the build and deploy stages
* Lightweight
* **client-side only** - Skaffold does not require maintaining a cluster-side component, so there is no overhead or maintenance burden to
your cluster.
* **client-side only** - Skaffold has no cluster-side component, so there's no overhead or maintenance burden to
your cluster
* **minimal pipeline** - Skaffold provides an opinionated, minimal pipeline to keep things simple

## Demo

![architecture](/images/intro.gif)

## A Glance at Skaffold Workflow and Architecture
## Skaffold Workflow and Architecture

Skaffold simplifies your development workflow by organizing common development
stages into one simple command. Every time you run `skaffold dev`, the system
Expand All @@ -52,17 +54,16 @@ stages into one simple command. Every time you run `skaffold dev`, the system
1. Cleans up deployed artifacts on exit (Ctrl+C)

{{< alert title="Note" >}}
Skaffold also supports skipping stages if you want to.
Any of these stages can be skipped.
{{< /alert >}}

What's more, the pluggable architecture is central to Skaffold's design, allowing you to use
the tool you prefer in each stage. Also, Skaffold's `profiles` feature grants
you the freedom to switch tools as you see fit depending on the context.
The pluggable architecture is central to Skaffold's design, allowing you to use
your preferred tool or technology in each stage. Also, Skaffold's `profiles` feature
grants you the freedom to switch tools on the fly with a simple flag.

For example, if you are coding on a local machine, you can configure Skaffold to build artifacts
with local Docker daemon and deploy them to minikube
using `kubectl`, the Kubernetes command-line interface and when you finalize your
design, you can switch to the production profile and start building with
with your local Docker daemon and deploy them to minikube using `kubectl`.
When you finalize your design, you can switch to your production profile and start building with
Google Cloud Build and deploy with Helm.

Skaffold supports the following tools:
Expand Down Expand Up @@ -92,7 +93,7 @@ Skaffold supports the following tools:

{{% tab "TAG POLICIES" %}}
* tag by git commit
* tag by current date&time
* tag by current date & time
* tag by environment variables based template
* tag by digest of the Docker image
{{% /tab %}}
Expand All @@ -109,5 +110,5 @@ Skaffold supports the following tools:

Besides the above steps, Skaffold also automatically manages the following utilities for you:

* forward container ports to your local machine using `kubectl port-forward`
* aggregate all the logs from the deployed pods
* port-forwarding of deployed resources to your local machine using `kubectl port-forward`
* log aggregation from the deployed pods