1apiMapping:
2  Hub:
3    outPath: "global.hub"
4  Tag:
5    outPath: "global.tag"
6  K8SDefaults:
7    outPath: "global.resources"
8  DefaultNamespace:
9    outPath: "global.istioNamespace"
10  Values.Proxy:
11    outPath: "global.proxy"
12  ConfigManagement.Components.Namespace:
13    outPath: "global.configNamespace"
14  Policy.Components.Namespace:
15    outPath: "global.policyNamespace"
16  Telemetry.Components.Namespace:
17    outPath: "global.telemetryNamespace"
18  Security.Components.Namespace:
19    outPath: "global.securityNamespace"
20kubernetesMapping:
21  "{{.FeatureName}}.Components.{{.ComponentName}}.K8S.Affinity":
22    outPath: "[{{.ResourceType}}:{{.ResourceName}}].spec.template.spec.affinity"
23  "{{.FeatureName}}.Components.{{.ComponentName}}.K8S.Env":
24    outPath: "[{{.ResourceType}}:{{.ResourceName}}].spec.template.spec.containers.[name:{{.ContainerName}}].env"
25  "{{.FeatureName}}.Components.{{.ComponentName}}.K8S.HpaSpec":
26    outPath: "[HorizontalPodAutoscaler:{{.ResourceName}}].spec"
27  "{{.FeatureName}}.Components.{{.ComponentName}}.K8S.ImagePullPolicy":
28    outPath: "[{{.ResourceType}}:{{.ResourceName}}].spec.template.spec.containers.[name:{{.ContainerName}}].imagePullPolicy"
29  "{{.FeatureName}}.Components.{{.ComponentName}}.K8S.NodeSelector":
30    outPath: "[{{.ResourceType}}:{{.ResourceName}}].spec.template.spec.nodeSelector"
31  "{{.FeatureName}}.Components.{{.ComponentName}}.K8S.PodDisruptionBudget":
32    outPath: "[PodDisruptionBudget:{{.ResourceName}}].spec"
33  "{{.FeatureName}}.Components.{{.ComponentName}}.K8S.PodAnnotations":
34    outPath: "[{{.ResourceType}}:{{.ResourceName}}].spec.template.metadata.annotations"
35  "{{.FeatureName}}.Components.{{.ComponentName}}.K8S.PriorityClassName":
36    outPath: "[{{.ResourceType}}:{{.ResourceName}}].spec.template.spec.priorityClassName."
37  "{{.FeatureName}}.Components.{{.ComponentName}}.K8S.ReadinessProbe":
38    outPath: "[{{.ResourceType}}:{{.ResourceName}}].spec.template.spec.containers.[name:{{.ContainerName}}].readinessProbe"
39  "{{.FeatureName}}.Components.{{.ComponentName}}.K8S.ReplicaCount":
40    outPath: "[{{.ResourceType}}:{{.ResourceName}}].spec.replicas"
41  "{{.FeatureName}}.Components.{{.ComponentName}}.K8S.Resources":
42    outPath: "[{{.ResourceType}}:{{.ResourceName}}].spec.template.spec.containers.[name:{{.ContainerName}}].resources"
43  "{{.FeatureName}}.Components.{{.ComponentName}}.K8S.Strategy":
44    outPath: "[{{.ResourceType}}:{{.ResourceName}}].spec.strategy"
45  "{{.FeatureName}}.Components.{{.ComponentName}}.K8S.Tolerations":
46    outPath: "[{{.ResourceType}}:{{.ResourceName}}].spec.template.spec.tolerations"
47toFeature:
48    crds:               Base
49    Pilot:              TrafficManagement
50    Galley:             ConfigManagement
51    Injector:           AutoInjection
52    Policy:             Policy
53    Telemetry:          Telemetry
54    Citadel:            Security
55    CertManager:        Security
56    NodeAgent:          Security
57    IngressGateway:     Gateways
58    EgressGateway:      Gateways
59    Cni:                Cni
60    Grafana:            ThirdParty
61    Prometheus:         ThirdParty
62    Tracing:            ThirdParty
63    PrometheusOperator: ThirdParty
64    Kiali:              ThirdParty
65globalNamespaces:
66  Pilot:      "istioNamespace"
67  Galley:     "configNamespace"
68  Telemetry:  "telemetryNamespace"
69  Policy:     "policyNamespace"
70  Prometheus: "prometheusNamespace"
71  Citadel:    "securityNamespace"
72featureMaps:
73  Base:
74    alwaysEnabled: true
75    Components:
76      - crds
77  TrafficManagement:
78    Components:
79      - Pilot
80  Policy:
81    Components:
82      - Policy
83  Telemetry:
84    Components:
85      - Telemetry
86  Security:
87    Components:
88      - Citadel
89      - CertManager
90      - NodeAgent
91  ConfigManagement:
92    Components:
93      - Galley
94  AutoInjection:
95    Components:
96      - Injector
97  Gateways:
98    Components:
99      - IngressGateway
100      - EgressGateway
101  Cni:
102    Components:
103      - Cni
104  ThirdParty:
105    Components:
106      - Grafana
107      - Prometheus
108      - Tracing
109      - PrometheusOperator
110      - Kiali
111
112componentMaps:
113  crds:
114    ToHelmValuesTreeRoot: "global"
115    HelmSubdir:           "crds"
116    AlwaysEnabled:        true
117  Pilot:
118    ResourceType:         "Deployment"
119    ResourceName:         "istio-pilot"
120    ContainerName:        "discovery"
121    HelmSubdir:           "istio-control/istio-discovery"
122    ToHelmValuesTreeRoot: "pilot"
123  Galley:
124    ResourceType:         "Deployment"
125    ResourceName:         "istio-galley"
126    ContainerName:        "galley"
127    HelmSubdir:           "istio-control/istio-config"
128    ToHelmValuesTreeRoot: "galley"
129  Injector:
130    ResourceType:         "Deployment"
131    ResourceName:         "istio-sidecar-injector"
132    ContainerName:        "sidecar-injector-webhook"
133    HelmSubdir:           "istio-control/istio-autoinject"
134    ToHelmValuesTreeRoot: "sidecarInjectorWebhook"
135  Policy:
136    ResourceType:         "Deployment"
137    ResourceName:         "istio-policy"
138    ContainerName:        "mixer"
139    HelmSubdir:           "istio-policy"
140    ToHelmValuesTreeRoot: "mixer.policy"
141  Telemetry:
142    ResourceType:        "Deployment"
143    ResourceName:         "istio-telemetry"
144    ContainerName:        "mixer"
145    HelmSubdir:           "istio-telemetry/mixer-telemetry"
146    ToHelmValuesTreeRoot: "mixer.telemetry"
147  Citadel:
148    ResourceType:        "Deployment"
149    ResourceName:         "istio-citadel"
150    ContainerName:        "citadel"
151    HelmSubdir:           "security/citadel"
152    ToHelmValuesTreeRoot: "security"
153  NodeAgent:
154    ResourceType:         "DaemonSet"
155    ResourceName:         "istio-nodeagent"
156    ContainerName:        "nodeagent"
157    HelmSubdir:           "security/nodeagent"
158    ToHelmValuesTreeRoot: "nodeagent"
159  CertManager:
160    ResourceType:        "Deployment"
161    ResourceName:         "certmanager"
162    ContainerName:        "certmanager"
163    HelmSubdir:           "security/certmanager"
164    ToHelmValuesTreeRoot: "certmanager"
165  IngressGateway:
166    ResourceType:         "Deployment"
167    ResourceName:         "istio-ingressgateway"
168    ContainerName:        "istio-proxy"
169    HelmSubdir:           "gateways/istio-ingress"
170    ToHelmValuesTreeRoot: "gateways.istio-ingressgateway"
171  EgressGateway:
172    ResourceType:         "Deployment"
173    ResourceName:         "istio-egressgateway"
174    ContainerName:        "istio-proxy"
175    HelmSubdir:           "gateways/istio-egress"
176    ToHelmValuesTreeRoot: "gateways.istio-egressgateway"
177  Cni:
178    ResourceType:         "DaemonSet"
179    ResourceName:         "istio-cni-node"
180    ContainerName:        "install-cni"
181    HelmSubdir:           "istio-cni"
182    ToHelmValuesTreeRoot: "cni"
183  Tracing:
184    ResourceType:         "Deployment"
185    ResourceName:         "istio-tracing"
186    ContainerName:        "jaeger"
187    HelmSubdir:           "istio-telemetry/tracing"
188    ToHelmValuesTreeRoot: "tracing.jaeger"
189  PrometheusOperator:
190    ResourceType:         "Deployment"
191    ResourceName:         "prometheus"
192    ContainerName:        "prometheus"
193    HelmSubdir:           "istio-telemetry/prometheusOperator"
194    ToHelmValuesTreeRoot: "prometheus"
195  Kiali:
196    ResourceType:         "Deployment"
197    ResourceName:         "kiali"
198    ContainerName:        "kiali"
199    HelmSubdir:           "istio-telemetry/kiali"
200    ToHelmValuesTreeRoot: "kiali"
201  Grafana:
202    ResourceType:        "Deployment"
203    ResourceName:         "grafana"
204    ContainerName:        "grafana"
205    HelmSubdir:           "istio-telemetry/grafana"
206    ToHelmValuesTreeRoot: "grafana"
207  Prometheus:
208    ResourceType:         "Deployment"
209    ResourceName:         "prometheus"
210    ContainerName:        "prometheus"
211    HelmSubdir:           "istio-telemetry/prometheus"
212    ToHelmValuesTreeRoot: "prometheus"
213