At Civo, community is at the forefront of everything we do. We’re lucky enough to have some amazing people in our community, who also regularly contribute to our ever growing library of end-to-end tutorials and documentation.

So for this post, we want to shine a light on just a few of our favorite tutorials of 2023, written by you, the Civo community. We also want to send a big thank you out to all of our contributors! If you’re a writer and want to share your knowledge on a range of topics from Kubernetes, Wasm, right through to machine learning, find out how to get involved here.

Tutorials on Kubernetes

Implementing multi-tenancy in Kubernetes using virtual clusters

Within the world of Kubernetes, the concept of multi-tenancy has emerged as a game-changer for organizations looking to optimize resource use and cost. This tutorial from Ehi Enabs explores how multitenancy, the ability to share a single Kubernetes cluster among multiple users or teams, can benefit organizations by ensuring resource and security isolation, ease of management, cost savings, and separation of concerns.

To help navigate the challenges associated with multi-tenancy, this tutorial explores virtual clusters – Kubernetes clusters that operate atop an existing cluster, ensuring efficient resource partitioning. Using the open-source tool Vcluster, the tutorial provides a hands-on approach to setting up and managing these virtual clusters within a Civo Kubernetes cluster environment.

Read the full tutorial from Ehi Enabs here.

kubernetes multi-tenancy

Sealed Secrets: Securely Storing Kubernetes Secrets in Git

In today's age, where Infrastructure as Code (IaC) is becoming a standard, there's an increasing need to ensure that all aspects of an infrastructure, including sensitive data, are securely and reproducibly coded. Kubernetes heavily relies on manifest files for configuration, however, the "Secret", is usually managed manually, challenging the concept of 100% IaC.

This tutorial from Suraj Narwade explores how to encrypt Kubernetes secrets, making it safe to store them in Git repositories without exposing sensitive data. Only a specific Sealed Secrets controller can decrypt these secrets, adding another layer of security. Moreover, it provides insights into efficiently managing and validating these secrets. By the end of this tutorial, users will be adept at achieving a more robust, secure, and fully reproducible Infrastructure-as-Code setup using Sealed Secrets in Kubernetes, enhancing the GitOps narrative.

Read the full tutorial from Suraj Narwade here.

How do Sealed Secrets work?

Validating K8s configuration files to prevent misconfiguration

Navigating Kubernetes can be daunting, especially with the risk of misconfigurations leading to operational glitches and security threats. This tutorial from Tania Duggal emphasizes the criticality of validating Kubernetes configuration files using Civo's managed Kubernetes service.

It then looks at Datree, a potent tool that scans and validates your files against best practices, pinpointing potential errors. Through detailed steps, from Datree CLI installation to its configuration on Civo, users are guided on avoiding common pitfalls like Pod Resource Limit misconfigurations.

Read the full tutorial from Tania Duggal here.

Progressive Delivery of Applications on Kubernetes

In this tutorial, Avik Kundu took users through how to perform a blue-green deployment for a Node.js application on a Civo Kubernetes cluster using Argo Rollouts. Emphasizing the pivotal role of progressive application delivery for maintaining Kubernetes-based application integrity, the tutorial showcases the synergy between Argo CD and Argo Rollouts. Furthermore, their seamless integration with GitHub Actions simplifies the embedding of these tools within our development workflow.

Read the full tutorial from Avik Kundu here.

Blue-Green Deployment

Deploying A Django Rest Framework Application To Kubernetes

Django Rest Framework (DRF), built on Django, simplifies the creation of RESTful APIs for web apps. It aids in data serialization, authentication, and other key tasks, enabling efficient and flexible API development.

Maxwell Livingstone outlines how to deploy a DRF application Kubernetes by taking users through a step-by-step tutorial covering the entire process, starting from setting up the development environment, building the DRF application, containerizing it, and finally deploying it to Kubernetes.

Read the full tutorial from Maxwell Livingstone here.


Tutorials on Marketplace applications

