This PR improves cross-platform compatibility.
It solves two main issues:
1. inconsistent line endings
2. inconsistent path separators
Path separators, in installer, needs to target two different
environments:
1. the OS where the installer runs
2. the OS where the injected files been used
This PR unified path separators used in 2 to be UNIX path separators,
while in 1 to be platform-dependant.
Ref: https://forum.golangbridge.org/t/filepath-join-or-path-join/13479
Known issues:
The spawn processes, including etcd.exe, kube-apiserver.exe,
and openshift-installer.exe, will not exit once installation
aborted or completed. Users need to manually terminate those
processes in task manager.
Adds support to produce the operatorv1 network config with a customized
ipv4.InternalJoinSubnet. This commit refactors the existing production
of the network config to allow the v4InternalSubnet to be customized
along with the existing specific use cases, which were PowerVS
and AWS edge zones/custom MTU. Redundant logic across the platforms
was deduplicated and replaced with a generic function that composes
the manifest (or skips it) based on the install config.
The custom CNO manifest is automatically rendered when a edge compute
pool in AWS deployments. With this change, user-defined cluster network
MTU (field platform.aws.clusterNetworkMTU), this custom manifest must be
adapted allowing precedence when the field is added.
The validation flow raises a wanring when the values are out of generally
supported for aws edge zones (Local or Wavelength), and the manifest
is generated according to the user-defined in install-config.yaml,
otherwise the flow will keep as existing one: lowered the MTU when Local
or Wavelength zones are added, considering the overhead for each network
plugin.
At the time of making this commit, the package `github.com/ghodss/yaml`
is no longer actively maintained.
`sigs.k8s.io/yaml` is a permanent fork of `ghodss/yaml` and is actively
maintained by Kubernetes SIG.
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
we rely on an explicitly-configured host route, and the default OVNKube routing ignores this. as a result, packets aren't routed to the right internal gateway.
Signed-off-by: Christy Norman <christy@linux.vnet.ibm.com>
In OpenShift 3.x, Service.ExternalIP was not allowed to be set by
default. Administrators had to explicitly whitelist network blocks.
4.1 allowed all ExternalIP values. We re-added the ability to restrict
ExternalIP in 4.2. Correspondingly, new clusters should be initialized
in a default-deny state.
Add Proxy struct from OpenShift API to Install Config so users can specify cluster-wide proxy configuration. Add basic validation to ensure that the proxy configuration being created is sane.
Jira: CORS-1075
Renames:
- serviceCIDR -> serviceNetwork
- clusterNetworks -> clusterNetwork
- type -> networkType
- hostSubnetLength -> hostPrefix
Add significantly more network validation, especially around overlapping
cidrs.
This adds an upconversion step to loading install config. It will
convert any deprecated install configs to the latest version.
The network, ingress, and dns manifest assets are not targeted assets.
The installer does not write their files to disk. The installer should
not load their files from disk.
In addition to the load issue, there is an issue with reading the
config field when reading the assets from the state file. For the network
asset, the config field is needed, but is not stored in the state file.
To resolve this, the config field has been made public. For the ingress
and dns assets, the config field is not needed: it has been removed.
Fixes https://jira.coreos.com/browse/CORS-938
* Add the Network.config.openshift.io CRD
* Generate the network config from the install config
* Remove networkoperator types from install config (but use the same
schema)
* Move network CRDs to templates to match #943
This doesn't change the json/yaml serialization of the install config, but it
changes it internally.