// AsciiDoc settings
:data-uri!:
:doctype: book
:experimental:
:idprefix:
:imagesdir: images
:numbered:
:sectanchors!:
:sectnums:
:source-highlighter: highlightjs
:toc: left
:linkattrs:
:toclevels: 3

// Name and version placeholders
:ProductLongName: Strimzi
:ProductName: Strimzi
:ContextProduct: strimzi
:OpenShiftVersion: 3.11 and later
:KubernetesVersion: 1.11 and later

// Kafka upgrade attributes used in kafka upgrades section
:DefaultKafkaVersion: 2.5.0
:KafkaVersionLower: 2.4.1
:KafkaVersionHigher: 2.5.0

//log message format version
:LogMsgVersLower: 2.4
:LogMsgVersHigher: 2.5

// Source and download links
:ReleaseDownload: https://github.com/strimzi/strimzi-kafka-operator/releases[GitHub^]

//Monitoring links
:GrafanaHome: link:https://grafana.com/[Grafana Labs^]
:JMXExporter: link:https://github.com/prometheus/jmx_exporter[JMX Exporter documentation^]
:PrometheusHome: link:https://github.com/prometheus[Prometheus^]
:PrometheusConfig: link:https://prometheus.io/docs/prometheus/latest/configuration/configuration[Configuration^]
:kafka-exporter-project: link:https://github.com/danielqsj/kafka_exporter[Kafka Exporter^]

//OAuth attributes and links
:oauth: OAuth 2.0
:oauth2-site: link:https://oauth.net/2/[{oauth} site^]
:oauth-artifact-version: 0.2.0
:keycloak-server: Keycloak
:keycloak-server-doc: link:https://www.keycloak.org/documentation.html[Keycloak documentation^]
:keycloak-authorization-services: link:https://www.keycloak.org/docs/latest/authorization_services/index.html[Authorization Services^]
:oauth-blog: link:https://strimzi.io/2019/10/25/kafka-authentication-using-oauth-2.0.html[Kafka authentication using {oauth}^]
:oauth-demo-keycloak: link:https://github.com/strimzi/strimzi-kafka-oauth/tree/master/examples[Using Keycloak as the {oauth} authorization server^]
:oauth-demo-hydra: link:https://github.com/strimzi/strimzi-kafka-oauth/tree/master/examples/docker[Using Hydra as the {oauth} authorization server^]

