diff --git a/cookbooks/nomad/default.rb b/cookbooks/nomad/default.rb index df2a768..6da52cd 100644 --- a/cookbooks/nomad/default.rb +++ b/cookbooks/nomad/default.rb @@ -5,6 +5,4 @@ include_recipe './install.rb' if node['nomad']['manager'] || node['nomad']['client'] include_recipe './setup.rb' include_recipe './csi.rb' - - include_recipe './shared_dir.rb' end diff --git a/cookbooks/nomad/files/etc/nomad.d/client.hcl b/cookbooks/nomad/files/etc/nomad.d/client.hcl index f731e19..dd7b407 100644 --- a/cookbooks/nomad/files/etc/nomad.d/client.hcl +++ b/cookbooks/nomad/files/etc/nomad.d/client.hcl @@ -1,3 +1,11 @@ client { enabled = true + + meta { + connect.log_level = "debug" + } } + +# consul { +# token = "11800359-1330-fe54-d858-44e8de9a14f6" +# } diff --git a/cookbooks/nomad/files/etc/nomad.d/jobs/countdash-intention.hcl b/cookbooks/nomad/files/etc/nomad.d/jobs/countdash-intention.hcl new file mode 100644 index 0000000..7fc1fc0 --- /dev/null +++ b/cookbooks/nomad/files/etc/nomad.d/jobs/countdash-intention.hcl @@ -0,0 +1,8 @@ +Kind = "service-intentions" +Name = "count-api" +Sources = [ + { + Name = "count-dashboard" + Action = "allow" + } +] diff --git a/cookbooks/nomad/files/etc/nomad.d/jobs/countdash.hcl b/cookbooks/nomad/files/etc/nomad.d/jobs/countdash.hcl new file mode 100644 index 0000000..a963c47 --- /dev/null +++ b/cookbooks/nomad/files/etc/nomad.d/jobs/countdash.hcl @@ -0,0 +1,98 @@ +job "countdash" { + datacenters = ["dc1"] + group "api" { + network { + mode = "bridge" + + port "envoy_metrics" { + to = 9102 + } + } + + service { + name = "count-api" + port = "9001" + + meta { + envoy_metrics_port = "${NOMAD_HOST_PORT_envoy_metrics}" + } + + connect { + sidecar_service { + proxy { + config { + envoy_prometheus_bind_addr = "0.0.0.0:9102" + } + } + tags = ["envoy"] + } + } + } + + task "web" { + driver = "docker" + config { + image = "hashicorpnomad/counter-api:v1" + } + + # constraint { + # attribute = "${attr.unique.hostname}" + # value = "test01" + # } + } + } + + group "dashboard" { + network { + mode ="bridge" + port "http" { + static = 9002 + to = 9002 + } + + port "envoy_metrics" { + to = 9102 + } + } + + service { + name = "count-dashboard" + port = "9002" + + meta { + envoy_metrics_port = "${NOMAD_HOST_PORT_envoy_metrics}" + } + + connect { + sidecar_service { + proxy { + upstreams { + destination_name = "count-api" + local_bind_port = 8080 + } + config { + envoy_prometheus_bind_addr = "0.0.0.0:9102" + } + } + tags = ["envoy"] + } + } + } + + task "dashboard" { + driver = "docker" + env { + COUNTING_SERVICE_URL = "http://${NOMAD_UPSTREAM_ADDR_count_api}" + } + + config { + image = "hashicorpnomad/counter-dashboard:v1" + } + + # constraint { + # attribute = "${attr.unique.hostname}" + # value = "test03" + # } + } + } +} diff --git a/cookbooks/nomad/files/etc/nomad.d/policies/anonymous.hcl b/cookbooks/nomad/files/etc/nomad.d/policies/anonymous.hcl new file mode 100644 index 0000000..9fe3564 --- /dev/null +++ b/cookbooks/nomad/files/etc/nomad.d/policies/anonymous.hcl @@ -0,0 +1,24 @@ +namespace "*" { + policy = "write" + capabilities = ["alloc-node-exec"] +} + +agent { + policy = "write" +} + +operator { + policy = "write" +} + +quota { + policy = "write" +} + +node { + policy = "write" +} + +host_volume "*" { + policy = "write" +} diff --git a/cookbooks/nomad/setup.rb b/cookbooks/nomad/setup.rb index 43db7e8..3661691 100644 --- a/cookbooks/nomad/setup.rb +++ b/cookbooks/nomad/setup.rb @@ -22,6 +22,18 @@ if node['nomad']['manager'] notifies :restart, 'service[nomad]' end end + + directory '/etc/nomad.d/policies' do + owner 'nomad' + group 'nomad' + mode '755' + end + + remote_file '/etc/nomad.d/policies/anonymous.hcl' do + owner 'nomad' + group 'nomad' + mode '644' + end end if node['nomad']['client'] @@ -34,6 +46,20 @@ if node['nomad']['client'] notifies :restart, 'service[nomad]' end end + + directory '/etc/nomad.d/jobs' do + owner 'nomad' + group 'nomad' + mode '755' + end + + %w( countdash.hcl countdash-intention.hcl ).each do |f| + remote_file "/etc/nomad.d/jobs/#{f}" do + owner 'nomad' + group 'nomad' + mode '644' + end + end end # Create directory: diff --git a/cookbooks/nomad/shared_dir.rb b/cookbooks/nomad/shared_dir.rb deleted file mode 100644 index c40e4d1..0000000 --- a/cookbooks/nomad/shared_dir.rb +++ /dev/null @@ -1,19 +0,0 @@ -%w( /mnt/shared ).each do |d| - directory d do - owner 'root' - group 'root' - end -end - -# Add the fstab entry: -file '/etc/fstab' do - action :edit - - block do |content| - content << "//192.168.10.200/Shared/AppData /mnt/shared cifs username=admin,password=Holiday88,uid=root,gid=root,file_mode=0777,dir_mode=0777,vers=3.0,_netdev 0 0\n" - end - - not_if 'grep shared /etc/fstab' -end - -execute 'mount -a || true'