Bug 1734852

Summary: field "externalIP" does not exist when oc explain network.spec.externalIP
Product: OpenShift Container Platform Reporter: Weibin Liang <weliang>
Component: NetworkingAssignee: Alexander Constantinescu <aconstan>
Status: CLOSED NOTABUG QA Contact: zhaozhanqi <zzhao>
Severity: low Docs Contact:
Priority: low    
Version: 4.2.0CC: aconstan, aos-bugs, cdc, danw
Target Milestone: ---   
Target Release: 4.2.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-08-07 13:54:45 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Weibin Liang 2019-07-31 15:46:16 UTC
Description of problem:
field "externalIP" does not exist when oc explain network.spec.externalIP

Version-Release number of selected component (if applicable):
4.1.0-0.ci-2019-07-30-144228

How reproducible:
Every time

Steps to Reproduce:
[root@dhcp-41-193 AWS]# oc get  network.config.openshift.io cluster -o yaml
apiVersion: config.openshift.io/v1
kind: Network
metadata:
  creationTimestamp: "2019-07-31T12:50:27Z"
  generation: 3
  name: cluster
  resourceVersion: "25735"
  selfLink: /apis/config.openshift.io/v1/networks/cluster
  uid: c54641ee-b391-11e9-a6cf-025b5bfbd702
spec:
  clusterNetwork:
  - cidr: 10.128.0.0/14
    hostPrefix: 23
  externalIP:
    policy:
      allowedCIDRs:
      - 10.73.0.0/14
  networkType: OpenShiftSDN
  serviceNetwork:
  - 172.30.0.0/16
status:
  clusterNetwork:
  - cidr: 10.128.0.0/14
    hostPrefix: 23
  clusterNetworkMTU: 8951
  networkType: OpenShiftSDN
  serviceNetwork:
  - 172.30.0.0/16
[root@dhcp-41-193 AWS]# oc explain network.spec.clusterNetwork
KIND:     Network
VERSION:  config.openshift.io/v1
 
RESOURCE: clusterNetwork <[]Object>
 
DESCRIPTION:
     IP address pool to use for pod IPs.
 
FIELDS:
   cidr <string>
     The complete block for pod IPs.
 
   hostPrefix   <integer>
     The size (prefix) of block to allocate to each node.
 
[root@dhcp-41-193 AWS]# oc explain network.spec.externalIP
error: field "externalIP" does not exist
[root@dhcp-41-193 AWS]# oc explain network.spec.externalIP.policy
error: field "externalIP" does not exist


Actual results:
[root@dhcp-41-193 AWS]# oc explain network.spec.externalIP
error: field "externalIP" does not exist

Expected results:
Return valued output for externalIP field

Comment 1 zhaozhanqi 2019-08-01 01:38:04 UTC
@weibin  should be `oc explain networks` 

]# oc explain networks.spec.externalIP
KIND:     Network
VERSION:  config.openshift.io/v1

RESOURCE: externalIP <Object>

DESCRIPTION:
     externalIP defines configuration for controllers that affect
     Service.ExternalIP

FIELDS:
   autoAssignCIDRs	<[]string>
     autoAssignCIDRs is a list of CIDRs from which to automatically assign
     Service.ExternalIP. These are assigned when the service is of type
     LoadBalancer. In general, this is only useful for bare-metal clusters. In
     Openshift 3.x, this was misleadingly called "IngressIPs". Automatically
     assigned External IPs are not affected by any ExternalIPPolicy rules.
     Currently, only one entry may be provided.

   policy	<Object>
     policy is a set of restrictions applied to the ExternalIP field. If nil,
     any value is allowed for an ExternalIP. If the empty/zero policy is
     supplied, then ExternalIP is not allowed to be set.

Comment 2 Weibin Liang 2019-08-01 14:45:56 UTC
@Zhanqi, strange, 'oc explain networks.spec.externalIP' does not work in my cluster

[root@dhcp-41-193 AWS]# oc explain networks.spec.externalIP
error: field "externalIP" does not exist

[root@dhcp-41-193 AWS]# oc version
Client Version: version.Info{Major:"4", Minor:"2+", GitVersion:"v4.2.0", GitCommit:"739670a83", GitTreeState:"clean", BuildDate:"2019-07-31T06:31:45Z", GoVersion:"go1.12.6", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"13+", GitVersion:"v1.13.4+32e87e8", GitCommit:"32e87e8", GitTreeState:"clean", BuildDate:"2019-07-25T21:05:01Z", GoVersion:"go1.11.9", Compiler:"gc", Platform:"linux/amd64"}
OpenShift Version: 4.1.0-0.ci-2019-08-01-113006

[root@dhcp-41-193 AWS]# oc get clusterversion
NAME      VERSION                        AVAILABLE   PROGRESSING   SINCE   STATUS
version   4.1.0-0.ci-2019-08-01-113006   True        False         5m12s   Cluster version is 4.1.0-0.ci-2019-08-01-113006
[root@dhcp-41-193 AWS]#

Comment 3 Casey Callendrello 2019-08-06 13:22:49 UTC
Pretty sure this will be fixed automatically when the c-c-o next does an update.

Comment 4 Weibin Liang 2019-08-06 18:12:03 UTC
[root@dhcp-41-193 AWS]# oc explain networks.spec.externalIP
error: field "externalIP" does not exist
[root@dhcp-41-193 AWS]# oc get clusterversion
NAME      VERSION                        AVAILABLE   PROGRESSING   SINCE   STATUS
version   4.1.0-0.ci-2019-08-06-044055   True        False         3h44m   Cluster version is 4.1.0-0.ci-2019-08-06-044055

Comment 5 Alexander Constantinescu 2019-08-07 08:33:36 UTC
Hi Weibin

I don't seem to have this behavior locally. Could you provide me with your kubeconfig file to the cluster you are targeting to that I can investigate?

Thanks!

/Alex

Comment 6 Weibin Liang 2019-08-07 13:54:45 UTC
[root@dhcp-41-193 AWS]# oc explain networks.spec.externalIP
KIND:     Network
VERSION:  config.openshift.io/v1

RESOURCE: externalIP <Object>

DESCRIPTION:
     externalIP defines configuration for controllers that affect
     Service.ExternalIP

FIELDS:
   autoAssignCIDRs	<[]string>
     autoAssignCIDRs is a list of CIDRs from which to automatically assign
     Service.ExternalIP. These are assigned when the service is of type
     LoadBalancer. In general, this is only useful for bare-metal clusters. In
     Openshift 3.x, this was misleadingly called "IngressIPs". Automatically
     assigned External IPs are not affected by any ExternalIPPolicy rules.
     Currently, only one entry may be provided.

   policy	<Object>
     policy is a set of restrictions applied to the ExternalIP field. If nil,
     any value is allowed for an ExternalIP. If the empty/zero policy is
     supplied, then ExternalIP is not allowed to be set.

[root@dhcp-41-193 AWS]# 
[root@dhcp-41-193 AWS]# oc get clusterversions
NAME      VERSION                        AVAILABLE   PROGRESSING   SINCE   STATUS
version   4.2.0-0.ci-2019-08-07-101246   True        False         18m     Cluster version is 4.2.0-0.ci-2019-08-07-101246
[root@dhcp-41-193 AWS]#