# Copyright 2017 The Openstack-Helm Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

{{- if .Values.manifests_enabled.deployment }}
---
kind: Service
apiVersion: v1
metadata:
  name: {{ .Values.endpoints.ceph_mon.hosts.default }}
  labels:
    app: ceph
    daemon: mon
  annotations:
    # In kubernetes 1.6 and beyond, it seems there was a change in behavior
    # requiring us to tolerate unready endpoints to form a quorum.  I can only
    # guess at some small timing change causing statefulset+2 to not see the
    # now ready statefulset+1, and because we do not tolerate unready endpoints
    # a newly provisioned ceph-mon will most certainly never see itself in the
    # peer list.  This change allows us to form a quorum reliably everytime
    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
spec:
  ports:
  - port: {{ .Values.network.port.mon }}
    protocol: TCP
    targetPort: {{ .Values.network.port.mon }}
  selector:
    app: ceph
    daemon: mon
  clusterIP: None
{{- end }}