// External links
:aws-ebs: link:https://aws.amazon.com/ebs/[Amazon Elastic Block Store (EBS)^]
:docs-okd: link:https://docs.okd.io/3.9/dev_guide/builds/index.html[builds^]
:docs-okd-s2i: link:https://docs.okd.io/3.9/creating_images/s2i.html[Source-to-Image (S2I)^]
:kafkaDoc: https://kafka.apache.org/documentation/[Apache Kafka documentation^]
:KafkaRacks: link:https://kafka.apache.org/documentation/#basic_ops_racks[Kafka racks documentation^]
:K8sAffinity: link:https://kubernetes.io/docs/concepts/configuration/assign-pod-node/[Kubernetes node and pod affinity documentation^]
:K8sTolerations: link:https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/[Kubernetes taints and tolerations^]
:K8sEmptyDir: link:https://kubernetes.io/docs/concepts/storage/volumes/#emptydir[emptyDir^]
:K8sPersistentVolumeClaims: link:https://kubernetes.io/docs/concepts/storage/dynamic-provisioning/[Persistent Volume Claims^]
:K8sLocalPersistentVolumes: link:https://kubernetes.io/docs/concepts/storage/volumes/#local[Local persistent volumes^]
:K8SStorageClass: link:https://kubernetes.io/docs/concepts/storage/storage-classes/[Storage Class^]
:K8SJsonPath: link:https://kubernetes.io/docs/reference/kubectl/jsonpath/[JSONPath support^]
:K8sMeaningOfCpu: link:https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#meaning-of-cpu[Meaning of CPU^]
:K8sMeaningOfMemory: link:https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#meaning-of-memory[Meaning of memory^]
:K8sManagingComputingResources: link:https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/[Managing Compute Resources for Containers^]
:K8sLivenessReadinessProbes: link:https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/[Configure Liveness and Readiness Probes^]
:K8sPullingImagesFromPrivateRegistries: link:https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/[Pull an Image from a Private Registry^]
:K8sConfigureSecurityContext: link:https://kubernetes.io/docs/tasks/configure-pod-container/security-context/[Configure a Security Context for a Pod or Container^]
:K8sNetworkPolicyPeerAPI: link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#networkpolicypeer-v1-networking-k8s-io[NetworkPolicyPeer API reference^]
:K8sPodDisruptionBudgets: link:https://kubernetes.io/docs/concepts/workloads/pods/disruptions/[Disruptions^]
:K8sImagePullPolicies: link:https://kubernetes.io/docs/concepts/containers/images/#updating-images[Disruptions^]
:K8sCRDs: link:https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/[Extend the Kubernetes API with CustomResourceDefinitions^]
:K8sResizingPersistentVolumesUsingKubernetes: link:https://kubernetes.io/blog/2018/07/12/resizing-persistent-volumes-using-kubernetes/[Resizing Persistent Volumes using Kubernetes^]
:K8sPriorityClass: link:https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption[Pod Priority and Preemption^]
:K8sServiceDiscovery: https://kubernetes.io/docs/concepts/services-networking/service/#discovering-services[Discovering services^]
:Minikube: link:https://kubernetes.io/docs/tasks/tools/install-minikube/[Install and start Minikube]
:NginxIngressController: link:https://github.com/kubernetes/ingress-nginx[NGINX Ingress Controller for Kubernetes^]
:NginxIngressControllerTLSPassthrough: link:https://kubernetes.github.io/ingress-nginx/user-guide/tls/#ssl-passthrough[TLS passthrough documentation]
:KubernetesExternalDNS: link:https://github.com/kubernetes-incubator/external-dns[External DNS^]
:ApacheKafkaBrokerConfig: link:http://kafka.apache.org/documentation/#brokerconfigs[Apache Kafka documentation^]
:ApacheKafkaConnectConfig: link:http://kafka.apache.org/20/documentation.html#connectconfigs[Apache Kafka documentation^]
:ApacheZookeeperConfig: link:http://zookeeper.apache.org/doc/r3.4.13/zookeeperAdmin.html[ZooKeeper documentation^]
:ApacheKafkaConsumerConfig: link:http://kafka.apache.org/20/documentation.html#newconsumerconfigs[Apache Kafka configuration documentation for consumers^]
:ApacheKafkaProducerConfig: link:http://kafka.apache.org/20/documentation.html#producerconfigs[Apache Kafka configuration documentation for producers^]
:ApacheKafkaDownload: link:http://kafka.apache.org/[Apache Kafka download^]
:ApacheLoggers: link:https://logging.apache.org/[Apache logging services^]
:CruiseControlProject: https://github.com/linkedin/cruise-control[Cruise Control^]
:CruiseControlConfigDocs: link:https://github.com/linkedin/cruise-control/wiki/Configurations[Cruise Control documentation]
:JMXExporter: link:https://github.com/prometheus/jmx_exporter[JMX Exporter documentation^]
:CronExpression: link:http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/tutorial-lesson-06.html[cron expression^]
:ExternalListeners: link:https://strimzi.io/2019/04/17/accessing-kafka-part-1.html[Accessing Apache Kafka in Strimzi^]
:OperatorHub: link:https://operatorhub.io/[OperatorHub.io^]
:OperatorLifecycleManager: link:https://github.com/operator-framework/operator-lifecycle-manager[Operator Lifecycle Manager^]
:OpenTracingHome: link:https://opentracing.io/[OpenTracing^]
:OpenTelemetryHome: link:https://opentelemetry.io/[OpenTelemetry^]
:JaegerHome: link:https://www.jaegertracing.io/[Jaeger^]
:JaegerArch: link:https://www.jaegertracing.io/docs/1.14/architecture/[Jaeger architecure^]
:OpenTracingDocs: link:https://opentracing.io/docs/overview/[OpenTracing documentation^]
:LatestBridgeAPIDocs: link:https://strimzi.io/docs/bridge/latest/[Kafka Bridge API reference^]


