Proto: istio_operator.proto

Package: common.gloo.solo.io

Affinity

See k8s.io.api.core.v1.Affinity.

FieldDescription
nodeAffinity(NodeAffinity)

podAffinity(PodAffinity)

podAntiAffinity(PodAntiAffinity)

BaseComponentSpec

Configuration for base component.

FieldDescription
enabled(google.protobuf.BoolValue)

Selects whether this component is installed.
k8s(KubernetesResourcesSpec)

Kubernetes resource spec.

ClientIPConfig

See k8s.io.api.core.v1.ClientIPConfig.

FieldDescription
timeoutSeconds(int32)

ComponentSpec

Configuration for internal components.

FieldDescription
enabled(google.protobuf.BoolValue)

Selects whether this component is installed.
namespace(string)

Namespace for the component.
hub(string)

Hub for the component (overrides top level hub setting).
tag(string)

Tag for the component (overrides top level tag setting).
spec(google.protobuf.Struct)

Arbitrary install time configuration for the component. For information about the value format, see the Google protocol buffer documentation.
k8s(KubernetesResourcesSpec)

Kubernetes resource spec.

ConfigMapKeySelector

See k8s.io.api.core.v1.ConfigMapKeySelector.

FieldDescription
localObjectReference(LocalObjectReference)

key(string)

optional(bool)

ContainerResourceMetricSource

See k8s.io.api.autoscaling.v2beta2.ContainerResourceMetricSource.

FieldDescription
name(string)

target(MetricTarget)

container(string)

ContainerResourceMetricStatus

See k8s.io.api.autoscaling.v2beta2.ContainerResourceMetricStatus.

FieldDescription
name(string)

current(MetricValueStatus)

container(string)

CrossVersionObjectReference

See k8s.io.api.autoscaling.v2beta2.CrossVersionObjectReference.

FieldDescription
kind(string)

name(string)

apiVersion(string)

DeploymentStrategy

See k8s.io.api.apps.v1.DeploymentStrategy.

FieldDescription
type(string)

rollingUpdate(RollingUpdateDeployment)

EnvVar

See k8s.io.api.core.v1.EnvVar.

FieldDescription
name(string)

value(string)

valueFrom(EnvVarSource)

EnvVarSource

See k8s.io.api.core.v1.EnvVarSource.

FieldDescription
fieldRef(ObjectFieldSelector)

resourceFieldRef(ResourceFieldSelector)

configMapKeyRef(ConfigMapKeySelector)

secretKeyRef(SecretKeySelector)

ExecAction

See k8s.io.api.core.v1.ExecAction.

FieldDescription
command(repeated string)

ExternalComponentSpec

Configuration for external components.

FieldDescription
enabled(google.protobuf.BoolValue)

Selects whether this component is installed.
namespace(string)

Namespace for the component.
spec(google.protobuf.Struct)

Arbitrary install time configuration for the component. For information about the value format, see the Google protocol buffer documentation.
chartPath(string)

Chart path for addon components.
schema(google.protobuf.Any)

Optional schema to validate spec against. For information about the value format, see the Google protocol buffer documentation.
k8s(KubernetesResourcesSpec)

Kubernetes resource spec.

ExternalMetricSource

See k8s.io.api.autoscaling.v2beta2.ExternalMetricSource.

FieldDescription
metricName(string)

metricSelector(k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector)

For information about the value format, see the Kubernetes API reference documentation.
targetValue(google.protobuf.Value)

For information about the value format, see the Google protocol buffer documentation.
targetAverageValue(google.protobuf.Value)

For information about the value format, see the Google protocol buffer documentation.
metric(MetricIdentifier)

target(MetricTarget)

ExternalMetricStatus

See k8s.io.autoscaling.v2beta2.ExternalMetricStatus.

FieldDescription
metric(MetricIdentifier)

current(MetricValueStatus)

GatewaySpec

Configuration for gateways.

