Istanbul intents
by @Sylvain Desbureaux, @Krzysztof Opasiak and @Vijay Kumar
keep going on High Level vision for OOM
Helm / Kubernetes support
Goal is to support (almost) latest versions:
Helm 3.6
Kubernetes 1.21 or 1.20
It seems we have issue with mariadb here
Dual stack
Dual Stack in Kubernetes is moving to beta
Change our templates to follow new configuration
Internal Helm registry
Dependent REQ for Istanbul
REQ-685 - DCAE Transformation to support Helm (Phase2) - DCAE Cloudify platform provided local inventory where are all MS deployment artifacts (blueprints) were stored and served through REST api for on-demand deployment (from CLAMP, Dashboard, Robot etc). With DCAE architecture transformation to Helm, Cloudify and related handler will be deprecated.
INT-1895 Integration testsuites will require registry to both push/pull ONAP test support component charts for running ONAP test suites executed part of gating/daily jobs.
DCAEGEN2-2694 MOD will allow MS onboarding and helm packages will be generated dynamically (J release). The charts generated will need to be pushed into a repository accessible for other ONAP application (these components are not required to be formally introduced under ONAP/OOM umbrella charts)
REQ-716 - Control Loop in TOSCA LCM
POLICY-3168 CLAMP under TOSCA POC will support service onboarding and deployment. TOSCA template will reference either pre-onboarded or new artifact (to be loaded) into registry hence require access for both PUSH/PULL to the helm repo.
ONAP Registry Solution
Primary Usecase
Access within ONAP cluster to retrieve Microservice artifacts (helm charts) provided under ONAP release
Nexus3 can address this requirement; currently WIP to release ONAP charts. This solution introduces some overhead for ONAP offline requirement.
Dynamic MS onboarding/upload of helm charts
Requires REST endpoint support for charts to be pushed into repository which will be retrieved by other ONAP components.
Nexus3 repo is not an option here as PUSH is supported only through ONAP LF CI.
Istanbul Solution
ChartMuseum will be deployed as ONAP platform component and serve as Helmchart repository server hosting required ONAP component charts within Cluster.
Accessible only as ClusterIp service
Basic Authentication enabled
Chart Location - oom\kubernetes\platform\components\chartmuseum (https://gerrit.onap.org/r/c/oom/+/121693)
Solutions evaluated for registry initialization
Preload via configmap
Cons: Size constraint to host all required chart
Handle via job
Chartmuseum-init will include script and use kubectl proxy to preload
Pros:
Follows current process/tooling used in ONAP deployment
Cons:
Not completely cloudnative and need new script be invoked part of gating/day0 OOM setup prior to Integration/gating executions
Docker container
Prepackage all charts required into a container
Pros:
Repo initialization handled part of post install of Chartmuseum deploy; cloud-native
Cons:
Add overhead in container management/release without automation in place.
Require chart to be released;
new container snapshot build,
release yaml submission/approval
and then OOM patch
K8s Operator with chartmuseum
Cons:
Charts not maintained and required further work to support helm3 and meet OOM standard
Chosen solution for Istanbul: Handle via job
Service Mesh
Accelerate on Service Mesh PoC
See https://wiki.lfnetworking.org/display/LN/2021-06-08+-+ONAP%3A+Next+Generation+Security+and+Logging+Architecture%2C+Design+and+Roadmap for complete presentation
Ongoing work:
Script to configure keycloak
Script to install cert manager, keycloak, istio on a kubernetes cluster (for testing purpose)
Service Account creation
Configuration of components (DMaaP, AAI, SDC, SO, SDNC) to support being on service mesh
Version bumps
continue bumping versions of different "common" components:
mariadb
cassandra
postgresql
etcd
elasticsearch
consul
...
Automated certificates retrieval
finish the work on remaining certificates:
AAI babel
AAI sparky be
AAI schema service
ESR server
multicloud fcaps / starlingx
robot
uui
Externalize Databases
Internship started to see what is the work to externalize one Database instance into another namespace
Prometheus metrics exposure
create template to simplify add of these metric exposure
add a generic template for java spring boot components