This repository was archived by the owner on Feb 27, 2020. It is now read-only.

Latest commit

History

2,146 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Project Clearwater is backed by Metaswitch Networks. We have discontinued active support for this project as of 1st December 2019. The mailing list archive is available in GitHub. All of the documentation and source code remains available for the community in GitHub. Metaswitch’s Clearwater Core product, built on Project Clearwater, remains an active and successful commercial offering. Please contact clearwater@metaswitch.com for more information. Note – this email is for commercial contacts with Metaswitch. We are no longer offering support for Project Clearwater via this contact.

clearwater-etcd

This package contains packaging wrappers around etcd that allow for easy installation, clustering and management of an etcd cluster.

Configuration

Configuration for the clearwater-etcd cluster is done through the standard /etc/clearwater/local_config file, the following values must be provided:

  • etcd_cluster - See below
  • local_ip - The local IP address

You can also provide a etcd_key value. This controls what key is used to store the clustering and configuration values in etcd. It defaults to clearwater if it isn't set.

Creating a Cluster

clearwater-etcd forms a cluster across your nodes to allow configuration to be easily shared. Most of the extra function added by the clearwater-etcd wrapper is to simplify the management of the cluster. The operations that can be performed are:

  • Create a new cluster
  • Join an existing cluster
  • Decommission a node (remove it permanently from the cluster)

Create a Cluster

Creating a cluster is as easy as determining the list of nodes that will be in the cluster and populating the etcd_cluster configuration parameter with the comma-separated list of nodes:

etcd_cluster=10.0.0.1,10.0.0.2,10.0.0.3

When you now install clearwater-etcd on each of these nodes, the cluster will automatically form.

Join an Existing Cluster

