Skip to content

Commit c5a63b9

Browse files
authored
2.17.0 release with openshift 4.15 (#3449)
1 parent d18660c commit c5a63b9

File tree

16 files changed

+223
-48
lines changed

16 files changed

+223
-48
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ For guides on this and other solutions for Kubernetes, see the
2222

2323
What's New?
2424
-----------
25-
Support for Custom Resource Definitions [Documentation](https://github.com/F5Networks/k8s-bigip-ctlr/blob/master/docs/config_examples/customResource/CustomResource.md)
25+
Support for Custom Resource Definitions [Documentation] (https://github.com/F5Networks/k8s-bigip-ctlr/blob/2.x-master/docs/config_examples/customResource/CustomResource.md)
2626

2727
Getting Help
2828
------------

docs/RELEASE-NOTES.rst

Lines changed: 30 additions & 27 deletions
Large diffs are not rendered by default.

docs/config_examples/customResource/CustomResource.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@ different terminations(for same domain), one with edge and another with re-encry
384384
| interval | Int | Required | 5 | Seconds between health queries |
385385
| timeout | Int | Optional | 16 | Seconds before query fails |
386386

387-
Refer https://github.com/F5Networks/k8s-bigip-ctlr/blob/master/docs/config_examples/customResource/ExternalDNS/README.md
387+
Refer https://github.com/F5Networks/k8s-bigip-ctlr/blob/2.x-master/docs/config_examples/customResource/ExternalDNS/README.md
388388

389389
**Note**:
390390
* To set up external DNS using BIG-IP GTM user needs to first manually configure GSLB → Datacenter and GSLB → Server on BIG-IP common partition.

docs/config_examples/customResource/IngressLink/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@ Create IngressLink Custom Resource definition as follows:
2222
export CIS_VERSION=<cis-version>
2323
# For example
2424
# export CIS_VERSION=v2.12.0
25+
# or
26+
# export CIS_VERSION=2.x-master
27+
#
28+
# the latter if using a CIS image with :latest label
29+
#
30+
2531
kubectl create -f https://raw.githubusercontent.com/F5Networks/k8s-bigip-ctlr/${CIS_VERSION}/docs/config_examples/customResourceDefinitions/customresourcedefinitions.yml
2632
```
2733

docs/config_examples/customResourceDefinitions/crd_update.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,19 @@ Custom resources can appear and disappear in a running cluster through dynamic r
1313
export CIS_VERSION=<cis-version>
1414
# For example
1515
# export CIS_VERSION=v2.12.0
16+
# or
17+
# export CIS_VERSION=2.x-master
18+
#
19+
# the latter if using a CIS image with :latest label
20+
#
1621
kubectl create -f https://raw.githubusercontent.com/F5Networks/k8s-bigip-ctlr/${CIS_VERSION}/docs/config_examples/customResourceDefinitions/customresourcedefinitions.yml
1722
```
1823

1924
## Updating Custom Resource Definitions
2025

2126
Currently, all 2.x.x releases support v1 version of CRDs.
2227

23-
Below are changes which need attention. Please refer [release notes](https://github.com/F5Networks/k8s-bigip-ctlr/blob/master/docs/RELEASE-NOTES.rst), [upgrade documentation](https://github.com/F5Networks/k8s-bigip-ctlr/blob/master/docs/upgradeProcess.md) for complete details.
28+
Below are changes which need attention. Please refer [release notes](https://github.com/F5Networks/k8s-bigip-ctlr/blob/2.x-master/docs/RELEASE-NOTES.rst), [upgrade documentation](https://github.com/F5Networks/k8s-bigip-ctlr/blob/2.x-master/docs/upgradeProcess.md) for complete details.
2429

2530
| Version | Change |
2631
|------------|-----------------------------------------------------------------------------|

docs/config_examples/customResourceDefinitions/customresourcedefinitions.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,12 @@ spec:
118118
dos:
119119
type: string
120120
pattern: '^\/[a-zA-Z]+([A-z0-9-_+]+\/)+([-A-z0-9_.:]+\/?)*$'
121+
profileAccess:
122+
type: string
123+
pattern: '^\/[a-zA-Z]+([A-z0-9-_+]+\/)+([-A-z0-9_.:]+\/?)*$'
124+
policyPerRequestAccess:
125+
type: string
126+
pattern: '^\/[a-zA-Z]+([A-z0-9-_+]+\/)+([-A-z0-9_.:]+\/?)*$'
121127
botDefense:
122128
type: string
123129
pattern: '^\/[a-zA-Z]+([A-z0-9-_+]+\/)+([-A-z0-9_.:]+\/?)*$'
@@ -393,6 +399,9 @@ spec:
393399
type: integer
394400
minimum: 1
395401
maximum: 65535
402+
x-kubernetes-validations:
403+
- rule: "!has(self.partition) || self.partition != 'Common'"
404+
message: "The partition cannot be 'Common' if specified."
396405
status:
397406
type: object
398407
properties:
@@ -641,6 +650,27 @@ spec:
641650
anyOf:
642651
- type: integer
643652
- type: string
653+
weight:
654+
type: integer
655+
minimum: 0
656+
maximum: 100
657+
alternateBackends:
658+
type: array
659+
items:
660+
type: object
661+
properties:
662+
service:
663+
type: string
664+
pattern: '[a-z]([-a-z0-9]*[a-z0-9])?'
665+
serviceNamespace:
666+
type: string
667+
pattern: '^[a-zA-Z]+([-A-z0-9_.+:])*([A-z0-9])+$'
668+
weight:
669+
type: integer
670+
minimum: 0
671+
maximum: 100
672+
required:
673+
- service
644674
serviceNamespace:
645675
type: string
646676
pattern: '^[a-zA-Z]+([-A-z0-9_.+:])*([A-z0-9])+$'
@@ -719,13 +749,20 @@ spec:
719749
anyOf:
720750
- type: integer
721751
- type: string
752+
weight:
753+
type: integer
754+
minimum: 0
755+
maximum: 100
722756
required:
723757
- service
724758
- servicePort
725759
required:
726760
- virtualServerPort
727761
- pool
728762
- mode
763+
x-kubernetes-validations:
764+
- rule: "!has(self.partition) || self.partition != 'Common'"
765+
message: "The partition cannot be 'Common' if specified."
729766
status:
730767
type: object
731768
properties:
@@ -943,6 +980,9 @@ spec:
943980
type: string
944981
type: object
945982
type: object
983+
x-kubernetes-validations:
984+
- rule: "!has(self.partition) || self.partition != 'Common'"
985+
message: "The partition cannot be 'Common' if specified."
946986
status:
947987
type: object
948988
properties:
@@ -990,6 +1030,12 @@ spec:
9901030
waf:
9911031
type: string
9921032
pattern: '^\/([A-z0-9-_+]+\/)+([A-z0-9]+\/?)*$'
1033+
profileAccess:
1034+
type: string
1035+
pattern: '^\/[a-zA-Z]+([A-z0-9-_+]+\/)+([-A-z0-9_.:]+\/?)*$'
1036+
policyPerRequestAccess:
1037+
type: string
1038+
pattern: '^\/[a-zA-Z]+([A-z0-9-_+]+\/)+([-A-z0-9_.:]+\/?)*$'
9931039
l3Policies:
9941040
type: object
9951041
properties:

docs/config_examples/next-gen-routes/README.md

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,9 @@ If it's specified in both the places then allow source range in policy CR has mo
8787
### SSL Profiles precedence
8888
* SSL can be specified in route as certificate(spec certs), route annotation as bigip reference/secret or as default SSL profiles in extended configmap.
8989
* If route is defined with both certificate(spec certs) and SSL annotation then route annotation will have more precedence followed by route certificate(spec certs). Default SSL profiles in extended configmap will have the least precedence.
90-
* Route with SSL profiles annotation reference to bigip [Example](https://github.com/F5Networks/k8s-bigip-ctlr/blob/master/docs/config_examples/next-gen-routes/routes/reencrypt-route-with-bigip-reference-in-ssl-annotaion.yaml)
91-
* Route with SSL profiles annotation reference to secret [Example](https://github.com/F5Networks/k8s-bigip-ctlr/blob/master/docs/config_examples/next-gen-routes/routes/reencrypt-route-with-k8s-secret-in-ssl-annotation.yaml)
92-
* Extended configmap with defaultTLS [Example](https://github.com/F5Networks/k8s-bigip-ctlr/blob/master/docs/config_examples/next-gen-routes/configmap/extendedRouteConfigwithBaseConfig.yaml)
90+
* Route with SSL profiles annotation reference to bigip [Example] (https://github.com/F5Networks/k8s-bigip-ctlr/blob/2.x-master/docs/config_examples/next-gen-routes/routes/reencrypt-route-with-bigip-reference-in-ssl-annotaion.yaml)
91+
* Route with SSL profiles annotation reference to secret [Example] (https://github.com/F5Networks/k8s-bigip-ctlr/blob/2.x-master/docs/config_examples/next-gen-routes/routes/reencrypt-route-with-k8s-secret-in-ssl-annotation.yaml)
92+
* Extended configmap with defaultTLS [Example] (https://github.com/F5Networks/k8s-bigip-ctlr/blob/2.x-master/docs/config_examples/next-gen-routes/configmap/extendedRouteConfigwithBaseConfig.yaml)
9393

9494
### Support for Health Monitors from pod readiness probe using autoMonitor
9595
CIS uses the readiness probe of the pods to form the health monitors, whenever health annotations not provided in the route annotations and autoMonitor is set to readiness-probe in the extended configmap.
@@ -98,12 +98,12 @@ By default, autoMonitor is set to none in the extended configmap.
9898
This behaviour can be changed by setting autoMonitor in baseRouteSpec of the extended configmap.
9999

100100
## Migration Guide
101-
Follow [Migration Guide](https://github.com/F5Networks/k8s-bigip-ctlr/blob/master/docs/config_examples/next-gen-routes/migration-guide.md)
101+
Follow [Migration Guide] (https://github.com/F5Networks/k8s-bigip-ctlr/blob/2.x-master/docs/config_examples/next-gen-routes/migration-guide.md)
102102

103103
## Prerequisites
104104

105105
* Clean up the partition in BIG-IP, where the existing route config is deployed.
106-
* Use the POST Method with below endpoint along with this AS3 declaration [Empty Declaration](https://github.com/F5Networks/k8s-bigip-ctlr/blob/master/docs/config_examples/next-gen-routes/AS3-empty-declaration.json) for cleanup.
106+
* Use the POST Method with below endpoint along with this AS3 declaration [Empty Declaration] (https://github.com/F5Networks/k8s-bigip-ctlr/blob/2.x-master/docs/config_examples/next-gen-routes/AS3-empty-declaration.json) for cleanup.
107107

108108
mgmt/shared/appsvcs/declare
109109

@@ -114,6 +114,11 @@ Follow [Migration Guide](https://github.com/F5Networks/k8s-bigip-ctlr/blob/mast
114114
export CIS_VERSION=<cis-version>
115115
# For example
116116
# export CIS_VERSION=v2.12.0
117+
# or
118+
# export CIS_VERSION=2.x-master
119+
#
120+
# the latter if using a CIS image with :latest label
121+
#
117122
kubectl create -f https://raw.githubusercontent.com/F5Networks/k8s-bigip-ctlr/${CIS_VERSION}/docs/config_examples/customResourceDefinitions/customresourcedefinitions.yml
118123
```
119124

@@ -717,10 +722,10 @@ allow, redirect and none termination supported with edge routes, while re-encryp
717722
### Do we support bigIP referenced SSL Profiles annotations on routes?
718723
Yes you can continue the SSL Profiles in route annotations.
719724
### Do we support Kubernetes secrets in SSL Profiles annotations on routes?
720-
Yes you can define the Kubernetes secret in route's SSL annotations. Please refer to [Example](https://github.com/F5Networks/k8s-bigip-ctlr/blob/master/docs/config_examples/next-gen-routes/routes/reencrypt-route-with-k8s-secret-in-ssl-annotation.yaml).
725+
Yes you can define the Kubernetes secret in route's SSL annotations. Please refer to [Example] (https://github.com/F5Networks/k8s-bigip-ctlr/blob/2.x-master/docs/config_examples/next-gen-routes/routes/reencrypt-route-with-k8s-secret-in-ssl-annotation.yaml).
721726
### Can we the use legacy default-client-ssl and default-server-ssl CLI parameters?
722727
No, they are no longer supported as CLI parameters. These CLI parameters are moved to extended configmap -> baseRouteSpec -> defaultTLS -> clientSSL and serverSSL.
723-
Please refer to [Example](https://github.com/F5Networks/k8s-bigip-ctlr/blob/master/docs/config_examples/next-gen-routes/configmap/extendedRouteConfigwithBaseConfig.yaml).
728+
Please refer to [Example] (https://github.com/F5Networks/k8s-bigip-ctlr/blob/2.x-master/docs/config_examples/next-gen-routes/configmap/extendedRouteConfigwithBaseConfig.yaml).
724729
### What is the precedence of client and server SSL profiles?
725730
CIS considers following precedence order. Route annotations have the highest priority( followed by) route certificates(spec certs) have next priority (followed by) extended configmap baseRouteSpec default profiles.
726731
### What is not supported with the SSL profiles?
@@ -743,7 +748,7 @@ You can use both PolicyCR and httpServerPolicyCR in route group to apply differe
743748
If only policyCR is used in a route group, then profiles/policies specified in it are applied to both HTTP and HTTPS virtual servers.</br>
744749
If only httpServerPolicyCR is used in a route group, then profiles/policies specified in it are applied to only HTTP virtual server.</br>
745750
If both policyCR and httpServerPolicyCR are used in a route group, then profiles/policies specified in policyCR are applied to HTTPS virtual server and profiles/policies specified in httpServerPolicyCR are applied to HTTP virtual server.</br>
746-
To use the httpServerPolicyCR in Extended ConfigMap, please refer to [Example](https://github.com/F5Networks/k8s-bigip-ctlr/blob/master/docs/config_examples/next-gen-routes/configmap). </br>
751+
To use the httpServerPolicyCR in Extended ConfigMap, please refer to [Example] (https://github.com/F5Networks/k8s-bigip-ctlr/blob/2.x-master/docs/config_examples/next-gen-routes/configmap). </br>
747752
Make sure that both policyCR and httpServerPolicyCR are created in a namespace which CIS is monitoring.
748753

749754

docs/config_examples/next-gen-routes/migration-guide.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,11 @@ Sample Route:
166166
export CIS_VERSION=<cis-version>
167167
# For example
168168
# export CIS_VERSION=v2.12.0
169+
# or
170+
# export CIS_VERSION=2.x-master
171+
#
172+
# the latter if using a CIS image with :latest label
173+
#
169174
kubectl create -f https://raw.githubusercontent.com/F5Networks/k8s-bigip-ctlr/${CIS_VERSION}/docs/config_examples/customResourceDefinitions/customresourcedefinitions.yml
170175
```
171176

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# for reference only
2+
# Should be changed as per your cluster requirements
3+
kind: ClusterRole
4+
apiVersion: rbac.authorization.k8s.io/v1
5+
metadata:
6+
name: bigip-ctlr-clusterrole
7+
rules:
8+
- apiGroups: ["", "extensions", "networking.k8s.io"]
9+
resources: ["nodes", "services", "endpoints", "namespaces", "ingresses", "pods", "ingressclasses", "policies"]
10+
verbs: ["get", "list", "watch"]
11+
- apiGroups: ["", "extensions", "networking.k8s.io"]
12+
resources: ["configmaps", "events", "ingresses/status", "services/status"]
13+
verbs: ["get", "list", "watch", "update", "create", "patch"]
14+
- apiGroups: ["cis.f5.com"]
15+
resources: ["virtualservers","virtualservers/status", "tlsprofiles", "transportservers", "transportservers/status", "ingresslinks", "ingresslinks/status", "externaldnses", "policies"]
16+
verbs: ["get", "list", "watch", "update", "patch"]
17+
- apiGroups: ["fic.f5.com"]
18+
resources: ["ipams", "ipams/status"]
19+
verbs: ["get", "list", "watch", "update", "create", "patch", "delete"]
20+
- apiGroups: ["apiextensions.k8s.io"]
21+
resources: ["customresourcedefinitions"]
22+
verbs: ["get", "list", "watch", "update", "create", "patch"]
23+
- apiGroups: ["", "extensions"]
24+
resources: ["secrets"]
25+
verbs: ["get", "list", "watch"]
26+
- apiGroups: ["config.openshift.io/v1"]
27+
resources: ["network"]
28+
verbs: ["list"]
29+
---
30+
kind: ClusterRoleBinding
31+
apiVersion: rbac.authorization.k8s.io/v1
32+
metadata:
33+
name: bigip-ctlr-clusterrole-binding
34+
namespace: kube-system
35+
roleRef:
36+
apiGroup: rbac.authorization.k8s.io
37+
kind: ClusterRole
38+
name: bigip-ctlr-clusterrole
39+
subjects:
40+
- apiGroup: ""
41+
kind: ServiceAccount
42+
name: bigip-ctlr
43+
namespace: kube-system
44+
---
45+
apiVersion: v1
46+
kind: ServiceAccount
47+
metadata:
48+
name: bigip-ctlr
49+
namespace: kube-system
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# for reference only
2+
# Should be changed as per your cluster requirements
3+
kind: ClusterRole
4+
apiVersion: rbac.authorization.k8s.io/v1
5+
metadata:
6+
name: bigip-ctlr-clusterrole
7+
rules:
8+
- apiGroups: ["", "extensions", "networking.k8s.io", "route.openshift.io"]
9+
resources: ["nodes", "services", "endpoints", "namespaces", "ingresses", "pods", "ingressclasses", "policies", "routes"]
10+
verbs: ["get", "list", "watch"]
11+
- apiGroups: ["", "extensions", "networking.k8s.io", "route.openshift.io"]
12+
resources: ["configmaps", "events", "ingresses/status", "services/status", "routes/status"]
13+
verbs: ["get", "list", "watch", "update", "create", "patch"]
14+
- apiGroups: ["cis.f5.com"]
15+
resources: ["virtualservers","virtualservers/status", "tlsprofiles", "transportservers", "transportservers/status", "ingresslinks", "ingresslinks/status", "externaldnses", "policies"]
16+
verbs: ["get", "list", "watch", "update", "patch"]
17+
- apiGroups: ["fic.f5.com"]
18+
resources: ["ipams", "ipams/status"]
19+
verbs: ["get", "list", "watch", "update", "create", "patch", "delete"]
20+
- apiGroups: ["apiextensions.k8s.io"]
21+
resources: ["customresourcedefinitions"]
22+
verbs: ["get", "list", "watch", "update", "create", "patch"]
23+
- apiGroups: ["", "extensions"]
24+
resources: ["secrets"]
25+
verbs: ["get", "list", "watch"]
26+
- apiGroups: ["config.openshift.io/v1"]
27+
resources: ["network"]
28+
verbs: ["list"]
29+
---
30+
kind: ClusterRoleBinding
31+
apiVersion: rbac.authorization.k8s.io/v1
32+
metadata:
33+
name: bigip-ctlr-clusterrole-binding
34+
namespace: kube-system
35+
roleRef:
36+
apiGroup: rbac.authorization.k8s.io
37+
kind: ClusterRole
38+
name: bigip-ctlr-clusterrole
39+
subjects:
40+
- apiGroup: ""
41+
kind: ServiceAccount
42+
name: bigip-ctlr
43+
namespace: kube-system
44+
---
45+
apiVersion: v1
46+
kind: ServiceAccount
47+
metadata:
48+
name: bigip-ctlr
49+
namespace: kube-system

0 commit comments

Comments
 (0)