Level up your development with DevPod

Earlier this year, our friends over at Loft Labs released their latest open source tool, DevPod. This powerful tool lets you swiftly create reproducible developer environments, tailored to your unique infrastructure needs. Say goodbye to dependency worries and customize your workspace with a simple devcontainer.json configuration file. Whether you're a fan of Jupyter, VSCode, or another editor, DevPod ensures a seamless experience, locally or in the cloud.

Saiyam Pathak put together this tutorial to outline DevPod's capabilities, from initiating workspaces with a single command to effortlessly port-forwarding for seamless application access. Plus, discover how to integrate DevPod with providers such as Civo.

Read the full tutorial from Saiyam Pathak here.

Simplifying Kubernetes Management with Kubefirst

Integrated with Civo Marketplace, Kubefirst offers a dynamic solution to deploy, monitor, and manage Kubernetes applications effortlessly. Dive into this tutorial from Udensi Fortune Arua to uncover the seamless integration of Kubefirst with Civo, and learn how you can enhance development speed, performance, cost-efficiency, and more. From a simplified UI-based installation to robust CLI commands, get hands-on with the end-to-end process. Explore the unique benefits of Kubefirst, such as unparalleled scalability, reliable support, and seamless third-party tool integrations.

Read the full tutorial from Udensi Fortune Arua here.

Kubefirst on Civo Marketplace

Installing Percona Monitoring and Management

This tutorial from Aakash Nagpal introduces users to Percona Monitoring and Management (PMM), an open-source monitoring platform specifically designed for databases like MySQL, PostgreSQL, and MongoDB. Emphasizing its prowess in database health monitoring, behavior analysis, and troubleshooting, the tutorial provides a clear roadmap for installation via Civo Marketplace, along with an exploration of PMM's rich features. From installation to accessing the insightful PMM dashboard, readers are equipped with tools for effective database management across on-premises and cloud environments.

Read the full tutorial from Aakash Nagpal here.

Percona Monitoring & Management (PMM) on Civo marketplace

Tutorials on Terraform

Using Object Storage as a Terraform Backend

Civo's introduction of its object storage has been met with enthusiasm, not just for the storage itself but also for its integration with the Civo Terraform provider. While Terraform is pivotal for infrastructure provisioning, managing its state can be challenging. Typically stored in a local JSON file, Terraform state files can become cumbersome when multiple collaborators are involved and can pose security risks due to sensitive data in plaintext.

To combat these issues, this tutorial from Jubril Oyetunji introduces the concept of remote state management, offering enhanced security and team synchronization. This tutorial then walks through how to utilize Civo's object storage as a backend for Terraform state files. By the end, users will be proficient in setting up an object store on Civo, writing Terraform code for a Kubernetes cluster, and securely managing their Terraform state remotely on Civo’s platform.

Read the full tutorial from Jubril Oyetunji here.

Civo object store bucket that was created in this tutorial

Tutorials on Machine Learning

Building a front end using Django with KubeFlow

Earlier this year, Civo launched Civo ML, which has allowed users to leverage the scale of Civo compute for machine learning and AI projects. In this tutorial from Agnes Mbiti, Civo ML has been combined with Django, Python's robust web framework following the Model-View-Controller pattern.

Leveraging Civo KfaaS ensures optimized resource allocation, evident in its tailored CPU, memory, and GPU provisions based on dataset and model size. Users are walked through training a language translation model (English to French) using Kubeflow, followed by integrating it into a Django-based frontend. By the end of this tutorial, users are well-equipped to harness Civo ML's capabilities paired with Django to produce efficient and scalable machine learning applications.

Read the full tutorial from Agnes Mbiti here.

Kubeflow dashboard

Contribute to the Civo Community

Interested in contributing a guide to Civo about a project you have worked on? This can include a walk-through guide, a step-by-step process, or a high-level guide on broad topics or disciplines…

Check out our Write for Us page, where you can learn more about getting started and contributing to the Civo community!