https://docs.armory.io/docs/installation/armory-operator/op-config-kustomize/
Why use Kustomize patches for Spinnaker configuration Even though you can configure Armory Enterprise or Spinnaker in a single manifest file, the advantage of using Kustomize patch files is readability, consistency across environments, and maintainability.
How Kustomize works
Kustomize uses patch files to build a deployment file by overwriting sections of the spinnakerservice.yml
manifest file. You declare your patch files in a kustomization.yml
file, which kubectl
and Kustomize and use to build the Armory Enterprise or Spinnaker manifest file.
You can put each manifest config section in its own file. For example, if you create a profiles-patch.yml
patch with configuration for various services, you are telling Kustomize to overwrite the profiles
section of the spinnakerservice.yml
manifest with the contents of profiles-patch.yml
. Kustomize is flexible, though, so you could instead create a separate patch file for each service (profiles-clouddriver-patch.yml
, profiles-gate-patch.yml
, profiles-deck-patch.yml
, etc.), and then declare those patches in the kustomization.yml
file.
Kustomize is part of kubectl
, so you do not need to install Kustomize locally to build and verify your manifest file. You can run kubectl kustomize <path-to-kustomization.yml>
. This prints out the contents of the manifest file that Kustomize builds using your kustomization.yml
file.
kubectl
versions up to and including v1.20 come bundled with Kustomize v2.0.3.kubectl
1.21 comes bundled with Kustomize v4.0.5. Using Kustomize patches has been tested withkubectl
v1.19.x. and standalone Kustomize v2 and v3. You may see apanic
error if you use thespinnaker-kustomize-patches
repo with Kustomize v4.0+ orkubectl
v1.21+.
Armory maintains the spinnakaker-kustomize-patches
repo, which contains common configuration options for Armory Enterprise or Spinnaker as well as helper scripts. The patches in this repo give you a reliable starting point when adding and removing features.
All of the patches in the repo are for configuring Armory Enterprise. To use the patches to configure open source Spinnaker, you must change
spinnaker.armory.io
in theapiVersion
field tospinnaker.io
. This field is on the first line in a patch file.
To start, create your own copy of the spinnaker-kustomize-patches
repository by clicking the Use this template
button:
If you intend to update your copy from upstream, use Fork instead. See Creating a repository from a template for the difference between Use this template and Fork.
Once created, clone this repository to your local machine.
Follow these steps to configure Armory Enterprise:
[kustomization.yml](https://docs.armory.io/docs/installation/armory-operator/op-config-kustomize/#choose-a-kustomization-file)
file.[apiVersion](https://docs.armory.io/docs/installation/armory-operator/op-config-kustomize/#change-the-apiversion)
in each patch file.Set the Armory Enterprise version
In spinnaker-kustomize-patches/core_config/patch-version.yml
, set the Armory Enterprise version or Spinnaker version that you want to deploy, such as 2.26.0
(Armory Enterprise) or 1.25.3
(Spinnaker).
kind: SpinnakerService
metadata:
name: spinnaker
spec:
spinnakerConfig:
# ------- Main config section, equivalent to "~/.hal/config" from Halyard
config:
version: 2.26.0
Copy
Add core_config/patch-version.yml
to your kustomization.yml
file in the patchesStrategicMerge
section.
Once you have configured your patch files, you can deploy Armory Enterprise.
spinnaker
namespace:
kubectl create ns spinnakernamespace
value in your kustomization.yml
file.kustomization.yml
file.