// Container image names and repositories
:DockerOrg: docker.io/strimzi
:DockerTag: {ProductVersion}
:BridgeDockerTag: {BridgeVersion}
:DockerRepository: https://hub.docker.com/u/strimzi[Docker Hub^]
:DockerZookeeper: strimzi/kafka:{DockerTag}-kafka-{DefaultKafkaVersion}
:DockerZookeeperStunnel: strimzi/kafka:{DockerTag}-kafka-{DefaultKafkaVersion}
:DockerKafkaImageCurrent: strimzi/kafka:{DockerTag}-kafka-{KafkaVersionHigher}
:DockerKafkaImagePrevious: strimzi/kafka:{DockerTag}-kafka-{KafkaVersionLower}
:DockerKafka: strimzi/kafka:{DockerTag}-kafka-{DefaultKafkaVersion}
:DockerKafkaStunnel: strimzi/kafka:{DockerTag}-kafka-{DefaultKafkaVersion}
:DockerKafkaConnect: strimzi/kafka:{DockerTag}-kafka-{DefaultKafkaVersion}
:DockerKafkaConnectS2I: strimzi/kafka:{DockerTag}-kafka-{DefaultKafkaVersion}
:DockerClusterOperator: strimzi/operator:{DockerTag}
:DockerKafkaInit: strimzi/operator:{DockerTag}
:DockerTopicOperator: strimzi/operator:{DockerTag}
:DockerUserOperator: strimzi/operator:{DockerTag}
:DockerEntityOperatorStunnel: strimzi/kafka:{DockerTag}-kafka-{DefaultKafkaVersion}
:DockerKafkaBridge: strimzi/kafka-bridge:{BridgeDockerTag}
:DockerImageUser: 1001

// API Versions current
:ApiVersion: v1beta1
:KafkaApiVersion: kafka.strimzi.io/v1beta1
:KafkaConnectApiVersion: kafka.strimzi.io/v1beta1
:KafkaConnectS2IApiVersion: kafka.strimzi.io/v1beta1
:KafkaTopicApiVersion: kafka.strimzi.io/v1beta1
:KafkaUserApiVersion: kafka.strimzi.io/v1beta1
:KafkaMirrorMakerApiVersion: kafka.strimzi.io/v1beta1
:ApiVersion: v1beta1

// API Versions previous
:KafkaApiVersionPrev: kafka.strimzi.io/v1alpha1
:KafkaConnectApiVersionPrev: kafka.strimzi.io/v1alpha1
:KafkaConnectS2IApiVersionPrev: kafka.strimzi.io/v1alpha1
:KafkaTopicApiVersionPrev: kafka.strimzi.io/v1alpha1
:KafkaUserApiVersionPrev: kafka.strimzi.io/v1alpha1
:KafkaMirrorMakerApiVersionPrev: kafka.strimzi.io/v1alpha1

// Tracing versions
:JaegerClientVersion: 1.1.0
:OpenTracingKafkaClient: 0.1.12

// Section enablers
:Helm:
:OperatorHubio:
:StrimziUpgrades:
:InstallationAppendix:
:Metrics:
:Downloading:
:SecurityImg:

//EXCLUSIVE TO STRIMZI
:sectlinks:
:GithubVersion: master

// Helm Chart - deploy cluster operator
:ChartName: strimzi-kafka-operator
:ChartReleaseCoordinate: strimzi/strimzi-kafka-operator
:ChartRepositoryUrl: https://strimzi.io/charts/

//Latest Strimzi version
:ProductVersion: 0.17.x

// Links to other Strimzi documentation books
:BookURLDeploying: ./deploying.html
:BookURLUsing: ./using.html