diff --git a/docs/config.toml b/docs/config.toml index 071a8eb4b3..4e904a099d 100644 --- a/docs/config.toml +++ b/docs/config.toml @@ -77,7 +77,7 @@ style = "tango" [[menu.main]] # This section add 'Tutorial' to the header navigation bar. name = "Tutorial" -url = "https://github.com/pipe-cd/tutorial" +url = "/docs-v0.50.x/tutorial/" weight = 25 [params] diff --git a/docs/content/en/docs-v0.50.x/tutorial/_index.md b/docs/content/en/docs-v0.50.x/tutorial/_index.md new file mode 100644 index 0000000000..79946deb8c --- /dev/null +++ b/docs/content/en/docs-v0.50.x/tutorial/_index.md @@ -0,0 +1,38 @@ +--- +title: "Tutorial" +linkTitle: "Tutorial" +weight: 2 +description: > + A hands-on introduction to PipeCD for beginners (30m-1h). +--- + +This is a hands-on introduction to PipeCD for the beginners. + +## The Goal + +By the end of this tutorial, you will be able to: + +- Understand the basic mechanism of PipeCD +- Experiment with PipeCD +- Deploy with your pipeline in GitOps style + +This is **NOT** intended for those who right now want to: + +- Install PipeCD in a production-ready way (See [Docs > Installation](../installation/)) +- Develop and test PipeCD (See [CONTRIBUTING.md](https://github.com/pipe-cd/pipecd/blob/master/CONTRIBUTING.md)) + +## What You Will Do + +You will run PipeCD on local and deploy by it. The architecture is as below: + +![Architecture in the tutorial](/images/tutorial/architecture.svg) + +1. [Mechanism Overview](./overview/): Quickly learn about the basic mechanism +2. [Prerequisites](./prerequisites/): What you need before the tutorial. +3. [Install](./install/): Install PipeCD on local. +4. [Deploy](./deploy/): Deploy and customize the pipeline. +5. [Next Step](./next-step/): Next actions after the tutorial. + +## See Also + +- [PipeCD Docs](../../docs-v0.50.x/) diff --git a/docs/content/en/docs-v0.50.x/tutorial/deploy/_index.md b/docs/content/en/docs-v0.50.x/tutorial/deploy/_index.md new file mode 100644 index 0000000000..b7f3106945 --- /dev/null +++ b/docs/content/en/docs-v0.50.x/tutorial/deploy/_index.md @@ -0,0 +1,27 @@ +--- +title: "Deploy" +linkTitle: "Deploy" +weight: 4 +description: > + Deploy applications using your local PipeCD. +--- + +In this chapter, you will deploy applications by your local PipeCD. + +The deployment flow is like this: + +1. You edit the config. +2. You push the config to remote. +3. Your Piped detects the config change on remote. +4. Your Piped deploys. + +This chapter consists of 2 steps: + +1. [Deploy Simply](./deploy-simply/): Deploy an application in a simple way. +2. [Deploy with a Customized Pipeline](./deploy-with-pipeline/): Customize the deployment pipeline. + +--- + +[Next: 1. Deploy Simply >](./deploy-simply/) + +[< Previous: 3. Install Piped](../install/install-piped/) diff --git a/docs/content/en/docs-v0.50.x/tutorial/deploy/deploy-simply.md b/docs/content/en/docs-v0.50.x/tutorial/deploy/deploy-simply.md new file mode 100644 index 0000000000..ce97c6809d --- /dev/null +++ b/docs/content/en/docs-v0.50.x/tutorial/deploy/deploy-simply.md @@ -0,0 +1,99 @@ +--- +title: "1. Deploy Simply" +linkTitle: "1. Deploy Simply" +weight: 1 +description: > + Deploy an application to your platform in a simple way. +--- + +# 1. Deploy Simply + +In this page, you will deploy an application to your platform in a simple way. + +## 1. Prepare config files + +1-1. Edit configuration files of one platform under `/src/deploy/` in your cloned repository as bellow. + +> **Note:** Each platform has a deployment config file (`app.pipecd.yaml`) + platform specific files. + +- For **Kubernetes**: + - You will run a [helloworld](https://github.com/pipe-cd/pipecd/pkgs/container/helloworld) service. + - Use `kubernetes/simple/`. You do not need to edit. +- For **Google Cloud Run**: + - You will run a [helloworld](https://github.com/pipe-cd/pipecd/pkgs/container/helloworld) service. + - Use `cloudrun/simple/`. You do not need to edit. +- For **Amazon ECS**: + - You will run an nginx service. + - Edit `ecs/simple/` as below. + - `app.pipecd.yaml`: Edit `targetGroupArn`. + - `servicedef.yaml`: Edit `cluster`, `securityGroups`, and `subnets`. + - `taskdef.yaml`: Edit `executionRoleArn`. +- For **AWS Lambda**: + - You will create a function of your own image. + - Edit `lambda/simple/` as below. + - `function.yaml`: Edit `role` and `image`. +- For **Terraform**: + - You will generate a file on local. + - Edit `terraform/simple/` as below. + - `main.tf`: Edit `path` and `filename`. + +1-2. Commit and push the changes to remote. + + +## 2. Register the application + +2-1. Go to the applications page. [http://localhost:8080](http://localhost:8080) + +2-2. Click `+ ADD`. + +2-3. Enter values and click `SAVE`->`SAVE`. + - `Piped`: Your Piped + - `Platform Provider`: The platform + - `Application`: The application you configured in [1.](#1-prepare-config-files) + +![add-application-input](/images/tutorial/deploy/application-add-input.png) + +2-4. If successful, you will see the dialog like the following image. + +![application-is-added](/images/tutorial/deploy/application-is-added.png) + + +## 3. Watch the first deployment + +3-1. Go to the deployments page. [http://localhost:8080/deployments](http://localhost:8080/deployments) + +3-2. Wait until a new deployment automatically appears. Then click it to see details. + +> **Note:** You do NOT need to invoke a deployment by yourself since your Piped automatically starts it. **This is GitOps.** + +![deployment-before-appear](/images/tutorial/deploy/deployment-before-appear.png) +![deployment-appear](/images/tutorial/deploy/deployment-appear.png) + + +3-3. Wait until the status becomes `SUCCESS`/`FAILURE`. If it shows `FAILURE`, check the log in the page. + +![deployment-deploying](/images/tutorial/deploy/deployment-deploying.png) + + +3-4. When the status becomes `SUCCESS`, the deployment is successfully finished. + +![deployment-success](/images/tutorial/deploy/deployment-success.png) + +3-5. Check your platform (Kubernetes cluster, cloud console, etc.) to confirm the result. + + +## 4. Edit the config and watch a new deployment + +4-1. Edit the config file you deployed. (e.g. Change the image tag, sizing, etc.) + +4-2. Commit and push the change to remote. + +4-3. Go to the deployments page again. [http://localhost:8080/deployments](http://localhost:8080/deployments) + +4-4. A new deployment will start in a few minutes. + +--- + +[Next: Deploy with a Customized Pipeline >](../deploy-with-pipeline/) + +[< Previous: Deploy](../) diff --git a/docs/content/en/docs-v0.50.x/tutorial/deploy/deploy-with-pipeline.md b/docs/content/en/docs-v0.50.x/tutorial/deploy/deploy-with-pipeline.md new file mode 100644 index 0000000000..fca01e28f9 --- /dev/null +++ b/docs/content/en/docs-v0.50.x/tutorial/deploy/deploy-with-pipeline.md @@ -0,0 +1,102 @@ +--- +title: "2. Deploy with a Customized Pipeline" +linkTitle: "2. Deploy with Pipeline" +weight: 2 +description: > + Customize the deployment pipeline with strategies like canary or blue/green. +--- + +# 2. Deploy with a Customized Pipeline + +In this page, you will customize the deployment pipeline by editing the `app.pipecd.yaml` deployment configuration. + +## Overview + +In the previous step, you deployed an application using the default pipeline (Quick Sync). +PipeCD also supports customized pipelines with stages such as: + +- **K8S_CANARY_ROLLOUT** / **ECS_CANARY_ROLLOUT**: Deploy a canary version alongside the stable version. +- **K8S_TRAFFIC_ROUTING** / **ECS_TRAFFIC_ROUTING**: Shift traffic between the stable and canary versions. +- **WAIT_APPROVAL**: Pause the pipeline until a manual approval is given on the console. +- **ANALYSIS**: Automatically analyze metrics to determine the deployment's health. +- **K8S_PRIMARY_ROLLOUT** / **ECS_PRIMARY_ROLLOUT**: Promote the canary version to primary. +- **K8S_CANARY_CLEAN** / **ECS_CANARY_CLEAN**: Clean up the canary resources. + +## Steps + +### 1. Edit `app.pipecd.yaml` + +Edit the `app.pipecd.yaml` in the directory of the platform you deployed in the previous step. + +For example, for **Kubernetes**, edit `src/deploy/kubernetes/simple/app.pipecd.yaml`: + +```yaml +apiVersion: pipecd.dev/v1beta1 +kind: KubernetesApp +spec: + name: tutorial-kubernetes-simple + pipeline: + stages: + - name: K8S_CANARY_ROLLOUT + with: + replicas: 50% + - name: WAIT_APPROVAL + with: + approvers: + - hello-pipecd + - name: K8S_PRIMARY_ROLLOUT + - name: K8S_CANARY_CLEAN +``` + +For **Amazon ECS**, edit `src/deploy/ecs/simple/app.pipecd.yaml`: + +```yaml +apiVersion: pipecd.dev/v1beta1 +kind: ECSApp +spec: + name: tutorial-ecs-simple + pipeline: + stages: + - name: ECS_CANARY_ROLLOUT + with: + scale: 50% + - name: WAIT_APPROVAL + with: + approvers: + - hello-pipecd + - name: ECS_PRIMARY_ROLLOUT + - name: ECS_CANARY_CLEAN +``` + +### 2. Edit a manifest + +Make some change to the manifest file as well (e.g., update the image tag or replica count) so that Piped detects a new change to deploy. + +### 3. Push and watch + +1. Commit and push the changes to remote. + + ```sh + git add . + git commit -m "Add pipeline stages" + git push origin main + ``` + +2. Go to the deployments page. [http://localhost:8080/deployments](http://localhost:8080/deployments) + +3. A new deployment will start in a few minutes. You will see the pipeline stages in the deployment details. + +4. When the pipeline reaches the `WAIT_APPROVAL` stage, click `APPROVE` on the console to continue. + +5. After approval, the remaining stages will execute automatically. + +## See Also + +- [Configuring Deployment Pipeline](https://pipecd.dev/docs/user-guide/managing-application/customizing-deployment/) +- [Pipeline Stages Reference](https://pipecd.dev/docs/user-guide/managing-application/customizing-deployment/) + +--- + +[Next: Congratulations! >](../../tutorial/next-step/) + +[< Previous: Deploy Simply](../deploy-simply/) diff --git a/docs/content/en/docs-v0.50.x/tutorial/install/_index.md b/docs/content/en/docs-v0.50.x/tutorial/install/_index.md new file mode 100644 index 0000000000..ba8121f8f3 --- /dev/null +++ b/docs/content/en/docs-v0.50.x/tutorial/install/_index.md @@ -0,0 +1,21 @@ +--- +title: "Install" +linkTitle: "Install" +weight: 3 +description: > + Install PipeCD Control Plane and Piped on your local environment. +--- + +In this chapter, you will run a Control Plane and a Piped locally. + +The installation consists of 3 steps: + +1. [Setup Git Repository](./setup-git-repository/) +2. [Install Control Plane](./install-control-plane/) +3. [Install Piped](./install-piped/) + +--- + +[Next: 1. Setup Git Repository >](./setup-git-repository/) + +[< Previous: Prerequisites](../prerequisites/) diff --git a/docs/content/en/docs-v0.50.x/tutorial/install/install-control-plane.md b/docs/content/en/docs-v0.50.x/tutorial/install/install-control-plane.md new file mode 100644 index 0000000000..058a2f81ae --- /dev/null +++ b/docs/content/en/docs-v0.50.x/tutorial/install/install-control-plane.md @@ -0,0 +1,64 @@ +--- +title: "2. Install Control Plane" +linkTitle: "2. Install Control Plane" +weight: 2 +description: > + Install a Control Plane on local by docker-compose. +--- + +# 2. Install Control Plane + +In this page, you will install a Control Plane on local by `docker-compose`. + +## Installation + +1. Execute the following command on your `src/install/control-plane/docker-compose.yaml`. + ```sh + docker-compose up + ``` + + After the command, you will see logs as below. + ```log + pipecd-server-1 | successfully loaded control-plane configuration + pipecd-server-1 | successfully connected to file store + pipecd-server-1 | successfully connected to data store + pipecd-server-1 | grpc server will be run without tls + pipecd-server-1 | grpc server will be run without tls + pipecd-server-1 | grpc server is running on [::]:9080 + pipecd-server-1 | grpc server is running on [::]:9083 + pipecd-server-1 | grpc server will be run without tls + pipecd-server-1 | admin server is running on 9085 + pipecd-server-1 | grpc server is running on [::]:9081 + pipecd-server-1 | start running http server on :9082 + ``` + +## Confirmation + +1. Access the console running on [http://localhost:8080](http://localhost:8080) +2. Enter the following value and click `CONTINUE`. + - `Project Name`: `tutorial` + + ![signin-project](/images/tutorial/install/signin-project.png) + +3. Enter the following values and click `LOGIN`. + - `Username`: `hello-pipecd` + - `Password`: `hello-pipecd` + + ![signin-user](/images/tutorial/install/signin-user.png) + +4. If successful, the following page will appear. + + ![applications-page](/images/tutorial/install/applications.png) + + +## See Also + +- [Architecture Overview](https://pipecd.dev/docs/user-guide/managing-controlplane/architecture-overview/) +- [Managing Control Plane](https://pipecd.dev/docs/user-guide/managing-controlplane/) +- [Installing Control Plane on Kubernetes](https://pipecd.dev/docs/installation/install-control-plane/installing-controlplane-on-k8s/) + +--- + +[Next: 3. Install Piped >](../install-piped/) + +[< Previous: 1. Setup Git Repository](../setup-git-repository/) diff --git a/docs/content/en/docs-v0.50.x/tutorial/install/install-piped.md b/docs/content/en/docs-v0.50.x/tutorial/install/install-piped.md new file mode 100644 index 0000000000..63de4db3f6 --- /dev/null +++ b/docs/content/en/docs-v0.50.x/tutorial/install/install-piped.md @@ -0,0 +1,110 @@ +--- +title: "3. Install Piped" +linkTitle: "3. Install Piped" +weight: 3 +description: > + Run a Piped agent on local as a single binary. +--- + +# 3. Install Piped + +In this page, you will run a Piped agent on local as a single binary. + +## Installation + +1. Create a Piped ID on the console. + + 1-1. Access the Piped settings page on the console: [http://localhost:8080/settings/piped](http://localhost:8080/settings/piped) + + 1-2. Click `+ ADD`. + ![ADD Piped](/images/tutorial/install/piped-add-button.png) + + 1-3. Enter any `Name` and `Description`, and then click `SAVE`. + ![Input piped](/images/tutorial/install/piped-add-input.png) + + 1-4. You will see the Piped's ID and Key. **You will use them in the following steps.** + ![Piped is registered](/images/tutorial/install/piped-registered.png) + +2. Move on to the directory you cloned in [1. Setup Git Repository](../setup-git-repository/). + + ```console + cd + cd src/install/piped/ + ``` + +3. Replace `` below to the `Piped Key` value you got in `1-4.` and create a file of the key.[^1] + + ```console + echo -n > .pipedKey + ``` + +4. Edit your `src/install/piped/piped.yaml` as below. + - `spec.pipedID`: `Piped Id` you got in `1-4.` + - `spec.pipedKeyFile`: `/src/install/piped/.pipedKey` + - `spec.repositories[0].remote`: The URL of your repository on GitHub you created in [1. Setup Git Repository](../setup-git-repository/). + - `spec.platformProviders`: Uncomment one item. You will deploy to the environment. + +5. Get the official binary of Piped from [pipecd/releases](https://github.com/pipe-cd/pipecd/releases/latest). Choose your OS and CPU architecture. + + ```console + # OS=darwin or linux + # CPU=arm64 or amd64 + curl -Lo ./piped https://github.com/pipe-cd/pipecd/releases/download/v0.50.1/piped_v0.50.1_${OS}_${CPU} + ``` + +6. Make the Piped executable. + + ```console + chmod +x ./piped + ``` + +7. Run the Piped.[^2] + + ```console + ./piped piped --config-file=./piped.yaml --insecure + ``` + +
+ Troubleshooting (Click to expand) + + - `failed to create api client {"error": "context deadline exceeded"}` + - It means the piped failed to connect to the control plane. + - Check `apiAddress` in `piped.yaml` + - Check whether the control plane is serving on `apiAddress`. + + - `rpc error: code = Unauthenticated desc = Unauthenticated` + - It means the piped connected to the control plane but failed to authenticate. + - Check `projectID`, `pipedID`, `pipedKeyFile` in `piped.yaml`. + - Check the value in the `pipedKeyFile`. + + + - `failed to clone from remote` + - It means the piped successfully connected to the control plane with authentication but failed to clone from GitHub. + - Check `spec.git.repositories`>`remote`,`branch`. + +
+ + +## Confirmation + +1. Access the Piped settings page on the console: [http://localhost:8080/settings/piped](http://localhost:8080/settings/piped) + + If successful, you will see a green mark(`Online`) in the `Name` area. + If not green, please wait for a few minutes. + ![Piped Status](/images/tutorial/install/piped-status.png) + +## See Also + +- [Install Piped](https://pipecd.dev/docs/installation/install-piped/) +- [Managing Piped](https://pipecd.dev/docs/user-guide/managing-piped/) +- [Configuration Reference of Piped](https://pipecd.dev/docs/user-guide/managing-piped/configuration-reference/) + +[^1]: Do **NOT** push a Piped Key to remote because it is a credential. In actual use, you should store it and `piped.yaml` in a secret management tool. + +[^2]: `--insecure` option disables TLS of the communication from the Piped to the Control Plane. (cf. [Piped's Runtime Options](https://pipecd.dev/docs/user-guide/managing-piped/runtime-options/)) + +--- + +[Next: Deploy >](../../tutorial/deploy/) + +[< Previous: 2. Install Control Plane](../install-control-plane/) diff --git a/docs/content/en/docs-v0.50.x/tutorial/install/setup-git-repository.md b/docs/content/en/docs-v0.50.x/tutorial/install/setup-git-repository.md new file mode 100644 index 0000000000..e2a4681e16 --- /dev/null +++ b/docs/content/en/docs-v0.50.x/tutorial/install/setup-git-repository.md @@ -0,0 +1,48 @@ +--- +title: "1. Setup Git Repository" +linkTitle: "1. Setup Git Repository" +weight: 1 +description: > + Prepare the Git repository for the tutorial. +--- + +# 1. Setup Git Repository + +In this page, you will prepare the Git repository for the tutorial. + +## Steps + +1. Fork the [pipe-cd/tutorial](https://github.com/pipe-cd/tutorial) repository on GitHub. + +2. Clone the forked repository to your local machine. + + ```sh + git clone https://github.com//tutorial.git + cd tutorial + ``` + +3. Confirm that you can push to the repository. + + ```sh + git push origin main + ``` + +## What Is in the Repository + +The repository contains: + +- `src/install/`: Configuration files for installing Control Plane and Piped. + - `control-plane/docker-compose.yaml`: Docker Compose file for the Control Plane. + - `piped/piped.yaml`: Configuration file for the Piped. +- `src/deploy/`: Configuration files for deploying applications. + - Platform-specific directories (`kubernetes/`, `cloudrun/`, `ecs/`, `lambda/`, `terraform/`) with deployment configurations. + +## See Also + +- [Git Documentation](https://git-scm.com/doc) + +--- + +[Next: 2. Install Control Plane >](../install-control-plane/) + +[< Previous: Install](../) diff --git a/docs/content/en/docs-v0.50.x/tutorial/next-step.md b/docs/content/en/docs-v0.50.x/tutorial/next-step.md new file mode 100644 index 0000000000..fef20b575e --- /dev/null +++ b/docs/content/en/docs-v0.50.x/tutorial/next-step.md @@ -0,0 +1,41 @@ +--- +title: "Next Step" +linkTitle: "Next Step" +weight: 5 +description: > + Congratulations! Here are the next actions after the tutorial. +--- + +# Congratulations! + +You have successfully completed the PipeCD tutorial. You have learned: + +- The basic architecture and mechanism of PipeCD +- How to install Control Plane and Piped on local +- How to deploy applications using GitOps +- How to customize the deployment pipeline + +## Next Step + +- For users: + - [Installation](../../installation/) + - [User Guide](../../user-guide/) +- For developers: + - [CONTRIBUTING.md](https://github.com/pipe-cd/pipecd/blob/master/CONTRIBUTING.md) +- Community: + - [X](https://x.com/pipecd_dev): Don't miss our latest news! + - [Community Meeting](https://docs.google.com/document/d/1AtE0CQYbUV5wLfvAcl9mo9MyTCH52BuU7AngVUvE7vg/): Let's share or discuss anything about PipeCD! (in English/Japanese) + + +## Give us Feedback! + +We want to improve the content and make it easier to start learning PipeCD for beginners. + +Let us know on [Issues](https://github.com/pipe-cd/tutorial/issues/new) or Pull Requests if you had any problem on installing/deploying or found a mistake. + + +_Thank you so much!_ + +--- + +[< Previous: Deploy with a Customized Pipeline](../deploy/deploy-with-pipeline/) diff --git a/docs/content/en/docs-v0.50.x/tutorial/overview.md b/docs/content/en/docs-v0.50.x/tutorial/overview.md new file mode 100644 index 0000000000..e1102acbf9 --- /dev/null +++ b/docs/content/en/docs-v0.50.x/tutorial/overview.md @@ -0,0 +1,43 @@ +--- +title: "Mechanism Overview" +linkTitle: "Mechanism Overview" +weight: 1 +description: > + Quickly learn about the basic mechanism of PipeCD. +--- + +## Architecture + +PipeCD follows a client-server architecture with two main components: + +- **Control Plane**: The centralized component that manages the web console, API, and data storage. It is responsible for managing projects, applications, pipeds, and deployments. +- **Piped**: The agent that runs in your cluster or environment. It watches for changes in your Git repository and executes deployments according to the pipeline definition. + +![Architecture overview](/images/architecture-overview.png) + +### How It Works + +1. **Developer** pushes a change to the Git repository (e.g., updating a manifest or configuration). +2. **Piped** detects the change by periodically polling the Git repository. +3. **Piped** compares the desired state (from Git) with the current state (in the target platform). +4. If there is a difference, **Piped** automatically triggers a deployment. +5. **Piped** executes the deployment pipeline stages defined in `app.pipecd.yaml`. +6. The deployment progress and results are reported to the **Control Plane** and displayed on the web console. + +### Scalability in an Organization + +PipeCD is designed to scale across large organizations: + +- **Multiple Pipeds**: You can run multiple Piped agents, each managing different environments or teams. +- **Multi-cluster / Multi-cloud**: Each Piped can connect to different platforms (Kubernetes, Cloud Run, ECS, Lambda, Terraform, etc.). +- **Single Control Plane**: All Pipeds connect to one Control Plane, providing a unified view of all deployments across the organization. +- **Project-based isolation**: Different teams can have their own projects within the same Control Plane. + +## See Also + +- [Concepts](../../docs-v0.50.x/concepts/) +- [Architecture Overview](../../docs-v0.50.x/user-guide/managing-controlplane/architecture-overview/) + +--- + +[Next: Prerequisites >](../prerequisites/) diff --git a/docs/content/en/docs-v0.50.x/tutorial/prerequisites.md b/docs/content/en/docs-v0.50.x/tutorial/prerequisites.md new file mode 100644 index 0000000000..6d7c17626d --- /dev/null +++ b/docs/content/en/docs-v0.50.x/tutorial/prerequisites.md @@ -0,0 +1,43 @@ +--- +title: "Prerequisites" +linkTitle: "Prerequisites" +weight: 2 +description: > + What you need before starting the tutorial. +--- + +# Prerequisites + +To perform this tutorial, you need the following: + +- [docker-compose](https://docs.docker.com/compose/install/): You can execute `docker-compose up`. +- `git`: You can execute `git clone` and `git push` to your repositories on GitHub. +- At least one of the following. It depends on where you deploy. + - for **Kubernetes**: + - You have a Kubernetes cluster. + - You can connect the cluster with kubectl. + - for **Google Cloud Run**: + - You can call Cloud Run APIs from you local to your Google Cloud project. + - for **Amazon ECS**: + - You can call APIs of ECS and ELB from your local to your AWS account. See [here](https://pipecd.dev/docs/installation/install-piped/required-permissions/#for-ecsapp) for details. + - You have all of (i.e. all you need to create an ECS service): + - an ECS cluster + - an ELB that the service will receive traffic from + - two target groups that the ELB routes traffic to the service + - you need to link one target group to the ELB's listener rule + - two subnets where the service will be placed + - a security group which allows `HTTP:80` inbound from your local + - a task execution role which has [`AmazonECSTaskExecutionRolePolicy`](https://docs.aws.amazon.com/ja_jp/aws-managed-policy/latest/reference/AmazonECSTaskExecutionRolePolicy.html). See [here](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html). + - for **AWS Lambda**: + - You can call APIs of Lambda from your local to your AWS account. See [here](https://pipecd.dev/docs/installation/install-piped/required-permissions/#for-lambdaapp) for details. + - You have all of (i.e. all you need to create a Lambda function): + - an image in your ECR Repository + - function's execution role + - for **Terraform**: + - You can execute [`terraform` commands](https://developer.hashicorp.com/terraform/cli/commands) on local. + +--- + +[Next: Install >](../install/) + +[< Previous: Mechanism Overview](../overview/) diff --git a/docs/static/images/tutorial/architecture.svg b/docs/static/images/tutorial/architecture.svg new file mode 100644 index 0000000000..5cfac0dc1d --- /dev/null +++ b/docs/static/images/tutorial/architecture.svg @@ -0,0 +1,3 @@ +
 Local
 Local
