Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deduplication of network definitions #315

Closed
eak13 opened this issue Jul 29, 2020 · 3 comments
Closed

Deduplication of network definitions #315

eak13 opened this issue Jul 29, 2020 · 3 comments
Assignees
Labels
enhancement New feature or request priority/critical Items critical to be implemented, usually by the next release
Milestone

Comments

@eak13
Copy link

eak13 commented Jul 29, 2020

Problem description (if applicable)
As an operator, I need the ability to specify common networking information at various levels of specificity while also being able to override & specify specific values down to the site & sub-type level.

The different levels of specificity could be:

  • global
  • type (common across clusters of a similar type, e.g. DNS servers)
  • clusters (e.g. gateway IP addresses)
  • sub-set of hosts within a cluster (control plane vs. worker node)
  • single host (e.g. IP address)

Proposed change
This issue requires some level of design/investigation to determine the following

  1. Look at the node level networkData settings which have been applied in the POC lab and make sure it’s all injectable via the common-networking.yaml catalogue at the type level.
  2. Determine what references exist to IP addresses defined in hosts.yaml and common-networking.yaml that aren’t deduplicated via the hostgenerator. From this identification, we will determine the location from where they should be placed & retrieved (e.g. host.yaml or common-networking, etc.).
    Samples can be found here:
    https://review.opendev.org/#/c/735033/25/manifests/site/test-site/shared/catalogues/hosts.yaml
    https://review.opendev.org/#/c/735033/25/manifests/type/gating/shared/catalogues/common-networking.yaml
  3. Determine if there’s any other networking information that needs to be deduplicated, and what the right level to capture that information. For example, networking config in the calico function, like pod network ip range – that’s probably also needed by capbk, and we don’t want to have to specify it in two places. https://github.com/airshipit/airshipctl/issues/new/choose
@eak13 eak13 added enhancement New feature or request triage Needs evaluation by project members design needed New Design or Redesign required labels Jul 29, 2020
@mattmceuen mattmceuen self-assigned this Jul 31, 2020
@mattmceuen
Copy link
Contributor

There are a number of 10.x.x.x IP addresses that are are coded in the airshipctl function definitions. Those will need to be turned into placeholders or defaults, with replacement rules defined at the function level and exercised at the site level.

The ironic provisioning_ip, dhcp_range, and provisioning_interface are currently patched at the site level in the ephemeral phase. We need to determine if that's good enough, or if we want to pull them out of e.g. common-networking catalogue (which is defined at type level, but can be overridden at site level) and/or the host catalogue.

@jezogwza jezogwza added this to the v2.0 milestone Aug 5, 2020
@jezogwza jezogwza removed the triage Needs evaluation by project members label Aug 5, 2020
@mattmceuen
Copy link
Contributor

@jezogwza jezogwza added priority/critical Items critical to be implemented, usually by the next release and removed design needed New Design or Redesign required labels Oct 7, 2020
airshipbot pushed a commit that referenced this issue Oct 21, 2020
Deduplicate networking definitions inside of airshipctl functions,
and make the values driveable via a catalogue.

Changes:
* Removed BMO patches at site level; drive through catalogue instead.
* Added separate entrypoints for ephemeral & target site-level.
  catalogue/networking overrides. Ephemeral's kustomizes target's.
* Generalized the commonHostNetworking catalogue into a section in the
  overall networking catalogue.
* Cleaned up catalogue use in general.
* Got rid of some ill-formed Type-level phase definition.
  We should go back soon and define proper Type-level phases.

Change-Id: Iff96ccdcf7ebde4ae55e2b1a9d25dd1cdca0d2c8
Relates-To: #315
airshipbot pushed a commit to airshipit/treasuremap that referenced this issue Nov 5, 2020
This adds network deduplication via variable catalogues and replacement.
This was added to airshipctl under the change:
https://review.opendev.org/#/c/749611/

Change-Id: Ib6a50c58e3b62de4f74c5def58b94ab6dbd1e949
Closes: airshipit/airshipctl#315
@mattmceuen
Copy link
Contributor

This is complete with the Treasuremap change that has merged here: https://review.opendev.org/#/c/753684/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request priority/critical Items critical to be implemented, usually by the next release
Projects
None yet
Development

No branches or pull requests

3 participants