Page MenuHomePhabricator

paws_puppet_WIP_20190325.diff

Authored By
GTirloni
Mar 25 2019, 6:54 PM
Size
7 KB
Referenced Files
None
Subscribers
None

paws_puppet_WIP_20190325.diff

commit 08ffffbe5247cca7e488dbc810415d1f66a0607e
Author: root <root@paws-puppetmaster-01.paws.eqiad.wmflabs>
Date: Mon Mar 25 18:41:49 2019 +0000
Initial PAWS puppetization
diff --git a/manifests/site.pp b/manifests/site.pp
index 271c507d05..ce7799a765 100644
--- a/manifests/site.pp
+++ b/manifests/site.pp
@@ -1,2299 +1,19 @@
+node 'paws-packages-01.paws.eqiad.wmflabs' {
+ include role::paws::packages_server
}
+node /^paws-master/ {
+ include role::paws::master
}
+node /^paws-worker/ {
+ include role::paws::worker
}
+node /^paws-int-lb/ {
+ include role::paws::internal_lb
}
+node /^paws-ext-lb/ {
+ include role::paws::external_lb
}
diff --git a/modules/profile/manifests/paws/common.pp b/modules/profile/manifests/paws/common.pp
new file mode 100644
index 0000000000..db99dcf272
--- /dev/null
+++ b/modules/profile/manifests/paws/common.pp
@@ -0,0 +1,6 @@
+class profile::paws::common {
+
+ require role::labs::instance
+ include profile::paws::repos
+
+}
diff --git a/modules/profile/manifests/paws/docker.pp b/modules/profile/manifests/paws/docker.pp
new file mode 100644
index 0000000000..73a8bcb322
--- /dev/null
+++ b/modules/profile/manifests/paws/docker.pp
@@ -0,0 +1,47 @@
+class profile::paws::docker {
+
+ # Consult the Kubernetes changelog for supported versions
+ $docker_ce_version = '5:18.09.3~3-0~debian-stretch'
+ $docker_ce_cli_version = '5:18.09.3~3-0~debian-stretch'
+ $containerd_version = '1.2.4-1'
+
+ apt::pin { 'docker-ce':
+ package => 'docker-ce',
+ pin => "version ${docker_ce_version}",
+ priority => '3000',
+ }
+
+ package { 'docker-ce':
+ ensure => "${docker_ce_version}",
+ require => Apt::Pin['docker-ce'],
+ }
+
+ apt::pin { 'docker-ce-cli':
+ package => 'docker-ce-cli',
+ pin => "version ${docker_ce_cli_version}",
+ priority => '3000',
+ }
+
+ package { 'docker-ce-cli':
+ ensure => "${docker_ce_cli_version}",
+ require => Apt::Pin['docker-ce-cli'],
+ }
+
+ apt::pin { 'containerd.io':
+ package => 'containerd.io',
+ pin => "version ${containerd_version}",
+ priority => '3000',
+ }
+
+ package { 'containerd.io':
+ ensure => "${containerd_version}",
+ require => Apt::Pin['containerd.io'],
+ }
+
+ service { 'docker':
+ ensure => true,
+ enable => true,
+ require => Package['docker-ce'],
+ }
+
+}
diff --git a/modules/profile/manifests/paws/external_lb.pp b/modules/profile/manifests/paws/external_lb.pp
new file mode 100644
index 0000000000..7f0a817d89
--- /dev/null
+++ b/modules/profile/manifests/paws/external_lb.pp
@@ -0,0 +1,2 @@
+class profile::paws::external_lb {
+}
diff --git a/modules/profile/manifests/paws/internal_lb.pp b/modules/profile/manifests/paws/internal_lb.pp
new file mode 100644
index 0000000000..53e2409b06
--- /dev/null
+++ b/modules/profile/manifests/paws/internal_lb.pp
@@ -0,0 +1,2 @@
+class profile::paws::internal_lb {
+}
diff --git a/modules/profile/manifests/paws/kubernetes.pp b/modules/profile/manifests/paws/kubernetes.pp
new file mode 100644
index 0000000000..d2d9872d06
--- /dev/null
+++ b/modules/profile/manifests/paws/kubernetes.pp
@@ -0,0 +1,41 @@
+class profile::paws::kubernetes {
+
+ $version = '1.13.4-00'
+
+ $packages = [
+ 'kubectl',
+ 'kubelet',
+ 'kubeadm',
+ ]
+
+ apt::pin { 'kubernetes':
+ package => $packages,
+ pin => "version ${version}",
+ priority => '3000',
+ }
+
+ package { $packages:
+ ensure => "${version}",
+ require => Apt::Pin['kubernetes'],
+ }
+
+ service { 'kubelet':
+ ensure => true,
+ enable => true,
+ require => Package['kubelet'],
+ }
+
+ file_line { 'swap-fstab':
+ ensure => absent,
+ path => '/etc/fstab',
+ match => 'none swap defaults 1 0',
+ match_for_absence => true,
+ multiple => true,
+ }
+
+ exec { "swap-off":
+ command => "/sbin/swapoff -a",
+ onlyif => "/bin/grep partition /proc/swaps"
+ }
+
+}
diff --git a/modules/profile/manifests/paws/nginx.pp b/modules/profile/manifests/paws/nginx.pp
new file mode 100644
index 0000000000..1f4452a91c
--- /dev/null
+++ b/modules/profile/manifests/paws/nginx.pp
@@ -0,0 +1,24 @@
+class profile::paws::nginx {
+
+ $version = '1.14.1-1~bpo9+1'
+
+ $packages = [
+ 'nginx-light',
+ 'nginx-common',
+ 'libnginx-mod-http-echo',
+ 'libnginx-mod-stream',
+ ]
+
+ apt::pin { 'nginx':
+ package => $packages,
+ pin => "version ${version}",
+ priority => '3000',
+ }
+
+ package { $packages:
+ ensure => "${version}",
+ install_options => ['-t', 'stretch-backports'],
+ require => Apt::Pin['nginx'],
+ }
+
+}
diff --git a/modules/profile/manifests/paws/packages_server.pp b/modules/profile/manifests/paws/packages_server.pp
new file mode 100644
index 0000000000..d4314a803d
--- /dev/null
+++ b/modules/profile/manifests/paws/packages_server.pp
@@ -0,0 +1,3 @@
+class profile::paws::packages_server {
+ include role::aptly::server
+}
diff --git a/modules/profile/manifests/paws/repos.pp b/modules/profile/manifests/paws/repos.pp
new file mode 100644
index 0000000000..456d15623f
--- /dev/null
+++ b/modules/profile/manifests/paws/repos.pp
@@ -0,0 +1,23 @@
+class profile::paws::repos (
+ String $servername = 'paws-packages-01.paws.eqiad.wmflabs',
+ String $protocol = 'http',
+) {
+
+ apt::repository { 'kubernetes-xenial':
+ uri => "${protocol}://${servername}/repo",
+ dist => "kubernetes-xenial",
+ components => "main",
+ source => false,
+ trust_repo => true,
+ }
+
+ apt::repository { 'docker-ce':
+ uri => "${protocol}://${servername}/repo",
+ dist => "docker-ce",
+ components => "main",
+ source => false,
+ trust_repo => true,
+ }
+
+}
+
diff --git a/modules/role/manifests/paws/external_lb.pp b/modules/role/manifests/paws/external_lb.pp
new file mode 100644
index 0000000000..4f1e052ca4
--- /dev/null
+++ b/modules/role/manifests/paws/external_lb.pp
@@ -0,0 +1,5 @@
+class role::paws::external_lb {
+ include profile::paws::common
+ include profile::paws::nginx
+ include profile::paws::external_lb
+}
diff --git a/modules/role/manifests/paws/internal_lb.pp b/modules/role/manifests/paws/internal_lb.pp
new file mode 100644
index 0000000000..c065b2a7f9
--- /dev/null
+++ b/modules/role/manifests/paws/internal_lb.pp
@@ -0,0 +1,5 @@
+class role::paws::internal_lb {
+ include profile::paws::common
+ include profile::paws::nginx
+ include profile::paws::internal_lb
+}
diff --git a/modules/role/manifests/paws/master.pp b/modules/role/manifests/paws/master.pp
new file mode 100644
index 0000000000..084b3e6de6
--- /dev/null
+++ b/modules/role/manifests/paws/master.pp
@@ -0,0 +1,5 @@
+class role::paws::master {
+ include profile::paws::common
+ include profile::paws::docker
+ include profile::paws::kubernetes
+}
diff --git a/modules/role/manifests/paws/packages_server.pp b/modules/role/manifests/paws/packages_server.pp
new file mode 100644
index 0000000000..3db48c682f
--- /dev/null
+++ b/modules/role/manifests/paws/packages_server.pp
@@ -0,0 +1,4 @@
+class role::paws::packages_server {
+ include profile::paws::common
+ include profile::paws::packages_server
+}
diff --git a/modules/role/manifests/paws/worker.pp b/modules/role/manifests/paws/worker.pp
new file mode 100644
index 0000000000..a801576498
--- /dev/null
+++ b/modules/role/manifests/paws/worker.pp
@@ -0,0 +1,5 @@
+class role::paws::worker {
+ include profile::paws::common
+ include profile::paws::docker
+ include profile::paws::kubernetes
+}

File Metadata

Mime Type
text/x-diff
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
7220823
Default Alt Text
paws_puppet_WIP_20190325.diff (7 KB)

Event Timeline