FieldDescription
enabled(google.protobuf.BoolValue)

Selects whether this gateway is installed.
namespace(string)

Namespace for the gateway.
name(string)

Name for the gateway.
label(repeated GatewaySpec.LabelEntry)

Labels for the gateway.
hub(string)

Hub for the component (overrides top level hub setting).
tag(string)

Tag for the component (overrides top level tag setting).
k8s(KubernetesResourcesSpec)

Kubernetes resource spec.

GatewaySpec.LabelEntry

FieldDescription
key(string)

value(string)

HPAScalingPolicy

See k8s.io.autoscaling.v2beta2.HPAScalingPolicy.

FieldDescription
type(string)

value(int32)

periodSeconds(int32)

HPAScalingRules

See k8s.io.autoscaling.v2beta2.HPAScalingRules.

FieldDescription
stabilizationWindowSeconds(int32)

selectPolicy(string)

policies(HPAScalingPolicy)

HTTPGetAction

See k8s.io.api.core.v1.HTTPGetAction.

FieldDescription
path(string)

port(google.protobuf.Value)

For information about the value format, see the Google protocol buffer documentation.
host(string)

scheme(string)

httpHeaders(repeated HTTPHeader)

HTTPHeader

See k8s.io.api.core.v1.HTTPHeader.

FieldDescription
name(string)

value(string)

HorizontalPodAutoScalerBehavior

See k8s.io.autoscaling.v2beta2.HorizontalPodAutoScalerBehavior.

FieldDescription
scaleUp(HPAScalingRules)

scaleDown(HPAScalingRules)

HorizontalPodAutoscalerSpec

See k8s.io.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec.

FieldDescription
scaleTargetRef(CrossVersionObjectReference)

minReplicas(int32)

maxReplicas(int32)

metrics(repeated MetricSpec)

behavior(HorizontalPodAutoScalerBehavior)

InstallStatus

Observed state of IstioOperator

FieldDescription
status(InstallStatus.Status)

Overall status of all components controlled by the operator.
* If all components have status NONE, overall status is NONE. * If all components are HEALTHY, overall status is HEALTHY. * If one or more components are RECONCILING and others are HEALTHY, overall status is RECONCILING. * If one or more components are UPDATING and others are HEALTHY, overall status is UPDATING. * If components are a mix of RECONCILING, UPDATING and HEALTHY, overall status is UPDATING. * If any component is in ERROR state, overall status is ERROR. * If further action is needed for reconciliation to proceed, overall status is ACTION_REQUIRED.
message(string)

Optional message providing additional information about the existing overall status.
componentStatus(repeated InstallStatus.ComponentStatusEntry)

Individual status of each component controlled by the operator. The map key is the name of the component.

InstallStatus.ComponentStatusEntry

FieldDescription
key(string)

value(InstallStatus.VersionStatus)

InstallStatus.VersionStatus

VersionStatus is the status and version of a component.

FieldDescription
version(string)

status(InstallStatus.Status)

error(string)

IstioComponentSetSpec

IstioComponentSpec defines the desired installed state of Istio components.

FieldDescription
base(BaseComponentSpec)

pilot(ComponentSpec)

cni(ComponentSpec)

ztunnel(ComponentSpec)

istiodRemote(ComponentSpec)

Remote cluster using an external control plane.
ingressGateways(repeated GatewaySpec)

egressGateways(repeated GatewaySpec)

IstioOperatorSpec

Copied from https://github.com/istio/api/blob/v1.23.1/operator/v1alpha1/operator.proto

FieldDescription
profile(string)

Path or name for the profile e.g.
* minimal (looks in profiles dir for a file called minimal.yaml) * /tmp/istio/install/values/custom/custom-install.yaml (local file path)
default profile is used if this field is unset.
installPackagePath(string)

Path for the install package. e.g.
* /tmp/istio-installer/nightly (local file path)
hub(string)

Root for docker image paths e.g. docker.io/istio
tag(string)

Version tag for docker images e.g. 1.7.2
resourceSuffix(string)

$hide_from_docs Resource suffix is appended to all resources installed by each component. Never implemented; replaced by revision.
namespace(string)

Namespace to install control plane resources into. If unset, Istio will be installed into the same namespace as the IstioOperator CR. You must also set values.global.istioNamespace if you wish to install Istio in a custom namespace. If you have enabled CNI, you must exclude this namespace by adding it to the list values.cni.excludeNamespaces.
revision(string)

Identify the revision this installation is associated with. This option is currently experimental.
defaultRevision(bool)

Identify whether this revision is the default revision for the cluster This option is currently experimental.
meshConfig(google.protobuf.Struct)

Config used by control plane components internally. For information about the value format, see the Google protocol buffer documentation.
components(IstioComponentSetSpec)

Kubernetes resource settings, enablement and component-specific settings that are not internal to the component.
addonComponents(repeated IstioOperatorSpec.AddonComponentsEntry)

Deprecated. Users should manage the installation of addon components on their own. Refer to samples/addons for demo installation of addon components.
values(google.protobuf.Struct)

Overrides for default values.yaml. This is a validated pass-through to Helm templates. See the Helm installation options for schema details. Anything that is available in IstioOperatorSpec should be set above rather than using the passthrough. This includes Kubernetes resource settings for components in KubernetesResourcesSpec. For information about the value format, see the Google protocol buffer documentation.
unvalidatedValues(google.protobuf.Struct)

Unvalidated overrides for default values.yaml. Used for custom templates where new parameters are added. For information about the value format, see the Google protocol buffer documentation.

IstioOperatorSpec.AddonComponentsEntry

FieldDescription
key(string)

value(ExternalComponentSpec)

K8sObjectOverlay

Patch for an existing k8s resource.

FieldDescription
apiVersion(string)

Resource API version.
kind(string)

Resource kind.
name(string)

Name of resource. Namespace is always the component namespace.
patches(repeated K8sObjectOverlay.PathValue)

List of patches to apply to resource.

K8sObjectOverlay.PathValue

FieldDescription
path(string)

Path of the form a.[key1:value1].b.[:value2] Where [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value selector to identify a list element in a leaf list. All path intermediate nodes must exist.
value(google.protobuf.Value)

Value to add, delete or replace. For add, the path should be a new leaf. For delete, value should be unset. For replace, path should reference an existing node. All values are strings but are converted into appropriate type based on schema. For information about the value format, see the Google protocol buffer documentation.

KubernetesResourcesSpec

KubernetesResourcesConfig is a common set of k8s resource configs for components.

FieldDescription
affinity(Affinity)

k8s affinity. https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
env(repeated EnvVar)

Deployment environment variables. https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/
hpaSpec(HorizontalPodAutoscalerSpec)

k8s HorizontalPodAutoscaler settings. https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
imagePullPolicy(string)

k8s imagePullPolicy. https://kubernetes.io/docs/concepts/containers/images/
nodeSelector(repeated KubernetesResourcesSpec.NodeSelectorEntry)

k8s nodeSelector. https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
podDisruptionBudget(PodDisruptionBudgetSpec)

k8s PodDisruptionBudget settings. https://kubernetes.io/docs/concepts/workloads/pods/disruptions/#how-disruption-budgets-work
podAnnotations(repeated KubernetesResourcesSpec.PodAnnotationsEntry)

k8s pod annotations. https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
priorityClassName(string)

k8s priority_class_name. Default for all resources unless overridden. https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
readinessProbe(ReadinessProbe)

k8s readinessProbe settings. https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ k8s.io.api.core.v1.Probe readiness_probe = 9;
replicaCount(uint32)

k8s Deployment replicas setting. https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
resources(Resources)

k8s resources settings. https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container
service(ServiceSpec)

k8s Service settings. https://kubernetes.io/docs/concepts/services-networking/service/
strategy(DeploymentStrategy)

k8s deployment strategy. https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
tolerations(repeated Toleration)

k8s toleration https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
serviceAnnotations(repeated KubernetesResourcesSpec.ServiceAnnotationsEntry)

k8s service annotations. https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
securityContext(PodSecurityContext)

k8s pod security context https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
volumes(repeated k8s.io.api.core.v1.Volume)

k8s volume https://kubernetes.io/docs/concepts/storage/volumes/ Volumes defines the collection of Volume to inject into the pod.
volumeMounts(repeated k8s.io.api.core.v1.VolumeMount)

k8s volumeMounts VolumeMounts defines the collection of VolumeMount to inject into containers.
overlays(repeated K8sObjectOverlay)

Overlays for k8s resources in rendered manifests.

KubernetesResourcesSpec.NodeSelectorEntry

FieldDescription
key(string)

value(string)

KubernetesResourcesSpec.PodAnnotationsEntry

FieldDescription
key(string)

value(string)

KubernetesResourcesSpec.ServiceAnnotationsEntry

FieldDescription
key(string)

value(string)

LocalObjectReference

See k8s.io.api.core.v1.LocalObjectReference.

FieldDescription
name(string)

MetricIdentifier

See k8s.io.autoscaling.v2beta2.MetricIdentifier.

FieldDescription
name(string)

selector(k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector)

For information about the value format, see the Kubernetes API reference documentation.

MetricSpec

See k8s.io.autoscaling.v2beta2.MetricSpec.

FieldDescription
type(string)

object(ObjectMetricSource)

pods(PodsMetricSource)

resource(ResourceMetricSource)

containerResource(ContainerResourceMetricSource)

external(ExternalMetricSource)

MetricStatus

See k8s.io.autoscaling.v2beta2.MetricStatus.

FieldDescription
type(string)

object(ObjectMetricStatus)

pods(PodsMetricStatus)

resource(ResourceMetricStatus)

containerResource(ContainerResourceMetricStatus)

external(ExternalMetricStatus)

MetricTarget

See k8s.io.autoscaling.v2beta2.MetricTarget.

FieldDescription
type(string)

value(google.protobuf.Value)

For information about the value format, see the Google protocol buffer documentation.
averageValue(google.protobuf.Value)

For information about the value format, see the Google protocol buffer documentation.
averageUtilization(int32)

MetricValueStatus

See k8s.io.autoscaling.v2beta2.MetricValueStatus.

FieldDescription
value(google.protobuf.Value)

For information about the value format, see the Google protocol buffer documentation.
averageValue(google.protobuf.Value)

For information about the value format, see the Google protocol buffer documentation.
averageUtilization(int32)

NodeAffinity

See k8s.io.api.core.v1.NodeAffinity.

FieldDescription
requiredDuringSchedulingIgnoredDuringExecution(NodeSelector)

preferredDuringSchedulingIgnoredDuringExecution(repeated PreferredSchedulingTerm)

NodeSelector

See k8s.io.api.core.v1.NodeSelector.

FieldDescription
nodeSelectorTerms(repeated NodeSelectorTerm)

NodeSelectorRequirement

See k8s.io.api.core.v1.NodeSelectorRequirement.

FieldDescription
key(string)

operator(string)

values(repeated string)

NodeSelectorTerm

See k8s.io.api.core.v1.NodeSelectorTerm.

FieldDescription
matchExpressions(repeated NodeSelectorRequirement)

matchFields(repeated NodeSelectorRequirement)

ObjectFieldSelector

See k8s.io.api.core.v1.ObjectFieldSelector.

FieldDescription
apiVersion(string)

fieldPath(string)

ObjectMeta

From k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta.

FieldDescription
name(string)

namespace(string)

ObjectMetricSource

See k8s.io.autoscaling.v2beta2.ObjectMetricSource.

FieldDescription
metricName(string)

targetValue(google.protobuf.Value)

For information about the value format, see the Google protocol buffer documentation.
selector(k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector)

For information about the value format, see the Kubernetes API reference documentation.
averageValue(google.protobuf.Value)

For information about the value format, see the Google protocol buffer documentation.
target(google.protobuf.Value)

Type changes from CrossVersionObjectReference to ResourceMetricTarget in autoscaling v2beta2/v2 compared with v2beta1 Change it to dynamic type to keep backward compatible For information about the value format, see the Google protocol buffer documentation.
describedObject(CrossVersionObjectReference)

metric(MetricIdentifier)

ObjectMetricStatus

See k8s.io.autoscaling.v2beta2.ObjectMetricStatus.

FieldDescription
metric(MetricIdentifier)

current(MetricValueStatus)

describedObject(CrossVersionObjectReference)

PodAffinity

See k8s.io.api.core.v1.PodAffinity.

FieldDescription
requiredDuringSchedulingIgnoredDuringExecution(repeated PodAffinityTerm)

preferredDuringSchedulingIgnoredDuringExecution(repeated WeightedPodAffinityTerm)

PodAffinityTerm

See k8s.io.api.core.v1.PodAntiAffinity.

FieldDescription
labelSelector(k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector)

For information about the value format, see the Kubernetes API reference documentation.
namespaces(repeated string)

topologyKey(string)

PodAntiAffinity

See k8s.io.api.core.v1.PodAntiAffinity.

FieldDescription
requiredDuringSchedulingIgnoredDuringExecution(repeated PodAffinityTerm)

preferredDuringSchedulingIgnoredDuringExecution(repeated WeightedPodAffinityTerm)

PodDisruptionBudgetSpec

See k8s.io.api.policy.v1beta1.PodDisruptionBudget.

FieldDescription
minAvailable(google.protobuf.Value)

For information about the value format, see the Google protocol buffer documentation.
selector(k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector)

For information about the value format, see the Kubernetes API reference documentation.
maxUnavailable(google.protobuf.Value)

For information about the value format, see the Google protocol buffer documentation.

PodSecurityContext

See k8s.io.api.core.v1.PodSecurityContext.

FieldDescription
seLinuxOptions(SELinuxOptions)

runAsUser(int64)

runAsNonRoot(bool)

supplementalGroups(repeated int64)

fsGroup(int64)

runAsGroup(int64)

sysctls(repeated Sysctl)

windowsOptions(WindowsSecurityContextOptions)

fsGroupChangePolicy(string)

seccompProfile(SeccompProfile)

PodsMetricSource

See k8s.io.autoscaling.v2beta2.PodsMetricSource.

FieldDescription
metricName(string)

targetAverageValue(google.protobuf.Value)

For information about the value format, see the Google protocol buffer documentation.
selector(k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector)

For information about the value format, see the Kubernetes API reference documentation.
metric(MetricIdentifier)

v2beta2/v2 fields
target(MetricTarget)

PodsMetricStatus

See k8s.io.autoscaling.v2beta2.PodsMetricStatus.

FieldDescription
metric(MetricIdentifier)

current(MetricValueStatus)

PreferredSchedulingTerm

See k8s.io.api.core.v1.PreferredSchedulingTerm.

FieldDescription
weight(int32)

preference(NodeSelectorTerm)

ReadinessProbe

See k8s.io.api.core.v1.ReadinessProbe.

FieldDescription
exec(ExecAction)

httpGet(HTTPGetAction)

tcpSocket(TCPSocketAction)

initialDelaySeconds(int32)

timeoutSeconds(int32)

periodSeconds(int32)

successThreshold(int32)

failureThreshold(int32)

ResourceFieldSelector

See k8s.io.api.core.v1..

FieldDescription
containerName(string)

resource(string)

divisor(google.protobuf.Value)

For information about the value format, see the Google protocol buffer documentation.

ResourceMetricSource

See k8s.io.autoscaling.v2beta2.ResourceMetricSource.

FieldDescription
name(string)

targetAverageUtilization(int32)

targetAverageValue(google.protobuf.Value)

For information about the value format, see the Google protocol buffer documentation.
target(MetricTarget)

ResourceMetricStatus

See k8s.io.autoscaling.v2beta2.ResourceMetricStatus.

FieldDescription
name(string)

current(MetricValueStatus)

Resources

See k8s.io.api.core.v1.ResourceRequirements.

FieldDescription
limits(repeated Resources.LimitsEntry)

requests(repeated Resources.RequestsEntry)

Resources.LimitsEntry

FieldDescription
key(string)

value(string)

Resources.RequestsEntry

FieldDescription
key(string)

value(string)

RollingUpdateDeployment

See k8s.io.api.apps.v1.RollingUpdateDeployment.

FieldDescription
maxUnavailable(google.protobuf.Value)

For information about the value format, see the Google protocol buffer documentation.
maxSurge(google.protobuf.Value)

For information about the value format, see the Google protocol buffer documentation.

SELinuxOptions

See k8s.io.api.core.v1.SELinuxOptions.

FieldDescription
user(string)

role(string)

type(string)

level(string)

SeccompProfile

See k8s.io.api.core.v1.SeccompProfile.

FieldDescription
type(string)

localhostProfile(string)

SecretKeySelector

See k8s.io.api.core.v1.SecretKeySelector.

FieldDescription
localObjectReference(LocalObjectReference)

key(string)

optional(bool)

ServicePort

See k8s.io.api.core.v1..

FieldDescription
name(string)

protocol(string)

port(int32)

targetPort(google.protobuf.Value)

For information about the value format, see the Google protocol buffer documentation.
nodePort(int32)

ServiceSpec

See k8s.io.api.core.v1.ServiceSpec.

FieldDescription
ports(repeated ServicePort)

selector(repeated ServiceSpec.SelectorEntry)

clusterIP(string)

type(string)

externalIPs(repeated string)

sessionAffinity(string)

loadBalancerIP(string)

loadBalancerSourceRanges(repeated string)

externalName(string)

externalTrafficPolicy(string)

healthCheckNodePort(int32)

publishNotReadyAddresses(bool)

sessionAffinityConfig(SessionAffinityConfig)

ServiceSpec.SelectorEntry

FieldDescription
key(string)

value(string)

SessionAffinityConfig

See k8s.io.api.core.v1.SessionAffinityConfig.

FieldDescription
clientIP(ClientIPConfig)

Sysctl

See k8s.io.api.core.v1.Sysctl.

FieldDescription
name(string)

value(string)

TCPSocketAction

See k8s.io.api.core.v1.TCPSocketAction.

FieldDescription
port(google.protobuf.Value)

For information about the value format, see the Google protocol buffer documentation.
host(string)

Toleration

See k8s.io.api.core.v1.Toleration.

FieldDescription
key(string)

operator(string)

value(string)

effect(string)

tolerationSeconds(int64)

WeightedPodAffinityTerm

See k8s.io.api.core.v1.WeightedPodAffinityTerm.

FieldDescription
weight(int32)

podAffinityTerm(PodAffinityTerm)

WindowsSecurityContextOptions

See k8s.io.api.core.v1.WindowsSecurityContextOptions.

FieldDescription
gmsaCredentialSpecName(string)

gmsaCredentialSpec(string)

runAsUserName(string)

InstallStatus.Status

Status describes the current state of a component.

NameNumberDescription
NONE0Component is not present.
UPDATING1Component is being updated to a different version.
RECONCILING2Controller has started but not yet completed reconciliation loop for the component.
HEALTHY3Component is healthy.
ERROR4Component is in an error state.
ACTION_REQUIRED5Overall status only and would not be set as a component status. Action is needed from the user for reconciliation to proceed e.g. There are proxies still pointing to the control plane revision when try to remove an IstioOperator CR.