|
| 1 | +[id="cnf-best-practices-spk-integration-via-spk-operator"] |
| 2 | +[id="spk-integration-via-spk-operator"] |
| 3 | += SPK Integration via SPK Operator |
| 4 | +The SPK runs in a separate namespace from the CNF. The CNF will not have direct permissions to access this namespace. In order to allow applications to manage the lifecycle of the SPK deployment, the SPK operator is used. The SPK Operator defines several CRDs for which CRs are created in the CNF namespace: |
| 5 | + |
| 6 | +[id="cnf-best-practices-spkprofile"] |
| 7 | +== SPKProfile |
| 8 | +The `SPKProfile` CRD handles LCM operations of SPK itself. Example: |
| 9 | + |
| 10 | +[source,yaml] |
| 11 | +---- |
| 12 | +apiVersion: webscale.verizon.com/v1 |
| 13 | +kind: SPKProfile |
| 14 | +metadata: |
| 15 | + name: spkprofile-democnf |
| 16 | + namespace: democnf |
| 17 | +spec: |
| 18 | + bgp_networks: |
| 19 | + edn: |
| 20 | + ip_version: |
| 21 | + - v4 |
| 22 | + - v6 |
| 23 | + mtu: 8000 |
| 24 | + provision: true |
| 25 | + replicas: 2 |
| 26 | + spk_version: v1.7.0 |
| 27 | +---- |
| 28 | + |
| 29 | +When the `SPKProfile` CR is created, tmm pods are started within the spk namespace `spk-<app |
| 30 | +namespace>` with the specified version and number of replicas. |
| 31 | + |
| 32 | +[id="cnf-best-practices-spkstaticroute"] |
| 33 | +== SPKStaticroute |
| 34 | +The SPK Staticroute is used to provision static routes in the SPK by application owners in the |
| 35 | +application namespace. Example: |
| 36 | + |
| 37 | +[source,yaml] |
| 38 | +---- |
| 39 | +apiVersion: webscale.verizon.com/v1 |
| 40 | +kind: SPKStaticRoute |
| 41 | +metadata: |
| 42 | + name: edn-loopbacks-183 |
| 43 | + namespace: spk-democnf |
| 44 | +spec: |
| 45 | + gatewaynetworks: |
| 46 | + edn: |
| 47 | + destination_v4: |
| 48 | + - 10.183.0.0/24 |
| 49 | + destination_v6: |
| 50 | + - fd00:4888:2000:1400:22/64 |
| 51 | +---- |
| 52 | + |
| 53 | +[id="cnf-best-practices-spksnatpool"] |
| 54 | +== SPKSnatpool |
| 55 | +The SPKSnatpool is provisioned within the application namespace to configure source network address translations (SNAT) on egress network traffic for the SPK. When internal Pods connect to external resources, their internal cluster IP address is translated to one of the available IP addresses in the SNAT pool. Example: |
| 56 | + |
| 57 | +[source,yaml] |
| 58 | +---- |
| 59 | +apiVersion: k8s.f5net.com/v1 |
| 60 | +kind: F5SPKSnatpool |
| 61 | +metadata: |
| 62 | + name: egress-snatpool |
| 63 | + namespace: spk-democnf |
| 64 | +spec: |
| 65 | + addressList: |
| 66 | + - 10.183.247.229 |
| 67 | + - fdb0:5b22:e86a:1122::22 |
| 68 | + - 10.183.247.23 |
| 69 | + - fdb0:5b22:e86a:1122::230 |
| 70 | +---- |
| 71 | + |
| 72 | +More details on the SPK operator are in the "SPK Operator User Guide". |
| 73 | + |
| 74 | +.VCP CNF requirement - Doors Id 94142 |
| 75 | +[IMPORTANT] |
| 76 | +==== |
| 77 | +The application MUST integrate with the SPK Operator to perform lifecycle management of the SPK. |
| 78 | +==== |
0 commit comments