<?xml version="1.0" encoding="UTF-8"?>
<record
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"
    xmlns="http://www.loc.gov/MARC21/slim">

  <leader>03193    a2200169   4500</leader>
  <controlfield tag="005">20240813143754.0</controlfield>
  <controlfield tag="008">231102b        |||||||| |||| 00| 0 eng d</controlfield>
  <datafield tag="020" ind1=" " ind2=" ">
    <subfield code="a">9789355422477</subfield>
  </datafield>
  <datafield tag="041" ind1=" " ind2=" ">
    <subfield code="a">eng</subfield>
  </datafield>
  <datafield tag="100" ind1=" " ind2=" ">
    <subfield code="a">Natale V.</subfield>
    <subfield code="9">205069</subfield>
  </datafield>
  <datafield tag="245" ind1=" " ind2=" ">
    <subfield code="a">GitOps Cookbook</subfield>
  </datafield>
  <datafield tag="260" ind1=" " ind2=" ">
    <subfield code="b">SPD O r'eilly</subfield>
    <subfield code="c">2023</subfield>
  </datafield>
  <datafield tag="300" ind1=" " ind2=" ">
    <subfield code="a">224</subfield>
  </datafield>
  <datafield tag="520" ind1=" " ind2=" ">
    <subfield code="a"> 
Table of Contents
Foreword.	ix
Preface.	xi
1.	Introduction.	1
1.1	What Is GitOps?	1
1.2	Why GitOps?	2
1.3	Kubernetes CI/CD	3
1.4	App Deployment with GitOps on Kubernetes	4
1.5	DevOps and Agility	5
2.	Requirements.	7
2.1	Registering for a Container Registry	7
2.2	Registering for a Git Repository	9
2.3	Creating a Local Kubernetes Cluster	12
3.	Containers.	17
3.1	Building a Container Using Docker	18
3.2	Building a Container Using Dockerless Jib	23
3.3	Building a Container Using Buildah	27
3.4	Building a Container with Buildpacks	32
3.5	Building a Container Using Shipwright and kaniko in Kubernetes	35
3.6	Final Thoughts	42
4.	Kustomize.	43
4.1	Using Kustomize to Deploy Kubernetes Resources	44
4.2	Updating the Container Image in Kustomize	50
v
 
4.3	Updating Any Kubernetes Field in Kustomize	52
4.4	Deploying to Multiple Environments	57
4.5	Generating ConfigMaps in Kustomize	60
4.6	Final Thoughts	66
5.	Helm.	67
5.1	Creating a Helm Project	68
5.2	Reusing Statements Between Templates	75
5.3	Updating a Container Image in Helm	79
5.4	Packaging and Distributing a Helm Chart	82
5.5	Deploying a Chart from a Repository	84
5.6	Deploying a Chart with a Dependency	88
5.7	Triggering a Rolling Update Automatically	93
5.8	Final Thoughts	98
6.	Cloud Native CI/CD.	99
6.1	Install Tekton	100
6.2	Create a Hello World Task	107
6.3	Create a Task to Compile and Package an App from Git	108
6.4	Create a Task to Compile and Package an App from Private Git	114
6.5	Containerize an Application Using a Tekton Task and Buildah	117
6.6	Deploy an Application to Kubernetes Using a Tekton Task	122
6.7	Create a Tekton Pipeline to Build and Deploy an App to Kubernetes	125
6.8	Using Tekton Triggers to Compile and Package an Application
Automatically When a Change Occurs on Git	135
6.9	Update a Kubernetes Resource Using Kustomize and Push the Change to
Git	139
6.10	Update a Kubernetes Resource Using Helm and Create a Pull Request	144
6.11	Use Drone to Create a Pipeline for Kubernetes	148
6.12	Use GitHub Actions for CI	150
7.	Argo CD.	155
7.1	Deploy an Application Using Argo CD	156
7.2	Automatic Synchronization	162
7.3	Kustomize Integration	166
7.4	Helm Integration	168
7.5	Image Updater	171
7.6	Deploy from a Private Git Repository	178
7.7	Order Kubernetes Manifests	182
7.8	Define Synchronization Windows	187




vi  | Table of Contents
 
8.	Advanced Topics.	191
8.1	Encrypt Sensitive Data (Sealed Secrets)	192
8.2	Encrypt Secrets with ArgoCD (ArgoCD + HashiCorp Vault + External
Secret)	195
8.3	Trigger the Deployment of an Application Automatically (Argo CD Webhooks)	198
8.4	Deploy to Multiple Clusters	200
8.5	Deploy a Pull Request to a Cluster	206
8.6	Use Advanced Deployment Techniques	208
Index.	217
Table of Contents  |	vii
 

</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="a">Bueno A.</subfield>
    <subfield code="9">206524</subfield>
  </datafield>
  <datafield tag="942" ind1=" " ind2=" ">
    <subfield code="c">BK</subfield>
  </datafield>
  <datafield tag="999" ind1=" " ind2=" ">
    <subfield code="c">356195</subfield>
    <subfield code="d">356195</subfield>
  </datafield>
  <datafield tag="952" ind1=" " ind2=" ">
    <subfield code="0">0</subfield>
    <subfield code="1">0</subfield>
    <subfield code="2">ddc</subfield>
    <subfield code="4">0</subfield>
    <subfield code="7">0</subfield>
    <subfield code="a">CCEP</subfield>
    <subfield code="b">CCEP</subfield>
    <subfield code="d">2023-10-03</subfield>
    <subfield code="e">144</subfield>
    <subfield code="g">750.00</subfield>
    <subfield code="o">005.1 VIN</subfield>
    <subfield code="p">CCEP-BK-65440</subfield>
    <subfield code="r">2023-09-11 00:00:00</subfield>
    <subfield code="v">1000.00</subfield>
    <subfield code="w">2023-09-11</subfield>
    <subfield code="y">BK</subfield>
  </datafield>
</record>
