Open Source Helm Deployment
Last updated
Last updated
Scoutflo Deploy makes it easy to deploy applications using Helm charts, providing an intuitive process that guides you through each step. This section details the prerequisites, steps, and critical considerations to ensure a smooth deployment experience.
Before you start deploying your application, ensure the following are in place:
You have an active workspace where you want to deploy the application.
Your workspace contains a connected or created Kubernetes cluster ready to host your application.
You have the necessary configuration details and environment variables required for your application setup.
Access the App Store: Navigate to 'App Store' on the left sidebar, located below the workspace dropdown.
Choose the application you wish to deploy from the available catalogue. This catalogue includes a variety of options such as web applications, microservices, databases, and more. After you select an app, and click on it, you will be redirected to the 'Pre-Deployment' page of this application.
As part of the deployment journey, you’ll need to complete three essential steps before initiating the deployment:
Step 1: Select Your Cluster
Description: Choose the Kubernetes cluster where your application will be hosted.
Status: Not Completed until you select a cluster.
Step 2: Confirm Application Add-Ons
Description: Review and select any additional services or add-ons your application may require, such as monitoring tools, logging agents, or database connections.
Status: Not Completed until you've confirmed your choices.
Step 3: Set Environment Variables
Description: Configure the necessary environment variables required for your application to function correctly.
Status: Not Completed until all required variables are set.
Note: Only after all these steps are completed, you will be able to hit the "Deploy" button. The application will then be deployed on the selected cluster, under the specified namespace, with the provided configurations.
Step 3: From the list of available Kubernetes clusters, select the specific cluster where you want to deploy your application.
Enter Namespace Details:
You will see an input field for "Namespace." Enter the custom namespace you want the app to be deployed under within the selected cluster. This helps isolate your application and manage resources more effectively.
After selecting the cluster, you'll be asked whether your application needs a database:
Yes: Proceed to set up a new database or connect to an existing one.
No: Continue to the next step.
Options for Database Setup:
Option 1: Connect to an Existing Database
If you have an existing database available, select this option to connect your application to it.
Option 2: Create a New Database
Choose the desired database type (e.g., Redis, PostgreSQL, MongoDB) and proceed with the creation process.
If you opted to create a new database, follow these configuration steps:
Set Database Credentials: Configure the database username, password, and access details.
Apply Advanced Settings:
Autoscaling: Configure automatic scaling based on demand.
Backups: Set up periodic database backups.
Whitelisted IPs: Specify the IP addresses allowed to access your database.
Many applications require specific environment variables for proper functioning. In this step, you’ll set up all necessary variables, such as database connection strings, API keys, and other sensitive information needed by your application.
Scoutflo Deploy offers three options for setting up environment variables, each catering to different preferences and levels of experience:
GUI (Graphical User Interface)
This option provides an easy-to-use, form-based interface where you can manually enter environment variables.
Best suited for those who prefer a more visual approach without dealing with code directly.
YAML
Allows you to enter your environment variables using the YAML syntax.
Provides the flexibility of reading the ‘Readme’ file side-by-side for better context and comparison while setting variables.
Ideal for users who are comfortable working with YAML and want to have more control over the configuration process.
Manifest
This option lets you directly work with the Kubernetes manifest file, giving you full control over the configuration settings.
Suitable for advanced users familiar with Kubernetes manifests.
Important Note: Select the method that best fits your experience and the requirements of your deployment. YAML and Manifest provide more flexibility, while the GUI offers simplicity.
There is a drop down for all the chart versions of the application you choose. You can choose any of the version and we will deploy that version for you by incorporating all the input variable values you provided. The latest and most stable chart version will be by default selected and get deployed.
Once you've set all configurations, initiate the deployment process by clicking "Deploy".
The Helm chart package will be used to deploy the application onto the selected Kubernetes cluster.
While the deployment is in progress, you can monitor logs in real time through the Logs Screen. This step helps you identify any issues that may arise during the deployment process.
You can see all the logs for the application deployment from Kubernetes Jobs and GitHub.
The 'Timeline' will keep updating the steps that are completed and you can check what's the current status of completion of process.
Other details on this screen are:-
Status of the app deployment process.
Name of the user who triggered the workflow.
Timestamp for when the workflow started.
You can leave this screen anytime using the 'x' button at the top right corner of the logs screen.
After deploying an application, the Post-Deployment screen provides comprehensive details to help you manage and monitor your app. To access this screen, click the 'x' button in the top-right corner of the logs screen after a successful deployment. This screen offers information like the application's URL, access instructions, and more, empowering you to oversee your deployment effectively.
A health check will be automatically performed by Scoutflo Deploy to verify that all pods and services are up and functioning correctly.
The sections on the Post Deployment Screen are:
Overview details of the deployed application.
All the resources created on your Kubernetes cluster.
The configuration files saved on your GitHub repository of this app.
The Deployment history.
You can always go back to the 'Logs' screen by clicking on the 'Logs' button at the top right.
Application URL.
Application Status.
Action button for 'Deletion' of the app.
App Name: The name of the deployed application.
GitHub Stars: The app's popularity based on GitHub star count.
GitHub Forks: Number of forks, indicating collaborative interest.
License: The licensing terms under which the app is provided.
This section provides essential details about the deployment:
Namespace: The Kubernetes namespace where the app is deployed.
Version: Current application version.
App URL: Direct URL to access the application.
Git Repository: The repository from which the app was deployed.
Registry URL: The container image registry URL.
Deployed By: The user who initiated the deployment.
Cluster Name: The cluster in which the app is running.
Deployed At: Timestamp of the deployment.
In the App Details section, you’ll find all resources deployed on your Kubernetes cluster, along with their statuses:
CD Resources: All Continuous Deployment resources, including:
Health Status: Health checks for each resource.
Sync Status: Indicates if resources are up-to-date.
Events and Manifests: Events generated during deployment and resource manifests.
Resource Overview: Types of resources deployed, such as:
Pods: Running instances of the app.
Deployments, Daemon Sets, Stateful Sets, Replica Sets
Jobs and Cron Jobs (if applicable).
Networking: Networking resources, like Ingress or Services.
Config & Storage: Configurations and persistent storage used by the app.
RBAC: Role-Based Access Control resources related to the app.
Custom Resources: Additional custom resource definitions associated with the app.
Each resource is listed with Health, Sync Status, and CD Resource details, with an option to view more details.
Configuration files related to the app are stored in the associated GitHub repository:
README file: General information and instructions for the app.
YAML files: Kubernetes configuration files.
Manifest file: Details of resources to be deployed.
View a complete record of previous deployments, providing insight into version changes and updates.
Application URL: Access the app directly via its URL. This can be found at the top-right corner under 'App URL.'
Application Status: Displays the current operational status of the app.
Deletion Action: Button to delete the app if needed.
Return to Logs: You can revisit the 'Logs' screen by clicking the 'Logs' button in the top-right corner.
Click the 'App URL' button in the top-right corner to go directly to your app’s URL. This provides easy access to the application interface, allowing you to quickly check its status, functionality, and usage.
The Post-Deployment screen offers a centralized view of all aspects of your deployment, streamlining application management and monitoring directly within the Scoutflo platform.
Use the 'Credentials' provided by Scoutflo to login on the loaded URL from this section.
Scoutflo Deploy generates secure Authentication Credentials for each deployment, ensuring only authorized users can access your application.
Unique for Each Deployment: A unique key-value pair is generated for every deployed application, providing an additional layer of security.
Secure Display: These credentials are available within the Scoutflo Deploy UI, allowing you to securely access and copy them as needed.
Using Authentication Credentials:
Access Credentials:
Go to "My Applications" within Scoutflo Deploy.
Locate the Authentication Credentials section in the application table.
Copy and Use:
Copy the credentials securely and use them to log in to your application's front end.
To ensure you understand each step, here’s a breakdown of some key terms used during the deployment process:
Namespace: A Kubernetes namespace is a way to divide a single Kubernetes cluster into multiple virtual clusters. It helps organize and manage resources efficiently, allowing you to deploy multiple applications within the same cluster without conflicts.
Add-Ons: These are additional services or integrations that enhance your application's functionality, such as logging, monitoring, or databases.
Environment Variables: These are key-value pairs that provide configuration settings for your application. They are used to store sensitive information (e.g., API keys, database connection strings) or to define settings that might change across environments (development, testing, production).
YAML: A human-readable data serialization standard commonly used for configuration files. It is often used in Kubernetes for defining manifests, configurations, and environment variables.
Manifest: A Kubernetes manifest is a YAML file that defines the desired state of the application or resource you want to create in the cluster. It provides detailed configuration instructions for deploying your application.