SlideShare a Scribd company logo
Declarative Kubernetes
Cluster Deployment Using
Cloudstack and Cluster API
Ozhan Karaman
Zebra Stack Ltd.
ozhan zebrastack.co.uk
https://www.linkedin.com/in/ozhan-karaman/
Who am I?
● Working with Linux and Open Source platforms since 1998
● Open Source lover
● Started with Slackware and vi
● Using Cloudstack since 2015
● Working with Kubernetes since 2018
● Long technical journey with lots of adventures
What is Declarative Gitops Approach?
Declarative GitOps is an approach for managing
infrastructure and applications where the desired state of the
system is declared and stored in a Git repository.
Changes to the system are made by updating the Git
repository, and a GitOps tool automatically applies those
changes to the actual infrastructure, ensuring continuous
deployment, version control, and easy collaboration.
Declarative approaches, such as those used in tools like
Kubernetes, are often favored for their simplicity, ease of
automation, and improved maintainability. They allow users
to describe the desired state, and the system itself takes care
of achieving and maintaining that state. Imperative
approaches are more explicit, providing detailed instructions
on how to perform actions, which may be useful in certain
scenarios where fine-grained control is necessary.
ClusterAPI onPremise Infrastructure Providers
Vmware/Vsphere:
You need a minimum vCenter enabled cluster, Vmware’s Kubernetes offering heavily depends on
Clusterapi
Openstack:
You need to have an Openstack deployment(neutron, nova etc), there is no simple deployment to
test Clusterapi. Openstack developers are using devstack to develop & test their code.
Sidero Labs, Talos Linux:
They are providing their own tailored Linux OS, no ubuntu, debian there.
Cloudstack:
Standard Cloudstack deployment with KVM hypervisor is more then enough. Clusterapi Cloudstack
group is an active open source group.
Cluster API Common Concepts
Infrastructure provider:
A component responsible for the managing
infrastructure resources (VMs, networks, storage)
for CAPI.
Bootstrap provider:
A component responsible for turning a server into a
Kubernetes node, handles tasks like OS component
installation and network configuration, ensuring
consistent node preparation. (Cloud-init)
Control Plane provider:
Orchestrates creation, scaling, and lifecycle of
control plane components in CAPI. Deploys and
configures API server, controller manager, and
scheduler, ensuring proper control plane operation.
How Cluster API Works?
Declarative Cluster Definition:
Users define the desired state of their Kubernetes cluster using a set of declarative YAML manifests. These manifests typically
include specifications for the control plane and worker nodes.
Cluster API Controllers:
Cluster API introduces a set of custom controllers that run within the Kubernetes cluster. These controllers watch for changes
to the declarative cluster definitions.
Generation of Cloud-Init Scripts:
When a user submits a cluster definition, the Cluster API controllers interpret the specifications and generate cloud-init
scripts. Cloud-init is a popular way to bootstrap cloud instances with configuration data.
Infrastructure Provider Integration:
The generated cloud-init scripts are then used to initialize the virtual machines or instances on the chosen infrastructure
provider (e.g., Cloudstack, AWS, Azure, vSphere). Cluster API provides a pluggable infrastructure provider model, allowing
support for various cloud and on-premises environments.
How Cluster API Works?
Spinning up Servers:
The infrastructure provider provisions the necessary resources (VMs, instances) based on the cloud-init scripts. This step
results in the creation of the control plane nodes (master nodes) and worker nodes for the Kubernetes cluster.
Kubernetes Cluster Configuration:
Once the control plane is up and running, Cluster API manages the configuration of the Kubernetes cluster, ensuring that it
aligns with the desired state specified by the user.
Worker Node Configuration:
Cluster API also takes care of configuring the worker nodes, joining them to the cluster, and ensuring they are in the desired
state.
Lifecycle Management:
The Cluster API controllers continuously monitor the cluster's state and reconcile any differences between the desired state
and the current state. This includes scaling the cluster up or down, updating the cluster version, and handling node failures.
Some Technologies Used in this Demo
• Gitlab CI
• ArgoCD - Declarative GitOps CD for Kubernetes
• Cloudstack - OpenSource Cloud Provider
• Cloudstack Cloud Monkey - CLI Interface for Cloudstack APIs
• Kubernetes Image Builder Project
• Hashicorp Packer - KVM Image Builder
• Clusterapi Operator - Manages Clusterapi Core + Bootstrap + Infra Providers
• DrOctopus Kubernetes Operator(Manages capc deployed clusters)
• Hashicorp Vault
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - Ozhan Karaman - Zebra Stack
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - Ozhan Karaman - Zebra Stack
Useful Links
• Kubernetes Image Builder Project - https://github.com/kubernetes-sigs/image-builder
• ArgoCD - https://argo-cd.readthedocs.io/en/stable/
• Cluster API - https://cluster-api.sigs.k8s.io/
• Cluster API Cloudstack Infra Provider - https://github.com/kubernetes-sigs/cluster-api-provider-cloudstack
• Cloudstack Documentation - http://docs.cloudstack.apache.org/en/4.18.1.0/
• Shapeblue Bootstrapping K8S Cluster using CAPC l CloudStack 'Feature First Look' Series -
https://www.youtube.com/watch?v=Du1pGriJzo8
• Gitlab CI - https://docs.gitlab.com/ee/ci/
• PCextreme Packer Templates - https://github.com/PCextreme/packer-templates
• Hashicorp Packer - https://www.packer.io/
• Hashicorp Vault - https://www.vaultproject.io/
Demo Time
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - Ozhan Karaman - Zebra Stack

