Learning Helm
by Matt Butcher , Matt Farina , and Josh Dolitsky
Copyright 2021 Matt Butcher, Innovating Tomorrow, and Blood Orange. All rights reserved.
Printed in the United States of America.
Published by OReilly Media, Inc. , 1005 Gravenstein Highway North, Sebastopol, CA 95472.
OReilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://oreilly.com). For more information, contact our corporate/institutional sales department: 800-998-9938 or corporate@oreilly.com .
- Acquisitions Editor: John Devins
- Development Editor: Jeff Bleiel
- Production Editor: Christopher Faucher
- Copyeditor: Tom Sullivan
- Proofreader: Kim Cofer
- Indexer: Sue Klefstad
- Interior Designer: David Futato
- Cover Designer: Karen Montgomery
- Illustrator: Kate Dullea
- January 2021: First Edition
Revision History for the First Edition
- 2021-01-20: First Release
See http://oreilly.com/catalog/errata.csp?isbn=9781492083658 for release details.
The OReilly logo is a registered trademark of OReilly Media, Inc. Learning Helm, the cover image, and related trade dress are trademarks of OReilly Media, Inc.
The views expressed in this work are those of the authors, and do not represent the publishers views. While the publisher and the authors have used good faith efforts to ensure that the information and instructions contained in this work are accurate, the publisher and the authors disclaim all responsibility for errors or omissions, including without limitation responsibility for damages resulting from the use of or reliance on this work. Use of the information and instructions contained in this work is at your own risk. If any code samples or other technology this work contains or describes is subject to open source licenses or the intellectual property rights of others, it is your responsibility to ensure that your use thereof complies with such licenses and/or rights.
978-1-492-08365-8
[LSI]
Preface
Helm is the package manager for Kubernetes, the popular open source container management platform.
Package managers make platforms more accessible to those who use them. In order to use a platform like Kubernetes, you need to run software on it, and much of that software will be off-the-shelf or shared. Package managers like Helm enable you to install and start using the software quickly without needing to figure out how to make it run or run well on the platform, because it has already been packaged up in an easy-to-use manner.
If you have software you want to share with others, package managers make it easy to do. Platforms are more useful when there is a wide variety of software to run on them; open source projects and companies both like to make their software easy to install on the platforms it runs on, and Helm makes this possible for Kubernetes.
Package managers arent just for sharing and consuming others software, however. They are often an integral part of other systems, such as DevOps tooling, and they are used as a building block.
Virtually every modern platform has a package manager. Operating systems, programming languages, and cloud platforms all have package managers of some form.
In this book you will learn about Helm, which provides modern package management for Kubernetes, and the packages, called charts, that you can use with it. You will learn how to use Helm, how to create packages, and how to share those packages with other platforms.
Who Should Read This Book
There are a few situations where you will find this book useful.
If youre new to Kubernetes or want to learn how to install off-the-shelf applications, this book will help you learn how to do that with Helm. It is much easier and faster to install applications through Helm than it is to learn how to do so by hand with Kubernetes.
If you work for a company (or a project) that wants to distribute your applications to Kubernetes users in an easy-to-consume manner, this book will teach you how to do that with Helm. Being able to quickly install your application makes getting started easier, and Helm can help you with that.
This book is also for DevOps professionals who want to learn to use Kubernetes package management as part of their DevOps toolchains. Helm provides powerful and advanced features that can be used as building blocks for other automation. These have been used to deploy large and complex applications onto Kubernetes, and this book will teach you how to leverage those features.
Why We Wrote This Book
We, the authors, are maintainers of Helm, so we set out to write a book to help those who have questions about it. We didnt just want to supply the technical details that are often found in the documentation; we wanted to provide context and insight into what Helm does and why.
Navigating This Book
The first three chapters introduce you to Helm and show you how to use the Helm client. This begins in address using the Helm client, beginning with installing Helm and progressing to advanced usage.
Chapters ). If you want to create packages for Helm, these chapters are for you.
Sharing packages, including their individual release versions, is covered in . Sharing is important if you are distributing software to others or sharing it between systems while using DevOps processes.
Helm can be extended, which is covered in . There are opportunities to customize Helm without needing to fork or contribute functionality to Helm.
Two appendixes are provided with reference material. covers the repository API used for sharing packages.
Conventions Used in This Book
The following typographical conventions are used in this book:
ItalicIndicates new terms, URLs, email addresses, filenames, and file extensions.
Constant width
Used for program listings, as well as within paragraphs to refer to program elements such as variable or function names, databases, data types, environment variables, statements, and keywords.
Constant width bold
Shows commands or other text that should be typed literally by the user.
Constant width italic
Shows text that should be replaced with user-supplied values or by values determined by context.
Tip
This element signifies a tip or suggestion.
Note
This element signifies a general note.
Warning
This element indicates a warning or caution.
Using Code Examples
Supplemental material (code examples, exercises, etc.) is available for download at https://github.com/masterminds/learning-helm.
If you have a technical question or a problem using the code examples, please send email to .
This book is here to help you get your job done. In general, if example code is offered with this book, you may use it in your programs and documentation. You do not need to contact us for permission unless youre reproducing a significant portion of the code. For example, writing a program that uses several chunks of code from this book does not require permission. Selling or distributing examples from OReilly books does require permission. Answering a question by citing this book and quoting example code does not require permission. Incorporating a significant amount of example code from this book into your products documentation does require permission .