There are two ways to deploy applications on Porter. You can either deploy from your GitHub repository or Docker registry.
If you already maintain and store your own Docker images, you can connect your existing image registry to Porter. If you don't have your own images, simply connect your GitHub account and Porter will handle the rest.
The infrastructure provisioned by Porter depends on which application source you want to deploy from. If you're deploying from a Git repository, Porter will provision both the Kubernetes cluster and the image registry in your cloud provider. All artifacts that Porter builds from your Git repository will then be pushed to the provisioned image registry.
If you're connecting an existing image registry, Porter will only provision the Kubernetes cluster without an image registry. You can deploy your existing images directly from the connected registry, and any image that Porter builds from your Git repositories will be pushed to the registry that you've connected to Porter.
Connecting to Github
Porter uses a GitHub App to authorize and gain access to your GitHub repositories. In order to be able to deploy applications through GitHub repositories, you must first authorize the Porter GitHub App to have access to them.
When you first create a project, you'll be prompted to connect your GitHub account.
Clicking on the button will direct you to GitHub and prompt you to install and authorize the Porter GitHub App in your repositories. You can choose to install Porter on all or only on selected repositories. You can change this later.
Once the Porter Github App is authorized, you can see a list of accounts and organization the Porter has access to through the same screen:
You can install the app into more repositories by clicking on "Install Porter in more repositories". Note that if you are part of an organization, Porter will show you access to every repository that the app is installed into regardless of who it was installed by. So, if your organization does not grant you access to install applications, having an admin install the application into the appropriate repositories is sufficient.
Connecting an Existing Image Registry
If you already have an existing image registry, you can connect your existing registry during project creation. If you don't have an image registry or don't know what that means, skip this step. Porter will handle the rest.
During project creation, you will have the option to connect an image registry in Amazon Elastic Container Registry (ECR), Google Cloud Registry (GCR), and DigitalOcean Container Registry (DOCR). You can find instructions on how to connect to each of these registries here.
You can also connect an existing registry after the project has been created if you decide to deploy from another image registry. You can read the step by step instructions on how to connect each of the image registry providers here.
After you've linked up your GitHub account, next step is to provision the underlying infrastructure.