More Related Content

PDF
CloudStack Tooling Ecosystem – Kiran Chavala, ShapeBlue
PDF
Room 1 - 4 - Phạm Tường Chiến & Trần Văn Thắng - Deliver managed Kubernetes C...
PDF
A Kubernetes CAPI Provider for Apache CloudStack
PDF
Free GitOps Workshop + Intro to Kubernetes & GitOps
PDF
Kubernetes intro
PDF
Container orchestration k8s azure kubernetes services
PDF
Intro to Kubernetes & GitOps Workshop
PDF
Introduction to kubernetes
CloudStack Tooling Ecosystem – Kiran Chavala, ShapeBlue
Room 1 - 4 - Phạm Tường Chiến & Trần Văn Thắng - Deliver managed Kubernetes C...
A Kubernetes CAPI Provider for Apache CloudStack
Free GitOps Workshop + Intro to Kubernetes & GitOps
Kubernetes intro
Container orchestration k8s azure kubernetes services
Intro to Kubernetes & GitOps Workshop
Introduction to kubernetes

Similar to Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - Ozhan Karaman - Zebra Stack (20)

PDF
Getting started with kubernetes
PPTX
Introduction+to+Kubernetes-Details-D.pptx
PPTX
Kubernetes
PDF
Managing Kubernetes operating Kubernetes clusters in the real world First Edi...
PDF
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
PDF
Kubermatic.pdf
PDF
Kubermatic CNCF Webinar - start.kubermatic.pdf
PPTX
Introduction to kubernetes
PDF
Kubernetes Architecture - beyond a black box - Part 1
PDF
Meetup 2023 - Gateway API.pdf
PPTX
Container Conf 2017: Rancher Kubernetes
PPTX
KubernetSADASDASDASDSADASDASDASDASDes.pptx
PDF
Kubernetes a comprehensive overview
PPTX
Kubernetes Presentation
PDF
Creating Kubernetes multi clusters with ClusterAPI in the Hetzner Cloud
PDF
Kubernetes - A Comprehensive Overview
PDF
Kubernetes acomprehensiveoverview
PDF
(Draft) Kubernetes - A Comprehensive Overview
PDF
Kubernetes ClusterAPI
PDF
K8s ClusterAPI - Managing Kubernetes Cluster
Getting started with kubernetes
Introduction+to+Kubernetes-Details-D.pptx
Kubernetes
Managing Kubernetes operating Kubernetes clusters in the real world First Edi...
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
Kubermatic.pdf
Kubermatic CNCF Webinar - start.kubermatic.pdf
Introduction to kubernetes
Kubernetes Architecture - beyond a black box - Part 1
Meetup 2023 - Gateway API.pdf
Container Conf 2017: Rancher Kubernetes
KubernetSADASDASDASDSADASDASDASDASDes.pptx
Kubernetes a comprehensive overview
Kubernetes Presentation
Creating Kubernetes multi clusters with ClusterAPI in the Hetzner Cloud
Kubernetes - A Comprehensive Overview
Kubernetes acomprehensiveoverview
(Draft) Kubernetes - A Comprehensive Overview
Kubernetes ClusterAPI
K8s ClusterAPI - Managing Kubernetes Cluster
Ad

More from ShapeBlue (20)

