
Welcome to Skaffold - Fast, Simple, Local Kubernetes Development
Understand the overview of Skaffold
Features of Skaffold
Development features of Skaffold for Kubernetes
Understand how Skaffold workflow works
Various stages of Skaffold like Building, Testing, Tagging, and Deployment
Various build tools like Docker, Bazel, Jib
Various tagging options
Different deployment tools like kubectl Helm, Kustomize
Visual understanding of Skaffold workflow
Using local Minikube or Google Cloud Build and its role
The workflow of Skaffold in code monitoring
Discussion on complete workflow from code change to deployment of artifacts in Kubernetes cluster
Prepare Linux EC2 instance in AWS cloud
Generate private key and login to EC2 instance
Check instance to install Skaffold
Install Docker in AWS EC2 Instance
Install using amazon-linux-extras
Adding ec2-user to docker group
Turn on the docker service to on using chkconfig
Check docker version and run sample nginx container
Configure the port to access the docker container
Stop and remove the container
Install minikube - download, move to bin and change permissions
Start minikube using docker driver
Use kubectl with minikube to get all pods
Install kubectl as an independent tool and check the pods
Get pods from all namespaces
Download Skaffold installable
Install Skaffold in the local bin directory
Clone Skaffold project from GitHub repository
Check getting started sample projects
Execute Skaffold dev and try to modify the code
Monitor the code change getting deployed dynamically
Overview of Skaffold CLI
Various options in Skaffold CLI like dev, run, build
Various pipeline and its building blocks
Building blocks for CI/CD
Skaffold pipeline stages
Details of Skaffold init
Overview of skaffold yaml configuration file
Generate configuration file using skaffold init
Start minikube and start skaffold dev and check the status
Generate skaffold configuration file for multiple sub projects
Verify docker file in each sub project
Use skaffold init to generate the configuration file
Use skaffold init analyze to verify the structure
Use jq to analyze the json output as structured json file
pass additional details using --artifact to the configuration file using skaffold init
pass additional kubernetes configuration file
Discussion on skaffold dev
Various options of skaffold dev like File sync, Build, Deploy
Overview of various Image Builders and Build options available
Overview of skaffold build
Purpose of local cache of docker images
Purpose of useBuildkit, useDockerCLI and concurrency flag in the configuration file
Find and list the image cache in skaffold
Delete the cache and rebuild
Introduction to Buildpacks
overview of buildbpack configuration file
start skaffold dev with --no-prune and --cache-artifacts flag
Access the pod using the kubectl exec command
Verifying the image is being used during the rebuild
Demo with buildpack for a node project
skaffold dev to deploy the project
Verify the deployed pods and the mapped port
Access the pod using curl
Configure ssh tunnel to access the node port
Overview of the project structure and pom.xml
Java code, k8s configuration file, and skaffold configuration file overview
Start skaffold dev pipeline and monitor the pods getting deployed
Check the status of the pod using curl
Update the code and observe the auto-deployment of pods
Modify the configuration file and observe the auto-deployments of the pipeline
Skaffold demo with python and buildpack
Overview of Procfile
Initiate skaffold dev pipeline
Modify the code and configuration file to observe the dynamic deployment
Observe the change using kubectl
Introduction to Jib - Java application containerizer
Deploy a maven project using skaffold dev pipeline
Make code change to observe the dynamic deployment of pods
Verify updated spring boot application in the browser
Verify Gradle installation
Overview of groovy application
Gradle configuration file overview
Start skaffold dev pipeline to verify the application deployment
Updating the code and verify the dynamic deployment of the application
Introduction to the port forwarding concept
Configure port forwarding
Verify port forwarding using a simple demo application
Multiple subproject demo
Introduction to the port forwarding concept
Configure port forwarding using kubectl port-forward
Start skaffold dev pipeline
Verify deployed pods and their details
Verify spring boot application output in web browser
Introduction to Bazel
Overview of Bazel project with go language code
Updating java version for Bazel
Installing Bazel and it's dependencies
Verify the deployment with Skaffold dev pipeline
Viewing the log in skaffold run pipeline
Using the tail log option and its uses
Tail log demo
Creating repository in docker hub
Verify using config current-context
listing the configuration of skaffold pipeline
Configuring the docker hub repository as part of skaffold config file
Initiate skaffold dev pipeline with --default-repo configuration
Initiate skaffold dev pipeline without repo configuration to demonstrate the difference
Introduction to skaffold tagPolicy as part of build
Initiate skaffold pipeline to verify the tag policy
Introduction to envTemplate as part of tagPolicy
Using the --profile as part of skaffold dev pipeline
Advanced tag policy demo
Using dateTime and timezone format for tagging
Verifying tags as part of docker hub
Using gitCommit tag policy with prefix
Using a custom template for tag policy with prefix and suffix
Introduction to Skaffold profile in pipeline and its uses
Activating profile in skaffold.yaml file
Using different profile and activating using skaffold pipeline
Deployment difference using various profiles
Activating skaffold profile using kubeContext settings
Advantage of using kubeContext settings for profile activation
Using a profile in skaffold pipeline explicitly
Listing the kubecontext settings and using it accordingly with skaffold profile
Setting environmental variable
Activating various profile using environmental variable
Changing the environmental variable and demonstrate different profile getting activated
Introduction to profile patching
Importance and use of profile patching
Different profile patching operations
Profile patching on configuration files and container image values
Verifying profile patching with skaffold pipeline
Listing various minikube profiles
Getting kubectl config contexts
Switching between skaffold profiles and its uses
Introduction to Google cloud build
Overview on Google cloud build workflow
Google cloud build UI and permission settings
Identity and service account setup in Google Cloud Build
Setting up storage, Artifact Registry, Repo, etc.,
Overview on Google cloud build skaffold configuration
Export required environmental variables
Verify Google cloud build configurations
Initiate skaffold dev workflow with repo details
Verify build logs from Google Cloud Platrom - Cloud Build history
Verify Artifact Registry for the repositories
Update code and observe auto build and workflow trigger
Introduction to Kaniko
Overview of skaffold configuration file to use with Kaniko
Create generic secret to interact with Kaniko
Initiate skaffold dev pipeline with google cloud repo
Verify the Kaniko pods getting created
Configure artifacts Image builder as Kaniko
Initiate skaffold dev pipeline
Check google cloud build status
Update the code and monitor the skaffold pipeline getting triggered automatically
Introduction to Kompose
Download and install Kompose
Init skaffold pipeline with kompose file input
Initiate skaffold dev pipeline
Skaffold file sync Introduction
Use and purpose of File Sync
Updating files and verifying file sync process
Skaffold handles the workflow for building, pushing, and deploying your application, allowing you to focus on what matters most: writing code.
This course covers all the features of Skaffold from setting up and Install Skaffold to all the advanced features
Setup fast local Kubernetes development
Detailed discussion on various stages of Skaffold workflow
Initialize and start the project
Continuous development setup
Debug on Kubernetes application on the cluster
CI/CD integration with Skaffold
Understand Skaffold pipeline stages
Generating Skaffold configuration file
Build images with various builders
Tag images based on different policies
Test container images with structure tests
Deploy the application with kubectl, kustomize or helm
Sync changed files directly to containers
Tail logs from workloads for monitoring and debugging
Forward ports from services
Cleanup manifests and container images
Demonstrate dev and build stage of Skaffold pipeline
Build using Docker local and remote
Build using Buildpack on java, python, go, and node projects
Build using Jib on Maven and Gradle projects
Build using Kaniko on Minikube and Google Cloud Build
Setup of Google Cloud Build with required storage set, permissions, Repository and Registry
Profile Switching and Patching
Create a different profile and activate based on different conditions like KubeContext, Environmental variable, etc
Use different tagging policy like git-commit hash, timestamp and custom template
Debugging and Advanced features
Enable tail logs for efficient debugging
Advanced features like file-sync for faster application development