Skip to content
This repository has been archived by the owner on Jan 21, 2022. It is now read-only.

add optional links; manifests/bosh-lite now promote links/cloud-config #38

Merged
merged 2 commits into from Mar 28, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
10 changes: 9 additions & 1 deletion jobs/etcd/spec
Expand Up @@ -17,6 +17,14 @@ packages:
- etcd-dns-checker
- etcd-consistency-checker

provides:
- name: etcd
type: etcd_service

consumes:
- name: etcd
type: etcd_service

properties:
etcd.enable_network_diagnostics:
description: "Enable network diagnostics for etcd"
Expand All @@ -35,7 +43,7 @@ properties:
default: 1000

etcd.machines:
description: "Addresses of etcd machines"
description: "(if not using links) Addresses of etcd machines"

etcd.cluster:
description: "Information about etcd cluster"
Expand Down
40 changes: 28 additions & 12 deletions jobs/etcd/templates/etcd_bosh_utils.sh.erb
Expand Up @@ -53,31 +53,47 @@ DATA_DIR=${STORE_DIR}/etcd
end
end

def cluster_member_ips
ips = nil
if_p("etcd.machines") { |machines| ips = machines.map { |m| "http://#{m}:4001" } }
unless ips
ips = link("etcd").instances.map { |i| "http://#{i.address}:4001" }
end
ips
end

def cluster_members
if p("etcd.require_ssl") || p("etcd.peer_require_ssl")
cluster_url = "#{client_protocol}://#{p("etcd.advertise_urls_dns_suffix")}:4001"
return cluster_url
else
my_ip = discover_external_ip
cluster_member_ips = p("etcd.machines").map { |m| "http://#{m}:4001" }.join(" ")
return cluster_member_ips
cluster_member_ips.join(" ")
end
end

def consistency_checker_cluster_members
if p("etcd.require_ssl") || p("etcd.peer_require_ssl")
cluster_member_urls = p("etcd.cluster").map do |zone|
result = []
for i in 0..zone["instances"]-1
result << "#{client_protocol}://#{zone["name"].gsub('_', '-')}-#{i}.#{p("etcd.advertise_urls_dns_suffix")}:4001"
cluster_member_urls = nil
service_name="etcd"
if_link("etcd") do |etcd_link|
urls = []
etcd_link.instances.size.times do |i|
urls << "#{client_protocol}://#{service_name}-#{i}.#{p("etcd.advertise_urls_dns_suffix")}:4001"
end
result
end.flatten.join(",")
cluster_member_urls = urls.flatten.join(",")
end
unless cluster_member_urls
cluster_member_urls = p("etcd.cluster").map do |zone|
result = []
for i in 0..zone["instances"]-1
result << "#{client_protocol}://#{zone["name"].gsub('_', '-')}-#{i}.#{p("etcd.advertise_urls_dns_suffix")}:4001"
end
result
end.flatten.join(",")
end
return cluster_member_urls
else
my_ip = discover_external_ip
cluster_member_ips = p("etcd.machines").map { |m| "http://#{m}:4001" }.join(",")
return cluster_member_ips
cluster_member_ips.flatten.join(",")
end
end
%>
Expand Down
4 changes: 4 additions & 0 deletions manifests/bosh-lite/1-node.ops.yml
@@ -0,0 +1,4 @@
---
- type: replace
path: /instance_groups/name=etcd/instances
value: 1
88 changes: 29 additions & 59 deletions manifests/bosh-lite/3-node-no-ssl.yml
@@ -1,70 +1,40 @@
director_uuid: BOSH-DIRECTOR-UUID

name: etcd

jobs:
- name: etcd_z1
instance_groups:
- name: etcd
azs: [z1, z2, z3]
instances: 3
networks:
- name: etcd1
static_ips:
- 10.244.4.4
- 10.244.4.5
- 10.244.4.6
resource_pool: etcd_z1
persistent_disk: 1024
templates:
- release: etcd
name: etcd

networks:
- type: manual
name: etcd1
subnets:
- reserved:
- 10.244.4.2-10.244.4.3
- 10.244.4.12-10.244.4.254
static:
- 10.244.4.4
- 10.244.4.5
- 10.244.4.6
- 10.244.4.7
- 10.244.4.8
cloud_properties:
name: random
gateway: 10.244.4.1
range: 10.244.4.0/24

compilation:
workers: 3
cloud_properties: {}
network: etcd1
reuse_compilation_vms: true
persistent_disk_type: default
vm_type: default
stemcell: default
update:
serial: true
max_in_flight: 1
networks: [{name: private}]
jobs:
- name: etcd
release: etcd
provides:
etcd:
shared: true
properties:
etcd:
peer_require_ssl: false
require_ssl: false
heartbeat_interval_in_milliseconds: 50

update:
canary_watch_time: 1000-180000
canaries: 0
max_in_flight: 1
serial: true
update_watch_time: 1000-180000
canaries: 1
canary_watch_time: 1000-60000
update_watch_time: 1000-60000

resource_pools:
- name: etcd_z1
network: etcd1
cloud_properties: {}
stemcell:
name: bosh-warden-boshlite-ubuntu-trusty-go_agent
version: latest
variables: []

properties:
etcd:
machines:
- 10.244.4.4
- 10.244.4.5
- 10.244.4.6
peer_require_ssl: false
require_ssl: false
heartbeat_interval_in_milliseconds: 50
stemcells:
- alias: default
os: ubuntu-trusty
version: latest

releases:
- name: etcd
Expand Down