PPTX
The Yotta x CloudStack Advantage: Scalable, India-First Cloud
PPTX
Simplifying End-to-End Apache CloudStack Deployment with a Web-Based Automati...
PPTX
Extensions Framework (XaaS) - Enabling Orchestrate Anything
PDF
CloudStack GPU Integration - Rohit Yadav
PPTX
Building and Operating a Private Cloud with CloudStack and LINBIT CloudStack ...
PDF
Ampere Offers Energy-Efficient Future For AI And Cloud
PDF
Empowering Cloud Providers with Apache CloudStack and Stackbill
PDF
Apache CloudStack 201: Let's Design & Build an IaaS Cloud
PDF
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
PDF
Fully Open-Source Private Clouds: Freedom, Security, and Control
PPTX
Pushing the Limits: CloudStack at 25K Hosts
PPTX
Stretching CloudStack over multiple datacenters
PPTX
Proposed Feature: Monitoring and Managing Cloud Usage Costs in Apache CloudStack
PPSX
CloudStack + KVM: Your Local Cloud Lab
PDF
I’d like to resell your CloudStack services, but...
PDF
Storage Setup for LINSTOR/DRBD/CloudStack
PDF
Apache CloudStack 101 - Introduction, What’s New and What’s Coming
PDF
Development of an Оbject Storage Plugin for CloudStack, Christian Reichert, s...
PDF
VM-HA with CloudStack and Linstor, Rene Peinthor
PDF
How We Use CloudStack to Provide Managed Hosting, Swen Brüseke, proIO
The Yotta x CloudStack Advantage: Scalable, India-First Cloud
Simplifying End-to-End Apache CloudStack Deployment with a Web-Based Automati...
Extensions Framework (XaaS) - Enabling Orchestrate Anything
CloudStack GPU Integration - Rohit Yadav
Building and Operating a Private Cloud with CloudStack and LINBIT CloudStack ...
Ampere Offers Energy-Efficient Future For AI And Cloud
Empowering Cloud Providers with Apache CloudStack and Stackbill
Apache CloudStack 201: Let's Design & Build an IaaS Cloud
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
Fully Open-Source Private Clouds: Freedom, Security, and Control
Pushing the Limits: CloudStack at 25K Hosts
Stretching CloudStack over multiple datacenters
Proposed Feature: Monitoring and Managing Cloud Usage Costs in Apache CloudStack
CloudStack + KVM: Your Local Cloud Lab
I’d like to resell your CloudStack services, but...
Storage Setup for LINSTOR/DRBD/CloudStack
Apache CloudStack 101 - Introduction, What’s New and What’s Coming
Development of an Оbject Storage Plugin for CloudStack, Christian Reichert, s...
VM-HA with CloudStack and Linstor, Rene Peinthor
How We Use CloudStack to Provide Managed Hosting, Swen Brüseke, proIO
Ad

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Machine learning based COVID-19 study performance prediction
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
cuic standard and advanced reporting.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Empathic Computing: Creating Shared Understanding
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPT
Teaching material agriculture food technology
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
NewMind AI Weekly Chronicles - August'25 Week I
Unlocking AI with Model Context Protocol (MCP)
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Machine learning based COVID-19 study performance prediction
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Network Security Unit 5.pdf for BCA BBA.
Understanding_Digital_Forensics_Presentation.pptx
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
MIND Revenue Release Quarter 2 2025 Press Release
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
cuic standard and advanced reporting.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Empathic Computing: Creating Shared Understanding
Dropbox Q2 2025 Financial Results & Investor Presentation
Teaching material agriculture food technology
Advanced methodologies resolving dimensionality complications for autism neur...
Chapter 3 Spatial Domain Image Processing.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...

Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - Ozhan Karaman - Zebra Stack

  • 1. Declarative Kubernetes Cluster Deployment Using Cloudstack and Cluster API Ozhan Karaman Zebra Stack Ltd. ozhan zebrastack.co.uk https://www.linkedin.com/in/ozhan-karaman/
  • 2. Who am I? ● Working with Linux and Open Source platforms since 1998 ● Open Source lover ● Started with Slackware and vi ● Using Cloudstack since 2015 ● Working with Kubernetes since 2018 ● Long technical journey with lots of adventures
  • 3. What is Declarative Gitops Approach? Declarative GitOps is an approach for managing infrastructure and applications where the desired state of the system is declared and stored in a Git repository. Changes to the system are made by updating the Git repository, and a GitOps tool automatically applies those changes to the actual infrastructure, ensuring continuous deployment, version control, and easy collaboration. Declarative approaches, such as those used in tools like Kubernetes, are often favored for their simplicity, ease of automation, and improved maintainability. They allow users to describe the desired state, and the system itself takes care of achieving and maintaining that state. Imperative approaches are more explicit, providing detailed instructions on how to perform actions, which may be useful in certain scenarios where fine-grained control is necessary.
  • 4. ClusterAPI onPremise Infrastructure Providers Vmware/Vsphere: You need a minimum vCenter enabled cluster, Vmware’s Kubernetes offering heavily depends on Clusterapi Openstack: You need to have an Openstack deployment(neutron, nova etc), there is no simple deployment to test Clusterapi. Openstack developers are using devstack to develop & test their code. Sidero Labs, Talos Linux: They are providing their own tailored Linux OS, no ubuntu, debian there. Cloudstack: Standard Cloudstack deployment with KVM hypervisor is more then enough. Clusterapi Cloudstack group is an active open source group.
  • 5. Cluster API Common Concepts Infrastructure provider: A component responsible for the managing infrastructure resources (VMs, networks, storage) for CAPI. Bootstrap provider: A component responsible for turning a server into a Kubernetes node, handles tasks like OS component installation and network configuration, ensuring consistent node preparation. (Cloud-init) Control Plane provider: Orchestrates creation, scaling, and lifecycle of control plane components in CAPI. Deploys and configures API server, controller manager, and scheduler, ensuring proper control plane operation.
  • 6. How Cluster API Works? Declarative Cluster Definition: Users define the desired state of their Kubernetes cluster using a set of declarative YAML manifests. These manifests typically include specifications for the control plane and worker nodes. Cluster API Controllers: Cluster API introduces a set of custom controllers that run within the Kubernetes cluster. These controllers watch for changes to the declarative cluster definitions. Generation of Cloud-Init Scripts: When a user submits a cluster definition, the Cluster API controllers interpret the specifications and generate cloud-init scripts. Cloud-init is a popular way to bootstrap cloud instances with configuration data. Infrastructure Provider Integration: The generated cloud-init scripts are then used to initialize the virtual machines or instances on the chosen infrastructure provider (e.g., Cloudstack, AWS, Azure, vSphere). Cluster API provides a pluggable infrastructure provider model, allowing support for various cloud and on-premises environments.
  • 7. How Cluster API Works? Spinning up Servers: The infrastructure provider provisions the necessary resources (VMs, instances) based on the cloud-init scripts. This step results in the creation of the control plane nodes (master nodes) and worker nodes for the Kubernetes cluster. Kubernetes Cluster Configuration: Once the control plane is up and running, Cluster API manages the configuration of the Kubernetes cluster, ensuring that it aligns with the desired state specified by the user. Worker Node Configuration: Cluster API also takes care of configuring the worker nodes, joining them to the cluster, and ensuring they are in the desired state. Lifecycle Management: The Cluster API controllers continuously monitor the cluster's state and reconcile any differences between the desired state and the current state. This includes scaling the cluster up or down, updating the cluster version, and handling node failures.
  • 8. Some Technologies Used in this Demo • Gitlab CI • ArgoCD - Declarative GitOps CD for Kubernetes • Cloudstack - OpenSource Cloud Provider • Cloudstack Cloud Monkey - CLI Interface for Cloudstack APIs • Kubernetes Image Builder Project • Hashicorp Packer - KVM Image Builder • Clusterapi Operator - Manages Clusterapi Core + Bootstrap + Infra Providers • DrOctopus Kubernetes Operator(Manages capc deployed clusters) • Hashicorp Vault
  • 11. Useful Links • Kubernetes Image Builder Project - https://github.com/kubernetes-sigs/image-builder • ArgoCD - https://argo-cd.readthedocs.io/en/stable/ • Cluster API - https://cluster-api.sigs.k8s.io/ • Cluster API Cloudstack Infra Provider - https://github.com/kubernetes-sigs/cluster-api-provider-cloudstack • Cloudstack Documentation - http://docs.cloudstack.apache.org/en/4.18.1.0/ • Shapeblue Bootstrapping K8S Cluster using CAPC l CloudStack 'Feature First Look' Series - https://www.youtube.com/watch?v=Du1pGriJzo8 • Gitlab CI - https://docs.gitlab.com/ee/ci/ • PCextreme Packer Templates - https://github.com/PCextreme/packer-templates • Hashicorp Packer - https://www.packer.io/ • Hashicorp Vault - https://www.vaultproject.io/