Control Plane
Control Plane +
report
report
edit
edit
view console
view console
 deploy 
 deploy 
<private>
your/tutorial
<private>...
push
push
 install 
 install 
tutorial
tutorial
Piped
Piped +
watch
watch
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/static/images/tutorial/deploy/application-add-input.png b/docs/static/images/tutorial/deploy/application-add-input.png new file mode 100644 index 0000000000..ea376f13bc Binary files /dev/null and b/docs/static/images/tutorial/deploy/application-add-input.png differ diff --git a/docs/static/images/tutorial/deploy/application-is-added.png b/docs/static/images/tutorial/deploy/application-is-added.png new file mode 100644 index 0000000000..59965a55e2 Binary files /dev/null and b/docs/static/images/tutorial/deploy/application-is-added.png differ diff --git a/docs/static/images/tutorial/deploy/deployment-appear.png b/docs/static/images/tutorial/deploy/deployment-appear.png new file mode 100644 index 0000000000..4f98bfa2de Binary files /dev/null and b/docs/static/images/tutorial/deploy/deployment-appear.png differ diff --git a/docs/static/images/tutorial/deploy/deployment-before-appear.png b/docs/static/images/tutorial/deploy/deployment-before-appear.png new file mode 100644 index 0000000000..3933ad8cf7 Binary files /dev/null and b/docs/static/images/tutorial/deploy/deployment-before-appear.png differ diff --git a/docs/static/images/tutorial/deploy/deployment-deploying.png b/docs/static/images/tutorial/deploy/deployment-deploying.png new file mode 100644 index 0000000000..4273790626 Binary files /dev/null and b/docs/static/images/tutorial/deploy/deployment-deploying.png differ diff --git a/docs/static/images/tutorial/deploy/deployment-success.png b/docs/static/images/tutorial/deploy/deployment-success.png new file mode 100644 index 0000000000..a59d02bef8 Binary files /dev/null and b/docs/static/images/tutorial/deploy/deployment-success.png differ diff --git a/docs/static/images/tutorial/install/applications.png b/docs/static/images/tutorial/install/applications.png new file mode 100644 index 0000000000..d9b61f8ee0 Binary files /dev/null and b/docs/static/images/tutorial/install/applications.png differ diff --git a/docs/static/images/tutorial/install/piped-add-button.png b/docs/static/images/tutorial/install/piped-add-button.png new file mode 100644 index 0000000000..bc9d1ae749 Binary files /dev/null and b/docs/static/images/tutorial/install/piped-add-button.png differ diff --git a/docs/static/images/tutorial/install/piped-add-input.png b/docs/static/images/tutorial/install/piped-add-input.png new file mode 100644 index 0000000000..9ffd7cd14f Binary files /dev/null and b/docs/static/images/tutorial/install/piped-add-input.png differ diff --git a/docs/static/images/tutorial/install/piped-registered.png b/docs/static/images/tutorial/install/piped-registered.png new file mode 100644 index 0000000000..051f237687 Binary files /dev/null and b/docs/static/images/tutorial/install/piped-registered.png differ diff --git a/docs/static/images/tutorial/install/piped-status.png b/docs/static/images/tutorial/install/piped-status.png new file mode 100644 index 0000000000..adc40b1aa1 Binary files /dev/null and b/docs/static/images/tutorial/install/piped-status.png differ diff --git a/docs/static/images/tutorial/install/signin-project.png b/docs/static/images/tutorial/install/signin-project.png new file mode 100644 index 0000000000..a241532bd5 Binary files /dev/null and b/docs/static/images/tutorial/install/signin-project.png differ diff --git a/docs/static/images/tutorial/install/signin-user.png b/docs/static/images/tutorial/install/signin-user.png new file mode 100644 index 0000000000..2e4a7d9cde Binary files /dev/null and b/docs/static/images/tutorial/install/signin-user.png differ