Joining an existing cluster requires determining the list of nodes that are currently in the cluster and providing that list in the etcd_cluster. Note that the newly added node MUST NOT be included in this list (otherwise we'll attempt to form the cluster from scratch).

Decommissioning

To decommission a node run sudo service clearwater-etcd decommission which will gracefully remove the local node, stop the local etcd service and destroy the node's state. At this point, the etcd service can be re-attached to that (or another) etcd cluster by updating etcd_cluster and starting the clearwater-etcd service.

etcd sources

About

Wrappers around etcd for ease of integration into Project Clearwater

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
This repository was archived by the owner on Feb 27, 2020. It is now read-only.

Latest commit

History

2,146 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Project Clearwater is backed by Metaswitch Networks. We have discontinued active support for this project as of 1st December 2019. The mailing list archive is available in GitHub. All of the documentation and source code remains available for the community in GitHub. Metaswitch’s Clearwater Core product, built on Project Clearwater, remains an active and successful commercial offering. Please contact clearwater@metaswitch.com for more information. Note – this email is for commercial contacts with Metaswitch. We are no longer offering support for Project Clearwater via this contact.

clearwater-etcd

This package contains packaging wrappers around etcd that allow for easy installation, clustering and management of an etcd cluster.

Configuration

Configuration for the clearwater-etcd cluster is done through the standard /etc/clearwater/local_config file, the following values must be provided:

  • etcd_cluster - See below
  • local_ip - The local IP address

You can also provide a etcd_key value. This controls what key is used to store the clustering and configuration values in etcd. It defaults to clearwater if it isn't set.

Creating a Cluster

clearwater-etcd forms a cluster across your nodes to allow configuration to be easily shared. Most of the extra function added by the clearwater-etcd wrapper is to simplify the management of the cluster. The operations that can be performed are:

  • Create a new cluster
  • Join an existing cluster
  • Decommission a node (remove it permanently from the cluster)

Create a Cluster

Creating a cluster is as easy as determining the list of nodes that will be in the cluster and populating the etcd_cluster configuration parameter with the comma-separated list of nodes:

etcd_cluster=10.0.0.1,10.0.0.2,10.0.0.3

When you now install clearwater-etcd on each of these nodes, the cluster will automatically form.

Join an Existing Cluster

Joining an existing cluster requires determining the list of nodes that are currently in the cluster and providing that list in the etcd_cluster. Note that the newly added node MUST NOT be included in this list (otherwise we'll attempt to form the cluster from scratch).

Decommissioning

To decommission a node run sudo service clearwater-etcd decommission which will gracefully remove the local node, stop the local etcd service and destroy the node's state. At this point, the etcd service can be re-attached to that (or another) etcd cluster by updating etcd_cluster and starting the clearwater-etcd service.

etcd sources

About

Wrappers around etcd for ease of integration into Project Clearwater

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Feb 27, 2020. It is now read-only.

Latest commit

History

2,146 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Project Clearwater is backed by Metaswitch Networks. We have discontinued active support for this project as of 1st December 2019. The mailing list archive is available in GitHub. All of the documentation and source code remains available for the community in GitHub. Metaswitch’s Clearwater Core product, built on Project Clearwater, remains an active and successful commercial offering. Please contact clearwater@metaswitch.com for more information. Note – this email is for commercial contacts with Metaswitch. We are no longer offering support for Project Clearwater via this contact.

clearwater-etcd

This package contains packaging wrappers around etcd that allow for easy installation, clustering and management of an etcd cluster.

Configuration

Configuration for the clearwater-etcd cluster is done through the standard /etc/clearwater/local_config file, the following values must be provided:

  • etcd_cluster - See below
  • local_ip - The local IP address

You can also provide a etcd_key value. This controls what key is used to store the clustering and configuration values in etcd. It defaults to clearwater if it isn't set.

Creating a Cluster

clearwater-etcd forms a cluster across your nodes to allow configuration to be easily shared. Most of the extra function added by the clearwater-etcd wrapper is to simplify the management of the cluster. The operations that can be performed are:

  • Create a new cluster
  • Join an existing cluster
  • Decommission a node (remove it permanently from the cluster)

Create a Cluster

Creating a cluster is as easy as determining the list of nodes that will be in the cluster and populating the etcd_cluster configuration parameter with the comma-separated list of nodes:

etcd_cluster=10.0.0.1,10.0.0.2,10.0.0.3

When you now install clearwater-etcd on each of these nodes, the cluster will automatically form.

Join an Existing Cluster

Joining an existing cluster requires determining the list of nodes that are currently in the cluster and providing that list in the etcd_cluster. Note that the newly added node MUST NOT be included in this list (otherwise we'll attempt to form the cluster from scratch).

Decommissioning

To decommission a node run sudo service clearwater-etcd decommission which will gracefully remove the local node, stop the local etcd service and destroy the node's state. At this point, the etcd service can be re-attached to that (or another) etcd cluster by updating etcd_cluster and starting the clearwater-etcd service.

etcd sources

About

Wrappers around etcd for ease of integration into Project Clearwater

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Feb 27, 2020. It is now read-only.

Latest commit

History

2,146 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Project Clearwater is backed by Metaswitch Networks. We have discontinued active support for this project as of 1st December 2019. The mailing list archive is available in GitHub. All of the documentation and source code remains available for the community in GitHub. Metaswitch’s Clearwater Core product, built on Project Clearwater, remains an active and successful commercial offering. Please contact clearwater@metaswitch.com for more information. Note – this email is for commercial contacts with Metaswitch. We are no longer offering support for Project Clearwater via this contact.

clearwater-etcd

This package contains packaging wrappers around etcd that allow for easy installation, clustering and management of an etcd cluster.

Configuration

Configuration for the clearwater-etcd cluster is done through the standard /etc/clearwater/local_config file, the following values must be provided:

  • etcd_cluster - See below
  • local_ip - The local IP address

You can also provide a etcd_key value. This controls what key is used to store the clustering and configuration values in etcd. It defaults to clearwater if it isn't set.

Creating a Cluster

clearwater-etcd forms a cluster across your nodes to allow configuration to be easily shared. Most of the extra function added by the clearwater-etcd wrapper is to simplify the management of the cluster. The operations that can be performed are:

  • Create a new cluster
  • Join an existing cluster
  • Decommission a node (remove it permanently from the cluster)

Create a Cluster

Creating a cluster is as easy as determining the list of nodes that will be in the cluster and populating the etcd_cluster configuration parameter with the comma-separated list of nodes:

etcd_cluster=10.0.0.1,10.0.0.2,10.0.0.3

When you now install clearwater-etcd on each of these nodes, the cluster will automatically form.

Join an Existing Cluster

Joining an existing cluster requires determining the list of nodes that are currently in the cluster and providing that list in the etcd_cluster. Note that the newly added node MUST NOT be included in this list (otherwise we'll attempt to form the cluster from scratch).

Decommissioning

To decommission a node run sudo service clearwater-etcd decommission which will gracefully remove the local node, stop the local etcd service and destroy the node's state. At this point, the etcd service can be re-attached to that (or another) etcd cluster by updating etcd_cluster and starting the clearwater-etcd service.

etcd sources

About

Wrappers around etcd for ease of integration into Project Clearwater

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
This repository was archived by the owner on Feb 27, 2020. It is now read-only.

Latest commit

History

2,146 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Project Clearwater is backed by Metaswitch Networks. We have discontinued active support for this project as of 1st December 2019. The mailing list archive is available in GitHub. All of the documentation and source code remains available for the community in GitHub. Metaswitch’s Clearwater Core product, built on Project Clearwater, remains an active and successful commercial offering. Please contact clearwater@metaswitch.com for more information. Note – this email is for commercial contacts with Metaswitch. We are no longer offering support for Project Clearwater via this contact.

clearwater-etcd

This package contains packaging wrappers around etcd that allow for easy installation, clustering and management of an etcd cluster.

Configuration

Configuration for the clearwater-etcd cluster is done through the standard /etc/clearwater/local_config file, the following values must be provided:

  • etcd_cluster - See below
  • local_ip - The local IP address

You can also provide a etcd_key value. This controls what key is used to store the clustering and configuration values in etcd. It defaults to clearwater if it isn't set.

Creating a Cluster

clearwater-etcd forms a cluster across your nodes to allow configuration to be easily shared. Most of the extra function added by the clearwater-etcd wrapper is to simplify the management of the cluster. The operations that can be performed are:

  • Create a new cluster
  • Join an existing cluster
  • Decommission a node (remove it permanently from the cluster)

Create a Cluster

Creating a cluster is as easy as determining the list of nodes that will be in the cluster and populating the etcd_cluster configuration parameter with the comma-separated list of nodes:

etcd_cluster=10.0.0.1,10.0.0.2,10.0.0.3

When you now install clearwater-etcd on each of these nodes, the cluster will automatically form.

Join an Existing Cluster

Joining an existing cluster requires determining the list of nodes that are currently in the cluster and providing that list in the etcd_cluster. Note that the newly added node MUST NOT be included in this list (otherwise we'll attempt to form the cluster from scratch).

Decommissioning

To decommission a node run sudo service clearwater-etcd decommission which will gracefully remove the local node, stop the local etcd service and destroy the node's state. At this point, the etcd service can be re-attached to that (or another) etcd cluster by updating etcd_cluster and starting the clearwater-etcd service.

etcd sources

About

Wrappers around etcd for ease of integration into Project Clearwater

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Feb 27, 2020. It is now read-only.

Latest commit

History

2,146 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Project Clearwater is backed by Metaswitch Networks. We have discontinued active support for this project as of 1st December 2019. The mailing list archive is available in GitHub. All of the documentation and source code remains available for the community in GitHub. Metaswitch’s Clearwater Core product, built on Project Clearwater, remains an active and successful commercial offering. Please contact clearwater@metaswitch.com for more information. Note – this email is for commercial contacts with Metaswitch. We are no longer offering support for Project Clearwater via this contact.

clearwater-etcd

This package contains packaging wrappers around etcd that allow for easy installation, clustering and management of an etcd cluster.

Configuration

Configuration for the clearwater-etcd cluster is done through the standard /etc/clearwater/local_config file, the following values must be provided:

  • etcd_cluster - See below
  • local_ip - The local IP address

You can also provide a etcd_key value. This controls what key is used to store the clustering and configuration values in etcd. It defaults to clearwater if it isn't set.

Creating a Cluster

clearwater-etcd forms a cluster across your nodes to allow configuration to be easily shared. Most of the extra function added by the clearwater-etcd wrapper is to simplify the management of the cluster. The operations that can be performed are:

  • Create a new cluster
  • Join an existing cluster
  • Decommission a node (remove it permanently from the cluster)

Create a Cluster

Creating a cluster is as easy as determining the list of nodes that will be in the cluster and populating the etcd_cluster configuration parameter with the comma-separated list of nodes:

etcd_cluster=10.0.0.1,10.0.0.2,10.0.0.3

When you now install clearwater-etcd on each of these nodes, the cluster will automatically form.

Join an Existing Cluster

Joining an existing cluster requires determining the list of nodes that are currently in the cluster and providing that list in the etcd_cluster. Note that the newly added node MUST NOT be included in this list (otherwise we'll attempt to form the cluster from scratch).

Decommissioning

To decommission a node run sudo service clearwater-etcd decommission which will gracefully remove the local node, stop the local etcd service and destroy the node's state. At this point, the etcd service can be re-attached to that (or another) etcd cluster by updating etcd_cluster and starting the clearwater-etcd service.

etcd sources

About

Wrappers around etcd for ease of integration into Project Clearwater

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Feb 27, 2020. It is now read-only.

Latest commit

History

2,146 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Project Clearwater is backed by Metaswitch Networks. We have discontinued active support for this project as of 1st December 2019. The mailing list archive is available in GitHub. All of the documentation and source code remains available for the community in GitHub. Metaswitch’s Clearwater Core product, built on Project Clearwater, remains an active and successful commercial offering. Please contact clearwater@metaswitch.com for more information. Note – this email is for commercial contacts with Metaswitch. We are no longer offering support for Project Clearwater via this contact.

clearwater-etcd

This package contains packaging wrappers around etcd that allow for easy installation, clustering and management of an etcd cluster.

Configuration

Configuration for the clearwater-etcd cluster is done through the standard /etc/clearwater/local_config file, the following values must be provided:

  • etcd_cluster - See below
  • local_ip - The local IP address

You can also provide a etcd_key value. This controls what key is used to store the clustering and configuration values in etcd. It defaults to clearwater if it isn't set.

Creating a Cluster

clearwater-etcd forms a cluster across your nodes to allow configuration to be easily shared. Most of the extra function added by the clearwater-etcd wrapper is to simplify the management of the cluster. The operations that can be performed are:

  • Create a new cluster
  • Join an existing cluster
  • Decommission a node (remove it permanently from the cluster)

Create a Cluster

Creating a cluster is as easy as determining the list of nodes that will be in the cluster and populating the etcd_cluster configuration parameter with the comma-separated list of nodes:

etcd_cluster=10.0.0.1,10.0.0.2,10.0.0.3

When you now install clearwater-etcd on each of these nodes, the cluster will automatically form.

Join an Existing Cluster

Joining an existing cluster requires determining the list of nodes that are currently in the cluster and providing that list in the etcd_cluster. Note that the newly added node MUST NOT be included in this list (otherwise we'll attempt to form the cluster from scratch).

Decommissioning

To decommission a node run sudo service clearwater-etcd decommission which will gracefully remove the local node, stop the local etcd service and destroy the node's state. At this point, the etcd service can be re-attached to that (or another) etcd cluster by updating etcd_cluster and starting the clearwater-etcd service.

etcd sources

About

Wrappers around etcd for ease of integration into Project Clearwater

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
This repository was archived by the owner on Feb 27, 2020. It is now read-only.

Latest commit

History

2,146 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Project Clearwater is backed by Metaswitch Networks. We have discontinued active support for this project as of 1st December 2019. The mailing list archive is available in GitHub. All of the documentation and source code remains available for the community in GitHub. Metaswitch’s Clearwater Core product, built on Project Clearwater, remains an active and successful commercial offering. Please contact clearwater@metaswitch.com for more information. Note – this email is for commercial contacts with Metaswitch. We are no longer offering support for Project Clearwater via this contact.

clearwater-etcd

This package contains packaging wrappers around etcd that allow for easy installation, clustering and management of an etcd cluster.

Configuration

Configuration for the clearwater-etcd cluster is done through the standard /etc/clearwater/local_config file, the following values must be provided:

  • etcd_cluster - See below
  • local_ip - The local IP address

You can also provide a etcd_key value. This controls what key is used to store the clustering and configuration values in etcd. It defaults to clearwater if it isn't set.

Creating a Cluster

clearwater-etcd forms a cluster across your nodes to allow configuration to be easily shared. Most of the extra function added by the clearwater-etcd wrapper is to simplify the management of the cluster. The operations that can be performed are:

  • Create a new cluster
  • Join an existing cluster
  • Decommission a node (remove it permanently from the cluster)

Create a Cluster

Creating a cluster is as easy as determining the list of nodes that will be in the cluster and populating the etcd_cluster configuration parameter with the comma-separated list of nodes:

etcd_cluster=10.0.0.1,10.0.0.2,10.0.0.3

When you now install clearwater-etcd on each of these nodes, the cluster will automatically form.

Join an Existing Cluster

Joining an existing cluster requires determining the list of nodes that are currently in the cluster and providing that list in the etcd_cluster. Note that the newly added node MUST NOT be included in this list (otherwise we'll attempt to form the cluster from scratch).

Decommissioning

To decommission a node run sudo service clearwater-etcd decommission which will gracefully remove the local node, stop the local etcd service and destroy the node's state. At this point, the etcd service can be re-attached to that (or another) etcd cluster by updating etcd_cluster and starting the clearwater-etcd service.

etcd sources

About

Wrappers around etcd for ease of integration into Project Clearwater

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages