Compare commits

..

25 Commits

Author SHA1 Message Date
4c74356b41
9257b2a067 Merge branch 'master' into feature/thirdparties 2021-01-28 15:36:26 +01:00
4c74356b41
7e568c4ab7 Update testing.yml 2021-01-28 17:21:50 +03:00
4c74356b41
d78131d344 Update README.md 2021-01-28 16:07:39 +03:00
4c74356b41
d8702fd85f Update README.md 2021-01-28 16:03:50 +03:00
Leonid Mirsky
4f1454bcb2 Update README.md with the migration plan for v0.4 to v1.x 2021-01-28 14:06:13 +02:00
4c74356b41
414ffd719f Update README.md 2021-01-28 14:54:28 +03:00
4c74356b41
67087b61d0 Update README.md 2021-01-28 08:02:35 +03:00
4c74356b41
e2db9c038b Update README.md 2021-01-28 08:01:21 +03:00
4c74356b41
1c88325ac7 Update README.md 2021-01-28 08:00:16 +03:00
Gleb Boushev
489345ab5d further yaml formatting 2021-01-27 10:51:47 +03:00
Gleb Boushev
ced36d1b83 fixing yaml files 2021-01-27 10:18:01 +03:00
Gleb Boushev
9697cceba6 fixing cleanup task 2021-01-26 16:07:50 +03:00
Gleb Boushev
7e04919d20 improving namespace support 2021-01-26 15:20:35 +03:00
Gleb Boushev
500c50774d found the culprit 2021-01-25 17:25:09 +03:00
Gleb Boushev
e8106f649f debugging the build 2021-01-25 17:21:27 +03:00
Gleb Boushev
8cea5fea15 debugging the build 2021-01-25 17:19:37 +03:00
Gleb Boushev
f964705a84 fixing another path issue 2021-01-25 17:13:40 +03:00
Gleb Boushev
7e9b11c829 fixing path issues 2021-01-25 17:09:34 +03:00
Gleb Boushev
cfdaf147b2 forgot to fix the namespace in the testing build 2021-01-25 17:07:36 +03:00
Gleb Boushev
3a894f5b81 fixing PR comments, fixing testing build 2021-01-25 17:02:45 +03:00
Gleb Boushev
19a5b59657 fixing missing folder 2021-01-20 13:25:44 +03:00
Gleb Boushev
d3b360ed30 changing storage classes to mimic what minikube has 2021-01-19 19:07:19 +03:00
Gleb Boushev
7d0f4d9a0e removing hardcoded passwords 2021-01-19 12:23:45 +03:00
Gleb Boushev
8d0b5210a0 migration values example for persistence, dev-local example for thirdparties 2021-01-19 07:59:06 +03:00
Gleb Boushev
1382dfe18f thirdparties replaced with latest bitnami charts 2021-01-19 07:45:29 +03:00
133 changed files with 2404 additions and 1660 deletions

View File

@@ -1,37 +0,0 @@
name: Ensure Jira issue is linked
on:
pull_request:
types: [opened, edited, reopened, synchronize]
jobs:
check_for_issue_key:
runs-on: ubuntu-latest
steps:
- name: Log into Jira
uses: atlassian/gajira-login@v2.0.0
env:
JIRA_BASE_URL: ${{ secrets.TIP_JIRA_URL }}
JIRA_USER_EMAIL: ${{ secrets.TIP_JIRA_USER_EMAIL }}
JIRA_API_TOKEN: ${{ secrets.TIP_JIRA_API_TOKEN }}
- name: Find issue key in PR title
id: issue_key_pr_title
continue-on-error: true
uses: atlassian/gajira-find-issue-key@v2.0.2
with:
string: ${{ github.event.pull_request.title }}
from: "" # required workaround for bug https://github.com/atlassian/gajira-find-issue-key/issues/24
- name: Find issue key in branch name
continue-on-error: true
id: issue_key_branch_name
uses: atlassian/gajira-find-issue-key@v2.0.2
with:
string: ${{ github.event.pull_request.head.ref }}
from: "" # required workaround for bug https://github.com/atlassian/gajira-find-issue-key/issues/24
- name: Check if issue key was found
run: |
if [[ -z "${{ steps.issue_key_pr_title.outputs.issue }}" && -z "${{ steps.issue_key_branch_name.outputs.issue }}" ]]; then
echo "Jira issue key could not be found!"
exit 1
fi

View File

@@ -3,60 +3,28 @@ name: Helm CI - TIP WLAN Cloud Master
on: on:
push: push:
branches: [ master ] branches: [ master ]
tags: [ "v*" ]
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
with:
ssh-key: ${{ secrets.GH_AUTOMATION_KEY }}
submodules: true
- name: Login to TIP Docker registry
uses: azure/docker-login@v1
with:
login-server: tip-tip-wlan-cloud-docker-repo.jfrog.io
username: build-pipeline
password: ${{ secrets.DOCKER_REPO_PASSWORD }}
- name: Login to TIP Helm chart registry - name: Login to TIP Helm chart registry
run: helm repo add tip-wlan-cloud-helm-virtual-repo https://tip.jfrog.io/artifactory/tip-wlan-cloud-helm-virtual-repo --username build-pipeline --password ${{ secrets.HELM_REPO_PASSWORD }} run: helm repo add tip-wlan-cloud-helm-virtual-repo https://tip.jfrog.io/artifactory/tip-wlan-cloud-helm-virtual-repo --username build-pipeline --password ${{ secrets.HELM_REPO_PASSWORD }}
- name: Build tip-wlan chart file - name: Build tip-wlan chart file
run: | run: tar -czf tip-wlan.tgz tip-wlan
if [[ "${{ github.ref }}" == "refs/tags/"* ]]; then
PACKAGE_OPTS="--version ${GITHUB_REF#refs/tags/v}"
else
PACKAGE_OPTS=""
fi
helm package $PACKAGE_OPTS -u tip-wlan
- name: Store chart as artifact
uses: actions/upload-artifact@v2
with:
name: helm-chart
path: tip-wlan-*.tgz
- name: Upload tip-wlan chart to the TIP helm registry - name: Upload tip-wlan chart to the TIP helm registry
run: curl -ubuild-pipeline:${{ secrets.HELM_REPO_PASSWORD }} -T tip-wlan.tgz "https://tip.jfrog.io/artifactory/tip-wlan-cloud-helm-repo/tip-wlan.tgz"
- name: Verify that chart was uploaded successfully
run: | run: |
if [[ "${{ github.ref }}" == "refs/tags/"* ]]; then helm repo update
curl -ubuild-pipeline:${{ secrets.HELM_REPO_PASSWORD }} -T tip-wlan-${GITHUB_REF#refs/tags/v}.tgz "https://tip.jfrog.io/artifactory/tip-wlan-cloud-helm-repo/tip-wlan-${GITHUB_REF#refs/tags/v}.tgz" helm search repo tip
else
curl -ubuild-pipeline:${{ secrets.HELM_REPO_PASSWORD }} -T tip-wlan-*.tgz "https://tip.jfrog.io/artifactory/tip-wlan-cloud-helm-repo/tip-wlan-master.tgz"
fi
release:
runs-on: ubuntu-latest
needs: [ build ]
if: startsWith(github.ref, 'refs/tags/')
steps:
- uses: actions/checkout@v2
- name: setup Python
uses: actions/setup-python@v2
with:
python-version: "3.8"
- name: install keepachangelog
run: pip install keepachangelog
- name: create release description
continue-on-error: true
run: python .github/workflows/prepare-release-description.py ${GITHUB_REF#refs/tags/v} > RELEASE.md
- name: download Helm chart artifact
uses: actions/download-artifact@v2
with:
name: helm-chart
- name: create release
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: tip-wlan-*.tgz
body_path: RELEASE.md
prerelease: ${{ contains(github.ref, 'rc') }}

View File

@@ -1,98 +0,0 @@
name: Nightly testing of all supported deployment scenarios
on:
workflow_dispatch:
schedule:
- cron: '15 0 * * *'
defaults:
run:
shell: bash
jobs:
microk8s:
runs-on: ubuntu-latest
steps:
- name: Checkout PKI scripts repo
uses: actions/checkout@v2
with:
path: wlan-pki-cert-scripts
repository: Telecominfraproject/wlan-pki-cert-scripts
- name: Checkout Cloud SDK repo
uses: actions/checkout@v2
with:
path: wlan-cloud-helm
repository: Telecominfraproject/wlan-cloud-helm
- name: Generate and copy certs
working-directory: wlan-pki-cert-scripts
run: |
./generate_all.sh
./copy-certs-to-helm.sh ../wlan-cloud-helm
- name: Determine public IP address
id: ip
uses: haythem/public-ip@v1.2
- uses: balchua/microk8s-actions@v0.2.1
with:
channel: 'latest/stable'
addons: '["dns", "helm3", "storage", "metallb:${{ steps.ip.outputs.ipv4 }}-${{ steps.ip.outputs.ipv4 }}"]'
- name: Deploy Cloud SDK
working-directory: wlan-cloud-helm
run: |
helm dependency update tip-wlan
# Github runners only have 2 CPU cores and 7GB of RAM. Thus we need to disable some of our resource requests
helm upgrade --install tip-wlan tip-wlan -f tip-wlan/example-values/microk8s-basic/values.yaml --create-namespace --namespace tip --set cassandra.resources=null --wait --timeout 10m
- name: Show pod state on deployment failure
if: failure()
run: |
kubectl get pods -n tip
kubectl describe pods -n tip
- name: Set custom DNS entries
run: |
sudo sh -c "echo -n \"\n${{ steps.ip.outputs.ipv4 }} wlan-ui.wlan.local wlan-ui-graphql.wlan.local\" >> /etc/hosts"
- name: Test HTTP endpoints
run: |
# this is needed to make until work
set +e
urls="https://wlan-ui.wlan.local https://wlan-ui-graphql.wlan.local/graphql"
for url in $urls; do
max_retry=300
counter=0
until curl --silent --insecure $url > /dev/null
do
sleep 1
[[ counter -eq $max_retry ]] && echo "$url not reachable after $counter tries...giving up" && exit 1
echo "#$counter: $url not reachable. trying again..."
((counter++))
done
echo Successfully reached URL $url
done
- name: Test MQTT and OpenSync endpoints
working-directory: wlan-cloud-helm/tip-wlan/resources/certs
run: |
# this is needed to make until work
set +e
endpoints="${{ steps.ip.outputs.ipv4 }}:1883 ${{ steps.ip.outputs.ipv4 }}:6640 ${{ steps.ip.outputs.ipv4 }}:6643"
for endpoint in $endpoints; do
max_retry=300
counter=0
until echo Q | openssl s_client -connect $endpoint -CAfile cacert.pem -cert clientcert.pem -key clientkey.pem > /dev/null
do
sleep 1
[[ counter -eq $max_retry ]] && echo "$endpoint not reachable after $counter tries...giving up" && exit 1
echo "#$counter: $endpoint not reachable. trying again..."
((counter++))
done
echo Successfully reached endpoint $endpoint
done

View File

@@ -1,24 +0,0 @@
import sys
import keepachangelog
CATEGORIES = ['added', 'changed', 'deprecated', 'removed', 'fixed', 'security']
version = sys.argv[1]
try:
changes = keepachangelog.to_dict("CHANGELOG.md")[version]
except KeyError:
print(f'No changelog entry for version {version}', file=sys.stderr)
exit(1)
print('## Changelog')
for category in CATEGORIES:
entries = changes.get(category, [])
if entries:
print(f'### {category.capitalize()}')
for entry in entries:
print(f'- {entry}')

View File

@@ -5,59 +5,13 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased] - YYYY-MM-DD ## [Unreleased]
## [0.4.0](https://github.com/Telecominfraproject/wlan-cloud-helm/compare/f7c67645736e3dac498e2caec8c267f04d08b7bc...v0.4) - 2021-01-28
### Added ### Added
- export servo MBeans with JMX Prometheus exporter [#65](https://github.com/Telecominfraproject/wlan-cloud-helm/pull/65) - Initial changelog entry. This is the first versioned release. Next releases will include a detailed overview of all the major changes introduced since the last version.
- render post-deployment message [#73](https://github.com/Telecominfraproject/wlan-cloud-helm/pull/73)
### Changed
- migrate to networking.k8s.io/v1 API version for Ingress resources [#74](https://github.com/Telecominfraproject/wlan-cloud-helm/pull/74)
## [1.0.1] - 2021-04-12
### Changed
- bump cloud controller version to 1.0.1
### Fixed
- correct SQL and CQL schema URLs
### Changed
- make images for all init containers configurable [#67](https://github.com/Telecominfraproject/wlan-cloud-helm/pull/67)
## [1.0.0] - 2021-04-01
### Added
- replaced cassandra, postgres and kafka with upstream charts [#49](https://github.com/Telecominfraproject/wlan-cloud-helm/pull/49)
- centralized secrets to the parent chart [#54](https://github.com/Telecominfraproject/wlan-cloud-helm/pull/54)
### Changed
- improved kafka setup templating [#53](https://github.com/Telecominfraproject/wlan-cloud-helm/pull/53)
- improved values.yaml [#53](https://github.com/Telecominfraproject/wlan-cloud-helm/pull/53)
- improved default values and added yaml anchors [#54](https://github.com/Telecominfraproject/wlan-cloud-helm/pull/54)
- make SSC service able to reconnect to Cassandra [#70](https://github.com/Telecominfraproject/wlan-cloud-helm/pull/70)
### Removed
- removed hardcoded docker secret in favor of variables [#53](https://github.com/Telecominfraproject/wlan-cloud-helm/pull/53)
- various outdated sections in values.yaml and environment files
- various secrets in subcharts as they are now part of the parent chart
- references to vendor specific values [#40](https://github.com/Telecominfraproject/wlan-cloud-helm/pull/40)
### Fixed
- make SSC service able to reconnect to Cassandra [#70](https://github.com/Telecominfraproject/wlan-cloud-helm/pull/70)
## [0.4.0] - 2021-01-28
### Added
- initial changelog entry. This is the first versioned release. Next releases will include a detailed overview of all the major changes introduced since the last version.
- [changes since first commit](https://github.com/Telecominfraproject/wlan-cloud-helm/compare/f7c67645736e3dac498e2caec8c267f04d08b7bc...v0.4)

View File

@@ -1,11 +1,11 @@
# wlan-cloud-helm # wlan-cloud-helm
This repository contains helm charts for various deployment types of the tip wlan cloud services. This repository contains helm charts for various deployment types of the tip wlan cloud services.
# IMPORTANT - Cloud Controller Helm charts v0.4 to v1.x migration procedure # IMPORTANT - CloudSDK Helm charts v0.4 to v1.x migration procedure
We've introduced breaking changes to how Cloud Controller database charts are managed. We've introduced breaking changes to how CloudSDK database charts are managed.
If you want to preserve your data when moving from v0.4 to v1.x of the Cloud Controller Helm charts, follow the steps outlined below. If you want to preserve your data when moving from v0.4 to v1.x of the CloudSDK Helm charts, follow the steps outlined below.
If you can re-install your Cloud Controller and don't care to loose your data, you can skip the steps and just install the upstream charts version with no changes to the default installation procedure. If you can re-install your CloudSDK and don't care to loose your data, you can skip the steps and just install the upstream charts version with no changes to the default installation procedure.
## Prerequisites ## Prerequisites
@@ -61,7 +61,7 @@ More details can be found here: https://telecominfraproject.atlassian.net/wiki/s
# Deleting the wlan-cloud deployment: # Deleting the wlan-cloud deployment:
Run the following command: Run the following command:
``` ```
helm del tip-wlan -n tip (replace the namespace with your namespace) helm del tip-wlan -n default
``` ```
(Note: this would not delete the tip namespace and any PVC/PV/Endpoints under this namespace. These are needed so we can reuse the same PVC mount when the pods are restarted.) (Note: this would not delete the tip namespace and any PVC/PV/Endpoints under this namespace. These are needed so we can reuse the same PVC mount when the pods are restarted.)
@@ -98,6 +98,7 @@ helm del tip-wlan -n tip (replace the namespace with your namespace)
- helm test <RELEASE_NAME> -n default - helm test <RELEASE_NAME> -n default
(For more details add --debug flag to the above command) (For more details add --debug flag to the above command)
# Local environment # Local environment
In `wlan-pki-cert-scripts` repository edit the following files and add/replace strings as specified below: In `wlan-pki-cert-scripts` repository edit the following files and add/replace strings as specified below:
@@ -108,6 +109,7 @@ mqtt-server.cnf:
-commonName_default = opensync-mqtt-broker.zone1.lab.wlan.tip.build -commonName_default = opensync-mqtt-broker.zone1.lab.wlan.tip.build
+commonName_default = opensync-mqtt-broker.wlan.local +commonName_default = opensync-mqtt-broker.wlan.local
openssl-server.cnf: openssl-server.cnf:
-DNS.1 = opensync-redirector.zone1.lab.wlan.tip.build -DNS.1 = opensync-redirector.zone1.lab.wlan.tip.build
-DNS.2 = opensync-controller.zone1.lab.wlan.tip.build -DNS.2 = opensync-controller.zone1.lab.wlan.tip.build
@@ -148,7 +150,7 @@ minikube start --memory=10g --cpus=4 --driver=virtualbox --extra-config=kubelet.
Please note that you may choose another driver (parallels, vmwarefusion, hyperkit, vmware, docker, podman) which might be more suitable for your setup. Omitting this option enables auto discovery of available drivers. Please note that you may choose another driver (parallels, vmwarefusion, hyperkit, vmware, docker, podman) which might be more suitable for your setup. Omitting this option enables auto discovery of available drivers.
Deploy Cloud Controller chart: Deploy CloudSDK chart:
``` ```
helm upgrade --install tip-wlan tip-wlan -f tip-wlan/resources/environments/dev-local.yaml -n default helm upgrade --install tip-wlan tip-wlan -f tip-wlan/resources/environments/dev-local.yaml -n default
@@ -187,6 +189,7 @@ Firefox:
2. Click on `Add Exception...`, enter `https://wlan-ui.wlan.local` into Location field, click on `Get certificate`, check `Permanently store this exception` and click on `Confirm Security Exception`. 2. Click on `Add Exception...`, enter `https://wlan-ui.wlan.local` into Location field, click on `Get certificate`, check `Permanently store this exception` and click on `Confirm Security Exception`.
Repeat the step for `https://wlan-ui-graphql.wlan.local` Repeat the step for `https://wlan-ui-graphql.wlan.local`
Chrome and other browsers using system certificate store: Chrome and other browsers using system certificate store:
1. Save certificate below into the file `wlan-ui-graphql.wlan.local.crt` (it is the one defined at tip-wlan/resources/environments/dev-local.yaml:143): 1. Save certificate below into the file `wlan-ui-graphql.wlan.local.crt` (it is the one defined at tip-wlan/resources/environments/dev-local.yaml:143):

View File

@@ -28,6 +28,7 @@ For other issues faced during deployment, see here:
- If namespace is passed, we will create (if it does not exist) and use that namespace for glusterFS resources. - If namespace is passed, we will create (if it does not exist) and use that namespace for glusterFS resources.
- If namespace is NOT passed, we will create (if it does not exist) namespace='gluster-ns' and use it for glusterFS resources. - If namespace is NOT passed, we will create (if it does not exist) namespace='gluster-ns' and use it for glusterFS resources.
- Deletion: - Deletion:
./gk-deploy --admin-key <ADMIN_KEY> --user-key <USER_KEY> --abort -v -n <GLUSTER_NAMESPACE> ./gk-deploy --admin-key <ADMIN_KEY> --user-key <USER_KEY> --abort -v -n <GLUSTER_NAMESPACE>
- Note: - Note:

View File

@@ -990,6 +990,7 @@ parameters:
output "" output ""
fi fi
if [[ ${DEPLOY_OBJECT} -eq 1 ]] && [[ "${OBJ_ACCOUNT}" != "" ]] && [[ "${OBJ_USER}" != "" ]] && [[ "${OBJ_PASSWORD}" != "" ]] && [[ ${EXISTS_OBJECT} -eq 0 ]]; then if [[ ${DEPLOY_OBJECT} -eq 1 ]] && [[ "${OBJ_ACCOUNT}" != "" ]] && [[ "${OBJ_USER}" != "" ]] && [[ "${OBJ_PASSWORD}" != "" ]] && [[ ${EXISTS_OBJECT} -eq 0 ]]; then
if [[ "${OBJ_STORAGE_CLASS}" == "glusterfs-for-s3" ]]; then if [[ "${OBJ_STORAGE_CLASS}" == "glusterfs-for-s3" ]]; then
eval_output "${CLI} create secret generic heketi-${NAMESPACE}-admin-secret --from-literal=key=${ADMIN_KEY} --type=kubernetes.io/glusterfs" eval_output "${CLI} create secret generic heketi-${NAMESPACE}-admin-secret --from-literal=key=${ADMIN_KEY} --type=kubernetes.io/glusterfs"

View File

@@ -14,11 +14,11 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes # This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version. # to the chart and its templates, including the app version.
version: 1.0.0 version: 0.4.0
# This is the version number of the application being deployed. This version number should be # This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. # incremented each time you make changes to the application.
appVersion: 1.0.0 appVersion: 1.16.0
home: https://telecominfraproject.com/wifi/ home: https://telecominfraproject.com/wifi/
sources: sources:

View File

@@ -7,7 +7,7 @@ metadata:
{{- include "common.labels" . | nindent 4 }} {{- include "common.labels" . | nindent 4 }}
spec: spec:
replicas: {{ .Values.provisioner.replicaCount }} replicas: {{ .Values.provisioner.replicaCount }}
strategy: strategy:
type: {{ .Values.provisioner.strategyType }} type: {{ .Values.provisioner.strategyType }}
selector: selector:
matchLabels: matchLabels:

View File

@@ -10,6 +10,7 @@
{{- printf "%d%d" $portPrefix $start -}} {{- printf "%d%d" $portPrefix $start -}}
{{- end -}} {{- end -}}
{{- define "apDebugPortsEnd" -}} {{- define "apDebugPortsEnd" -}}
{{- $portPrefix := $.Values.global.nodePortPrefixExt | default $.Values.nodePortPrefixExt | int -}} {{- $portPrefix := $.Values.global.nodePortPrefixExt | default $.Values.nodePortPrefixExt | int -}}
{{- $start := $.Values.accessPointDebugPortRange.start | int -}} {{- $start := $.Values.accessPointDebugPortRange.start | int -}}
@@ -18,6 +19,7 @@
{{- end -}} {{- end -}}
{{- define "container.dev.apDebugPorts" -}} {{- define "container.dev.apDebugPorts" -}}
{{- $accessPointDebugPorts := untilStep (include "apDebugPortsStart" . | atoi) (include "apDebugPortsEnd" . | atoi) 1 -}} {{- $accessPointDebugPorts := untilStep (include "apDebugPortsStart" . | atoi) (include "apDebugPortsEnd" . | atoi) 1 -}}
{{- range $index, $port := $accessPointDebugPorts }} {{- range $index, $port := $accessPointDebugPorts }}
@@ -36,6 +38,6 @@
name: apdebugport-{{ $index }} name: apdebugport-{{ $index }}
{{- if eq $.Values.service.type "NodePort" }} {{- if eq $.Values.service.type "NodePort" }}
nodePort: {{ $port }} nodePort: {{ $port }}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- end -}} {{- end -}}

View File

@@ -1,5 +1,5 @@
{{/* {{/*
Resolve the Postgres service-name to apply to a chart. Resolve the Postgres service-name to apply to a chart.
*/}} */}}
{{- define "postgresql.service" -}} {{- define "postgresql.service" -}}
{{- printf "%s-%s" .Release.Name .Values.postgresql.url | trunc 63 -}} {{- printf "%s-%s" .Release.Name .Values.postgresql.url | trunc 63 -}}
@@ -19,63 +19,63 @@ else use user-provided URL
{{- end -}} {{- end -}}
{{/* {{/*
Resolve the Kafka service-name to apply to a chart. Resolve the Kafka service-name to apply to a chart.
*/}} */}}
{{- define "kafka.service" -}} {{- define "kafka.service" -}}
{{- printf "%s-%s" .Release.Name .Values.kafka.url | trunc 63 -}} {{- printf "%s-%s" .Release.Name .Values.kafka.url | trunc 63 -}}
{{- end -}} {{- end -}}
{{/* {{/*
Resolve the Cassandra service-name to apply to a chart. Resolve the Cassandra service-name to apply to a chart.
*/}} */}}
{{- define "cassandra.service" -}} {{- define "cassandra.service" -}}
{{- printf "%s-%s" .Release.Name .Values.cassandra.url | trunc 63 -}} {{- printf "%s-%s" .Release.Name .Values.cassandra.url | trunc 63 -}}
{{- end -}} {{- end -}}
{{/* {{/*
Resolve the MQTT service-name to apply to a chart. Resolve the MQTT service-name to apply to a chart.
*/}} */}}
{{- define "mqtt.service" -}} {{- define "mqtt.service" -}}
{{- printf "%s-%s" .Release.Name .Values.mqtt.url | trunc 63 -}} {{- printf "%s-%s" .Release.Name .Values.mqtt.url | trunc 63 -}}
{{- end -}} {{- end -}}
{{/* {{/*
Resolve the integratedcloudcomponent service-name to apply to a chart. Resolve the integratedcloudcomponent service-name to apply to a chart.
*/}} */}}
{{- define "integratedcloudcomponent.service" -}} {{- define "integratedcloudcomponent.service" -}}
{{- printf "%s-%s:%.f" .Release.Name .Values.integratedcloudcomponent.url .Values.integratedcloudcomponent.port | trunc 63 -}} {{- printf "%s-%s:%.f" .Release.Name .Values.integratedcloudcomponent.url .Values.integratedcloudcomponent.port | trunc 63 -}}
{{- end -}} {{- end -}}
{{/* {{/*
Resolve the provisioning service-name to apply to a chart. Resolve the provisioning service-name to apply to a chart.
*/}} */}}
{{- define "prov.service" -}} {{- define "prov.service" -}}
{{- printf "%s-%s:%.f" .Release.Name .Values.prov.url .Values.prov.port | trunc 63 -}} {{- printf "%s-%s:%.f" .Release.Name .Values.prov.url .Values.prov.port | trunc 63 -}}
{{- end -}} {{- end -}}
{{/* {{/*
Resolve the ssc service-name to apply to a chart. Resolve the ssc service-name to apply to a chart.
*/}} */}}
{{- define "ssc.service" -}} {{- define "ssc.service" -}}
{{- printf "%s-%s:%.f" .Release.Name .Values.ssc.url .Values.ssc.port | trunc 63 -}} {{- printf "%s-%s:%.f" .Release.Name .Values.ssc.url .Values.ssc.port | trunc 63 -}}
{{- end -}} {{- end -}}
{{/* {{/*
Resolve the Opensync-gw service-name to apply to a chart. Resolve the Opensync-gw service-name to apply to a chart.
*/}} */}}
{{- define "opensyncgw.service" -}} {{- define "opensyncgw.service" -}}
{{- printf "%s-%s:%.f" .Release.Name .Values.opensyncgw.url .Values.opensyncgw.port | trunc 63 -}} {{- printf "%s-%s:%.f" .Release.Name .Values.opensyncgw.url .Values.opensyncgw.port | trunc 63 -}}
{{- end -}} {{- end -}}
{{/* {{/*
Resolve the pvc name that's would mounted to 2 charts - Portal and Opensync-gw Resolve the pvc name that's would mounted to 2 charts - Portal and Opensync-gw
*/}} */}}
{{- define "portal.sharedPvc.name" -}} {{- define "portal.sharedPvc.name" -}}
{{- printf "%s-%s-%s-%.f" .Values.portal.sharedPvc.name .Release.Name .Values.portal.url .Values.portal.sharedPvc.ordinal | trunc 63 -}} {{- printf "%s-%s-%s-%.f" .Values.portal.sharedPvc.name .Release.Name .Values.portal.url .Values.portal.sharedPvc.ordinal | trunc 63 -}}
{{- end -}} {{- end -}}
{{/* {{/*
Resolve the filestore-directory name that's would mounted to 2 charts - Portal and Opensync-gw Resolve the filestore-directory name that's would mounted to 2 charts - Portal and Opensync-gw
*/}} */}}
{{- define "filestore.dir.name" -}} {{- define "filestore.dir.name" -}}
{{- printf "%s" .Values.filestore.internal | trunc 63 -}} {{- printf "%s" .Values.filestore.internal | trunc 63 -}}

View File

@@ -4,8 +4,7 @@ metadata:
name: {{ include "nginx-ingress.configName" . }} name: {{ include "nginx-ingress.configName" . }}
namespace: {{ include "common.namespace" . }} namespace: {{ include "common.namespace" . }}
labels: labels:
{{- include "common.labels" . | nindent 4 }} {{- include "common.labels" . | nindent 4 }}
data: data:
external-status-address: {{ .Values.controller.config.externalStatusAddress }} external-status-address: {{ .Values.controller.config.externalStatusAddress }}
client-max-body-size: {{ .Values.controller.config.clientMaxBodySize }} client-max-body-size: {{ .Values.controller.config.clientMaxBodySize }}
error-log-level: {{ .Values.controller.config.errorLogLevel }}

View File

@@ -1,6 +1,6 @@
{{- if not .Values.byPassNginxForTcpConnections.enabled -}} {{- if not .Values.byPassNginxForTcpConnections.enabled -}}
apiVersion: k8s.nginx.org/v1alpha1 apiVersion: k8s.nginx.org/v1alpha1
kind: GlobalConfiguration kind: GlobalConfiguration
metadata: metadata:
name: {{ include "common.name" . }}-global-configuration name: {{ include "common.name" . }}-global-configuration
namespace: {{ include "common.namespace" . }} namespace: {{ include "common.namespace" . }}

View File

@@ -56,8 +56,6 @@ controller:
## Max message size coming from the Client ## Max message size coming from the Client
clientMaxBodySize: "20m" clientMaxBodySize: "20m"
## Error
errorLogLevel: "error"
## It is recommended to use your own TLS certificates and keys ## It is recommended to use your own TLS certificates and keys
defaultTLS: defaultTLS:
## The base64-encoded TLS certificate for the default HTTPS server. If not specified, a pre-generated self-signed certificate is used. ## The base64-encoded TLS certificate for the default HTTPS server. If not specified, a pre-generated self-signed certificate is used.
@@ -139,7 +137,7 @@ controller:
## Enable the custom resources. ## Enable the custom resources.
enableTLSPassthrough: true enableTLSPassthrough: true
## Add a location based on the value of health-status-uri to the default server. The location responds with the 200 status code for any request. ## Add a location based on the value of health-status-uri to the default server. The location responds with the 200 status code for any request.
## Useful for external health-checking of the Ingress controller. ## Useful for external health-checking of the Ingress controller.
healthStatus: false healthStatus: false
@@ -276,7 +274,7 @@ rbac:
## This property will prevent exposing TCP ports for passthrough connections ## This property will prevent exposing TCP ports for passthrough connections
## Instead we are opening up these services as NodePorts ## Instead we are opening up these services as NodePorts
## We were seeing issues with AP <-- --> MQTT connecitivity when using NGINX ## We were seeing issues with AP <-- --> MQTT connecitivity when using NGINX
## as passthrough for TCP Connections ## as passthrough for TCP Connections
byPassNginxForTcpConnections: byPassNginxForTcpConnections:
enabled: true enabled: true

View File

@@ -1,2 +1,2 @@
Contains certs needed for cloud controller to work Contains certs needed for this service to start.
Please refer to page: https://telecominfraproject.atlassian.net/wiki/spaces/WIFI/pages/262176803/Pre-requisites+before+deploying+Tip-Wlan+solution Please refer to page: https://telecominfraproject.atlassian.net/wiki/spaces/WIFI/pages/262176803/Pre-requisites+before+deploying+Tip-Wlan+solution

View File

@@ -4,11 +4,11 @@
"truststoreType": "JKS", "truststoreType": "JKS",
"truststoreProvider": "SUN", "truststoreProvider": "SUN",
"truststoreFile": "file:/opt/tip-wlan/certs/truststore.jks", "truststoreFile": "file:/opt/tip-wlan/certs/truststore.jks",
"truststorePass": "{{ .Values.global.certificatePasswords.sslTruststore }}", "truststorePass": "mypassword",
"keystoreType": "JKS", "keystoreType": "JKS",
"keystoreProvider": "SUN", "keystoreProvider": "SUN",
"keystoreFile": "file:/opt/tip-wlan/certs/client_keystore.jks", "keystoreFile": "file:/opt/tip-wlan/certs/client_keystore.jks",
"keystorePass": "{{ .Values.global.certificatePasswords.sslKeystore }}", "keystorePass": "mypassword",
"keyAlias": "clientkeyalias", "keyAlias": "clientkeyalias",
"credentialsList": [ "credentialsList": [
{ {

View File

@@ -1,12 +1,13 @@
truststorePass={{ .Values.global.certificatePasswords.sslTruststore }} truststorePass=mypassword
truststoreFile=file:///opt/tip-wlan/certs/truststore.jks truststoreFile=file:///opt/tip-wlan/certs/truststore.jks
truststoreType=JKS truststoreType=JKS
truststoreProvider=SUN truststoreProvider=SUN
keyAlias=1 keyAlias=1
keystorePass={{ .Values.global.certificatePasswords.sslKeystore }} keystorePass=mypassword
keystoreFile=file:///opt/tip-wlan/certs/server.pkcs12 keystoreFile=file:///opt/tip-wlan/certs/server.pkcs12
keystoreType=pkcs12 keystoreType=pkcs12
keystoreProvider=SunJSSE keystoreProvider=SunJSSE
sslProtocol=TLS sslProtocol=TLS

View File

@@ -29,7 +29,7 @@
<maxFileSize>20MB</maxFileSize> <maxFileSize>20MB</maxFileSize>
</triggeringPolicy> </triggeringPolicy>
</appender> </appender>
<appender name="logfile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="logfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/app/logs/opensyncgw.log</file> <file>/app/logs/opensyncgw.log</file>
<append>true</append> <append>true</append>
@@ -45,23 +45,23 @@
<maxFileSize>20MB</maxFileSize> <maxFileSize>20MB</maxFileSize>
</triggeringPolicy> </triggeringPolicy>
</appender> </appender>
<!-- <!--
details: http://logback.qos.ch/manual/configuration.html#auto_configuration details: http://logback.qos.ch/manual/configuration.html#auto_configuration
runtime configuration, if need to override the defaults: runtime configuration, if need to override the defaults:
-Dlogback.configurationFile=/path/to/logback.xml -Dlogback.configurationFile=/path/to/logback.xml
for log configuration debugging - use for log configuration debugging - use
-Dlogback.statusListenerClass=ch.qos.logback.core.status.OnConsoleStatusListener -Dlogback.statusListenerClass=ch.qos.logback.core.status.OnConsoleStatusListener
log levels: log levels:
OFF ERROR WARN INFO DEBUG TRACE OFF ERROR WARN INFO DEBUG TRACE
--> -->
<logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/> <logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/>
<logger name="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" level="INFO"/> <logger name="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" level="INFO"/>
<logger name="org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer" level="INFO"/> <logger name="org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer" level="INFO"/>
<logger name="com.telecominfraproject.wlan" level="DEBUG"/> <logger name="com.telecominfraproject.wlan" level="DEBUG"/>
<logger name="com.netflix.servo.tag.aws.AwsInjectableTag" level="OFF"/> <logger name="com.netflix.servo.tag.aws.AwsInjectableTag" level="OFF"/>
<logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/> <logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/>

View File

@@ -4,4 +4,4 @@ metadata:
name: {{ include "common.fullname" . }}-log-config name: {{ include "common.fullname" . }}-log-config
namespace: {{ include "common.namespace" . }} namespace: {{ include "common.namespace" . }}
data: data:
{{ (.Files.Glob "resources/config/logback.xml").AsConfig | indent 2 }} {{ tpl (.Files.Glob "resources/config/logback.xml").AsConfig . | indent 2 }}

View File

@@ -27,9 +27,8 @@ spec:
securityContext: securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }} {{- toYaml .Values.podSecurityContext | nindent 8 }}
initContainers: initContainers:
{{- include "jmxPrometheus.initContainer" . | nindent 8 }}
- name: wait-for-services - name: wait-for-services
image: {{ .Values.waitForServicesImage.registry }}/{{ .Values.waitForServicesImage.repository }}:{{ .Values.waitForServicesImage.tag }} image: opsfleet/depends-on:latest
args: args:
- "-service={{ .Release.Name }}-opensync-mqtt-broker" - "-service={{ .Release.Name }}-opensync-mqtt-broker"
- "-service={{ .Release.Name }}-wlan-prov-service" - "-service={{ .Release.Name }}-wlan-prov-service"
@@ -37,8 +36,8 @@ spec:
- -check_interval=5 - -check_interval=5
{{- if .Values.global.integratedDeployment }} {{- if .Values.global.integratedDeployment }}
- name: {{ include "common.name" . }}-readiness-int-cloud - name: {{ include "common.name" . }}-readiness-int-cloud
image: {{ .Values.intCloudReadiness.registry }}/{{ .Values.intCloudReadiness.repository }}:{{ .Values.intCloudReadiness.tag }} image: alpine
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }} imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
command: command:
- sh - sh
- -c - -c
@@ -68,11 +67,11 @@ spec:
securityContext: securityContext:
{{- toYaml .Values.securityContext | nindent 12 }} {{- toYaml .Values.securityContext | nindent 12 }}
{{- if .Values.global.testingEnabled }} {{- if .Values.global.testingEnabled }}
image: {{ .Values.global.repository.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }}-{{.Values.global.testingTimestamp}} image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}-{{.Values.global.testingTimestamp}}
{{- else }} {{- else }}
image: {{ .Values.global.repository.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }} image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
{{- end }} {{- end }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }} imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
{{- if .Values.probes.enabled }} {{- if .Values.probes.enabled }}
livenessProbe: livenessProbe:
tcpSocket: tcpSocket:
@@ -90,11 +89,6 @@ spec:
failureThreshold: {{ .Values.probes.readinessProbe.failureThreshold }} failureThreshold: {{ .Values.probes.readinessProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.readinessProbe.periodSeconds }} periodSeconds: {{ .Values.probes.readinessProbe.periodSeconds }}
successThreshold: {{ .Values.probes.readinessProbe.successThreshold }} successThreshold: {{ .Values.probes.readinessProbe.successThreshold }}
startupProbe:
tcpSocket:
port: {{ .Values.service.port1 }}
failureThreshold: {{ .Values.probes.startupProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.startupProbe.periodSeconds}}
{{- end }} {{- end }}
env: env:
{{- include "common.env" . | nindent 12 }} {{- include "common.env" . | nindent 12 }}
@@ -148,7 +142,7 @@ spec:
- name: tip_wlan_maxHttpThreads - name: tip_wlan_maxHttpThreads
value: "{{ .Values.scalability.tip_wlan_maxHttpThreads }}" value: "{{ .Values.scalability.tip_wlan_maxHttpThreads }}"
- name: JVM_MEM_OPTIONS - name: JVM_MEM_OPTIONS
value: "{{ .Values.scalability.JVM_MEM_OPTIONS }} {{ include "jmxPrometheus.jvmOpts" . }}" value: "{{ .Values.scalability.JVM_MEM_OPTIONS }}"
volumeMounts: volumeMounts:
- mountPath: /opt/tip-wlan/certs/client_keystore.jks - mountPath: /opt/tip-wlan/certs/client_keystore.jks
name: certificates name: certificates
@@ -170,8 +164,6 @@ spec:
subPath: logback.xml subPath: logback.xml
- mountPath: {{ $file_store_path }} - mountPath: {{ $file_store_path }}
name: file-store-data name: file-store-data
{{- include "jmxPrometheus.configVolumeMount" . | nindent 10 }}
{{- include "jmxPrometheus.tmpVolumeMount" . | nindent 10 }}
ports: ports:
- name: {{ .Values.service.name1 }} - name: {{ .Values.service.name1 }}
containerPort: {{ .Values.service.port1 }} containerPort: {{ .Values.service.port1 }}
@@ -190,7 +182,6 @@ spec:
containerPort: {{ .Values.service.port5 }} containerPort: {{ .Values.service.port5 }}
protocol: TCP protocol: TCP
{{- end }} {{- end }}
{{- include "jmxPrometheus.port" . | nindent 12 }}
resources: resources:
{{- toYaml .Values.resources | nindent 12 }} {{- toYaml .Values.resources | nindent 12 }}
{{- with .Values.nodeSelector }} {{- with .Values.nodeSelector }}
@@ -209,7 +200,7 @@ spec:
volumes: volumes:
- name: certificates - name: certificates
secret: secret:
secretName: tip-common-opensync-gw-certs secretName: {{ include "common.fullname" . }}-certs
- name: logback-config - name: logback-config
configMap: configMap:
name: {{ include "common.fullname" . }}-log-config name: {{ include "common.fullname" . }}-log-config
@@ -220,5 +211,3 @@ spec:
{{- else }} {{- else }}
emptyDir: {} emptyDir: {}
{{- end }} {{- end }}
{{- include "jmxPrometheus.configVolume" . | nindent 6 }}
{{- include "jmxPrometheus.tmpVolume" . | nindent 6 }}

View File

@@ -1 +0,0 @@
{{ include "jmxPrometheus.podMonitor" . }}

View File

@@ -0,0 +1,8 @@
apiVersion: v1
kind: Secret
metadata:
name: {{ include "common.fullname" . }}-certs
namespace: {{ include "common.namespace" . }}
type: Opaque
data:
{{ tpl (.Files.Glob "resources/config/certs/*").AsSecrets . | indent 2 }}

View File

@@ -11,7 +11,7 @@ metadata:
spec: spec:
containers: containers:
- name: wget - name: wget
image: {{ .Values.testConnectionImage.registry }}/{{ .Values.testConnectionImage.repository }}:{{ .Values.testConnectionImage.tag }} image: busybox
command: ['wget'] command: ['wget']
args: ['{{ include "common.fullname" . }}:{{ .Values.service.port1 }}'] args: ['{{ include "common.fullname" . }}:{{ .Values.service.port1 }}']
restartPolicy: Never restartPolicy: Never

View File

@@ -11,22 +11,7 @@ replicaCount: 1
image: image:
name: opensync-gateway-cloud name: opensync-gateway-cloud
tag: 1.3.0-SNAPSHOT tag: 0.0.1-SNAPSHOT
waitForServicesImage:
registry: tip-docker-cache-repo.jfrog.io
repository: opsfleet/depends-on
tag: v1.0.0
intCloudReadinessImage:
registry: tip-docker-cache-repo.jfrog.io
repository: library/alpine
tag: 3.13
testConnectionImage:
registry: tip-docker-cache-repo.jfrog.io
repository: library/alpine
tag: 3.13
nameOverride: "" nameOverride: ""
fullnameOverride: "" fullnameOverride: ""
@@ -67,9 +52,6 @@ probes:
timeoutSeconds: 5 timeoutSeconds: 5
successThreshold: 1 successThreshold: 1
failureThreshold: 3 failureThreshold: 3
startupProbe:
periodSeconds: 30
failureThreshold: 500
# Enable/Disable Helm tests # Enable/Disable Helm tests
testsEnabled: false testsEnabled: false
@@ -133,6 +115,7 @@ portal:
name: file-store-data name: file-store-data
ordinal: 0 ordinal: 0
# These are the address and ports for the externalhost # These are the address and ports for the externalhost
# This is important for ovsdb and mqtt since # This is important for ovsdb and mqtt since
# that's what AP sees. Please make sure to override # that's what AP sees. Please make sure to override
@@ -146,6 +129,8 @@ externalhost:
ovsdb: 6640 ovsdb: 6640
mqtt: 1883 mqtt: 1883
ethernetType: ethernetType:
lanName: "lan" lanName: "lan"
lanType: "bridge" lanType: "bridge"
@@ -186,7 +171,7 @@ resources:
cpu: 500m cpu: 500m
memory: 750Mi memory: 750Mi
requests: requests:
cpu: 10m cpu: 50m
memory: 500Mi memory: 500Mi
nodeSelector: {} nodeSelector: {}

View File

@@ -0,0 +1,2 @@
Contains certs needed for this service to start.
Please refer to page: https://telecominfraproject.atlassian.net/wiki/spaces/WIFI/pages/262176803/Pre-requisites+before+deploying+Tip-Wlan+solution

View File

@@ -0,0 +1,21 @@
{
"maxConnectionsTotal": 100,
"maxConnectionsPerRoute": 10,
"truststoreType": "JKS",
"truststoreProvider": "SUN",
"truststoreFile": "file:/opt/tip-wlan/certs/truststore.jks",
"truststorePass": "mypassword",
"keystoreType": "JKS",
"keystoreProvider": "SUN",
"keystoreFile": "file:/opt/tip-wlan/certs/client_keystore.jks",
"keystorePass": "mypassword",
"keyAlias": "clientkeyalias",
"credentialsList": [
{
"host": "localhost",
"port": -1,
"user": "user",
"password": "password"
}
]
}

View File

@@ -0,0 +1,13 @@
truststorePass=mypassword
truststoreFile=file:///opt/tip-wlan/certs/truststore.jks
truststoreType=JKS
truststoreProvider=SUN
keyAlias=1
keystorePass=mypassword
keystoreFile=file:///opt/tip-wlan/certs/server.pkcs12
keystoreType=pkcs12
keystoreProvider=SunJSSE
sslProtocol=TLS

View File

@@ -13,8 +13,8 @@
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder> </encoder>
</appender> </appender>
<!-- <!--
<appender name="FILE" class="ch.qos.logback.core.FileAppender"> <appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>myApp.log</file> <file>myApp.log</file>
@@ -23,7 +23,7 @@
</encoder> </encoder>
</appender> </appender>
--> -->
<appender name="logfile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="logfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/app/logs/opensyncgw.log</file> <file>/app/logs/opensyncgw.log</file>
<append>true</append> <append>true</append>
@@ -39,37 +39,37 @@
<maxFileSize>20MB</maxFileSize> <maxFileSize>20MB</maxFileSize>
</triggeringPolicy> </triggeringPolicy>
</appender> </appender>
<!-- <!--
details: http://logback.qos.ch/manual/configuration.html#auto_configuration details: http://logback.qos.ch/manual/configuration.html#auto_configuration
runtime configuration, if need to override the defaults: runtime configuration, if need to override the defaults:
-Dlogback.configurationFile=/path/to/logback.xml -Dlogback.configurationFile=/path/to/logback.xml
for log configuration debugging - use for log configuration debugging - use
-Dlogback.statusListenerClass=ch.qos.logback.core.status.OnConsoleStatusListener -Dlogback.statusListenerClass=ch.qos.logback.core.status.OnConsoleStatusListener
log levels: log levels:
OFF ERROR WARN INFO DEBUG TRACE OFF ERROR WARN INFO DEBUG TRACE
--> -->
<logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/> <logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/>
<logger name="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" level="INFO"/> <logger name="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" level="INFO"/>
<logger name="org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer" level="INFO"/> <logger name="org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer" level="INFO"/>
<logger name="com.telecominfraproject.wlan" level="DEBUG"/> <logger name="com.telecominfraproject.wlan" level="DEBUG"/>
<logger name="com.netflix.servo.tag.aws.AwsInjectableTag" level="OFF"/> <logger name="com.netflix.servo.tag.aws.AwsInjectableTag" level="OFF"/>
<logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/> <logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/>
<logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/> <logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/>
<logger name="MQTT_DATA" level="DEBUG"/> <logger name="MQTT_DATA" level="DEBUG"/>
<!-- <!--
<logger name="org.springframework.security.web.authentication.preauth" level="DEBUG"/> <logger name="org.springframework.security.web.authentication.preauth" level="DEBUG"/>
--> -->
<root level="WARN"> <root level="WARN">
<appender-ref ref="stdout"/> <appender-ref ref="stdout"/>
<appender-ref ref="logfile"/> <appender-ref ref="logfile"/>
</root> </root>
</configuration> </configuration>

View File

@@ -4,4 +4,4 @@ metadata:
name: {{ include "common.fullname" . }}-log-config name: {{ include "common.fullname" . }}-log-config
namespace: {{ include "common.namespace" . }} namespace: {{ include "common.namespace" . }}
data: data:
{{ (.Files.Glob "resources/config/logback.xml").AsConfig | indent 2 }} {{ tpl (.Files.Glob "resources/config/logback.xml").AsConfig . | indent 2 }}

View File

@@ -25,16 +25,16 @@ spec:
securityContext: securityContext:
{{- toYaml .Values.securityContext | nindent 12 }} {{- toYaml .Values.securityContext | nindent 12 }}
{{- if .Values.global.testingEnabled }} {{- if .Values.global.testingEnabled }}
image: {{ .Values.global.repository.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }}-{{.Values.global.testingTimestamp}} image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}-{{.Values.global.testingTimestamp}}
{{- else }} {{- else }}
image: {{ .Values.global.repository.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }} image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
{{- end }} {{- end }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }} imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
{{- if .Values.probes.enabled }} {{- if .Values.probes.enabled }}
livenessProbe: livenessProbe:
tcpSocket: tcpSocket:
port: {{ .Values.service.port2 }} port: {{ .Values.service.port2 }}
initialDelaySeconds: {{ .Values.probes.livenessProbe.initialDelaySeconds }} initialDelaySeconds: {{ .Values.probes.livenessProbe.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.livenessProbe.timeoutSeconds }} timeoutSeconds: {{ .Values.probes.livenessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.probes.livenessProbe.failureThreshold }} failureThreshold: {{ .Values.probes.livenessProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.livenessProbe.periodSeconds }} periodSeconds: {{ .Values.probes.livenessProbe.periodSeconds }}
@@ -47,12 +47,7 @@ spec:
failureThreshold: {{ .Values.probes.readinessProbe.failureThreshold }} failureThreshold: {{ .Values.probes.readinessProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.readinessProbe.periodSeconds }} periodSeconds: {{ .Values.probes.readinessProbe.periodSeconds }}
successThreshold: {{ .Values.probes.readinessProbe.successThreshold }} successThreshold: {{ .Values.probes.readinessProbe.successThreshold }}
startupProbe: {{- end }}
tcpSocket:
port: {{ .Values.service.port2 }}
failureThreshold: {{ .Values.probes.startupProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.startupProbe.periodSeconds}}
{{- end }}
volumeMounts: volumeMounts:
- mountPath: /opt/tip-wlan/certs/client_keystore.jks - mountPath: /opt/tip-wlan/certs/client_keystore.jks
name: certificates name: certificates
@@ -97,7 +92,7 @@ spec:
volumes: volumes:
- name: certificates - name: certificates
secret: secret:
secretName: tip-common-opensync-gw-certs secretName: {{ include "common.fullname" . }}-certs
- name: logback-config - name: logback-config
configMap: configMap:
name: {{ include "common.fullname" . }}-log-config name: {{ include "common.fullname" . }}-log-config

View File

@@ -0,0 +1,8 @@
apiVersion: v1
kind: Secret
metadata:
name: {{ include "common.fullname" . }}-certs
namespace: {{ include "common.namespace" . }}
type: Opaque
data:
{{ tpl (.Files.Glob "resources/config/certs/*").AsSecrets . | indent 2 }}

View File

@@ -11,7 +11,7 @@ metadata:
spec: spec:
containers: containers:
- name: wget - name: wget
image: {{ .Values.testConnectionImage.registry }}/{{ .Values.testConnectionImage.repository }}:{{ .Values.testConnectionImage.tag }} image: busybox
command: ['wget'] command: ['wget']
args: ['{{ include "common.fullname" . }}:{{ .Values.service.port1 }}'] args: ['{{ include "common.fullname" . }}:{{ .Values.service.port1 }}']
restartPolicy: Never restartPolicy: Never

View File

@@ -11,12 +11,7 @@ replicaCount: 1
image: image:
name: opensync-gateway-static name: opensync-gateway-static
tag: 1.3.0-SNAPSHOT tag: 0.0.1-SNAPSHOT
testConnectionImage:
registry: tip-docker-cache-repo.jfrog.io
repository: library/alpine
tag: 3.13
nameOverride: "" nameOverride: ""
fullnameOverride: "" fullnameOverride: ""
@@ -57,9 +52,6 @@ probes:
timeoutSeconds: 5 timeoutSeconds: 5
successThreshold: 1 successThreshold: 1
failureThreshold: 3 failureThreshold: 3
startupProbe:
periodSeconds: 30
failureThreshold: 500
# Enable/Disable Helm tests # Enable/Disable Helm tests
testsEnabled: false testsEnabled: false

View File

@@ -0,0 +1,2 @@
Contains certs needed for this service to start.
Please refer to page: https://telecominfraproject.atlassian.net/wiki/spaces/WIFI/pages/262176803/Pre-requisites+before+deploying+Tip-Wlan+solution

View File

@@ -4,4 +4,4 @@ metadata:
name: mosquitto-config name: mosquitto-config
namespace: {{ include "common.namespace" . }} namespace: {{ include "common.namespace" . }}
data: data:
{{ (.Files.Glob "resources/config/mosquitto.conf").AsConfig | indent 2 }} {{ tpl (.Files.Glob "resources/config/mosquitto.conf").AsConfig . | indent 2 }}

View File

@@ -0,0 +1,8 @@
apiVersion: v1
kind: Secret
metadata:
name: opensync-mqtt-broker-certs
namespace: {{ include "common.namespace" . }}
type: Opaque
data:
{{ tpl (.Files.Glob "resources/config/certs/*").AsSecrets . | indent 2 }}

View File

@@ -45,8 +45,8 @@ spec:
{{- toYaml .Values.podSecurityContext | nindent 8 }} {{- toYaml .Values.podSecurityContext | nindent 8 }}
initContainers: initContainers:
- name: {{ include "common.name" . }}-init-dir-ownership-change - name: {{ include "common.name" . }}-init-dir-ownership-change
image: {{ .Values.alpine.registry }}/{{ .Values.alpine.repository }}:{{ .Values.alpine.tag }} image: {{ .Values.alpine.image }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }} imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
# Change ownership to `mosquitto` user for a mounted volume # Change ownership to `mosquitto` user for a mounted volume
command: command:
- sh - sh
@@ -63,13 +63,13 @@ spec:
- name: {{ .Chart.Name }} - name: {{ .Chart.Name }}
securityContext: securityContext:
{{- toYaml .Values.securityContext | nindent 12 }} {{- toYaml .Values.securityContext | nindent 12 }}
image: {{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }} image: {{ .Values.image.name }}:{{ .Values.image.tag }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }} imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
{{- if .Values.probes.enabled }} {{- if .Values.probes.enabled }}
livenessProbe: livenessProbe:
tcpSocket: tcpSocket:
port: {{ .Values.service.port1 }} port: {{ .Values.service.port1 }}
initialDelaySeconds: {{ .Values.probes.livenessProbe.initialDelaySeconds }} initialDelaySeconds: {{ .Values.probes.livenessProbe.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.livenessProbe.timeoutSeconds }} timeoutSeconds: {{ .Values.probes.livenessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.probes.livenessProbe.failureThreshold }} failureThreshold: {{ .Values.probes.livenessProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.livenessProbe.periodSeconds }} periodSeconds: {{ .Values.probes.livenessProbe.periodSeconds }}
@@ -82,11 +82,6 @@ spec:
failureThreshold: {{ .Values.probes.readinessProbe.failureThreshold }} failureThreshold: {{ .Values.probes.readinessProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.readinessProbe.periodSeconds }} periodSeconds: {{ .Values.probes.readinessProbe.periodSeconds }}
successThreshold: {{ .Values.probes.readinessProbe.successThreshold }} successThreshold: {{ .Values.probes.readinessProbe.successThreshold }}
startupProbe:
tcpSocket:
port: {{ .Values.service.port1 }}
failureThreshold: {{ .Values.probes.startupProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.startupProbe.periodSeconds}}
{{- end }} {{- end }}
volumeMounts: volumeMounts:
- mountPath: /certs/cacert.pem - mountPath: /certs/cacert.pem
@@ -129,7 +124,7 @@ spec:
volumes: volumes:
- name: opensync-mqtt-broker-truststore - name: opensync-mqtt-broker-truststore
secret: secret:
secretName: tip-common-opensync-mqtt-broker-certs secretName: opensync-mqtt-broker-certs
- name: opensync-mqtt-broker-conf - name: opensync-mqtt-broker-conf
configMap: configMap:
name: mosquitto-config name: mosquitto-config

View File

@@ -11,7 +11,7 @@ metadata:
spec: spec:
containers: containers:
- name: wget - name: wget
image: {{ .Values.testConnectionImage.registry }}/{{ .Values.testConnectionImage.repository }}:{{ .Values.testConnectionImage.tag }} image: busybox
command: ['wget'] command: ['wget']
args: ['{{ include "common.fullname" . }}:{{ .Values.service.port1 }}'] args: ['{{ include "common.fullname" . }}:{{ .Values.service.port1 }}']
restartPolicy: Never restartPolicy: Never

View File

@@ -5,19 +5,11 @@
replicaCount: 1 replicaCount: 1
image: image:
registry: tip-docker-cache-repo.jfrog.io name: eclipse-mosquitto
repository: library/eclipse-mosquitto
tag: 2.0.3 tag: 2.0.3
alpine: alpine:
registry: tip-docker-cache-repo.jfrog.io image: alpine:3.6
repository: library/alpine
tag: 3.6
testConnectionImage:
registry: tip-docker-cache-repo.jfrog.io
repository: library/alpine
tag: 3.13
nameOverride: "" nameOverride: ""
fullnameOverride: "" fullnameOverride: ""
@@ -60,9 +52,6 @@ probes:
timeoutSeconds: 5 timeoutSeconds: 5
successThreshold: 1 successThreshold: 1
failureThreshold: 3 failureThreshold: 3
startupProbe:
periodSeconds: 30
failureThreshold: 500
# Enable/Disable Helm tests # Enable/Disable Helm tests
testsEnabled: false testsEnabled: false
@@ -96,8 +85,8 @@ resources:
cpu: 500m cpu: 500m
memory: 128Mi memory: 128Mi
requests: requests:
cpu: 10m cpu: 50m
memory: 5Mi memory: 128Mi
priorityClassName: "" priorityClassName: ""
@@ -116,7 +105,7 @@ persistence:
## existingClaimData: opensync-wifi-controller-opensync-mqtt-broker-data ## existingClaimData: opensync-wifi-controller-opensync-mqtt-broker-data
## existingClaimDb: opensync-wifi-controller-opensync-mqtt-broker-db ## existingClaimDb: opensync-wifi-controller-opensync-mqtt-broker-db
## volumeReclaimPolicy: Retain ## volumeReclaimPolicy: Retain
## If you want to bind to an existing PV, uncomment below with the pv name ## If you want to bind to an existing PV, uncomment below with the pv name
## and comment storageClass and belowannotation ## and comment storageClass and belowannotation
## volumeNameDb: pvc-dc52b290-ae86-4cb3-aad0-f2c806a23114 ## volumeNameDb: pvc-dc52b290-ae86-4cb3-aad0-f2c806a23114
## volumeNameData: pvc-735baedf-323b-47bc-9383-952e6bc5ce3e ## volumeNameData: pvc-735baedf-323b-47bc-9383-952e6bc5ce3e

View File

@@ -25,9 +25,9 @@ spec:
securityContext: securityContext:
{{- toYaml .Values.securityContext | nindent 12 }} {{- toYaml .Values.securityContext | nindent 12 }}
{{- if .Values.global.testingEnabled }} {{- if .Values.global.testingEnabled }}
image: {{ .Values.global.repository.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }}-{{.Values.global.testingTimestamp}} image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}-{{.Values.global.testingTimestamp}}
{{- else }} {{- else }}
image: {{ .Values.global.repository.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }} image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
{{- end }} {{- end }}
imagePullPolicy: {{ .Values.global.pullPolicy }} imagePullPolicy: {{ .Values.global.pullPolicy }}
env: env:

View File

@@ -1,9 +1,7 @@
{{- if .Values.ingress.enabled -}} {{- if .Values.ingress.enabled -}}
{{- $fullName := include "common.fullname" . -}} {{- $fullName := include "common.fullname" . -}}
{{- $svcPort := .Values.service.port -}} {{- $svcPort := .Values.service.port -}}
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }} {{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1
{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
apiVersion: networking.k8s.io/v1beta1 apiVersion: networking.k8s.io/v1beta1
{{- else -}} {{- else -}}
apiVersion: extensions/v1beta1 apiVersion: extensions/v1beta1
@@ -38,35 +36,15 @@ spec:
paths: paths:
{{- if $.Values.ingress.lb_https_redirect }} {{- if $.Values.ingress.lb_https_redirect }}
- path: /* - path: /*
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
pathType: ImplementationSpecific
{{- end }}
backend: backend:
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
service:
name: ssl-redirect
port:
name: use-annotation
{{- else -}}
serviceName: ssl-redirect serviceName: ssl-redirect
servicePort: use-annotation servicePort: use-annotation
{{- end }}
{{- end }} {{- end }}
{{- range .paths }} {{- range .paths }}
- path: {{ . }} - path: {{ . }}
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
pathType: ImplementationSpecific
{{- end }}
backend: backend:
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
service:
name: {{ $fullName }}
port:
number: {{ $svcPort }}
{{- else -}}
serviceName: {{ $fullName }} serviceName: {{ $fullName }}
servicePort: {{ $svcPort }} servicePort: {{ $svcPort }}
{{- end }}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- end }} {{- end }}

View File

@@ -11,7 +11,7 @@ metadata:
spec: spec:
containers: containers:
- name: wget - name: wget
image: {{ .Values.testConnectionImage.registry }}/{{ .Values.testConnectionImage.repository }}:{{ .Values.testConnectionImage.tag }} image: busybox
command: ['wget'] command: ['wget']
args: ['{{ include "common.fullname" . }}:{{ .Values.service.port }}'] args: ['{{ include "common.fullname" . }}:{{ .Values.service.port }}']
restartPolicy: Never restartPolicy: Never

View File

@@ -9,16 +9,11 @@
replicaCount: 1 replicaCount: 1
image: image:
name: wlan-cloud-graphql-gw name: wlan-cloud-graphql-gw
tag: 1.3.0-SNAPSHOT tag: latest
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
testConnectionImage:
registry: tip-docker-cache-repo.jfrog.io
repository: library/alpine
tag: 3.13
nameOverride: "" nameOverride: ""
fullnameOverride: "" fullnameOverride: ""
@@ -64,22 +59,22 @@ ingress:
annotations: {} annotations: {}
# kubernetes.io/ingress.class: nginx # kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true" # kubernetes.io/tls-acme: "true"
hosts: [] hosts:
# - host: wlan-ui-graphql.local - host: wlan-ui-graphql.zone3.lab.connectus.ai
# paths: [ paths: [
# / /
# ] ]
tls: [] tls: []
# - secretName: chart-example-tls # - secretName: chart-example-tls
# hosts: # hosts:
# - wlan-ui-graphql.local # - chart-example.local
resources: resources:
limits: limits:
cpu: 500m cpu: 500m
memory: 128Mi memory: 128Mi
requests: requests:
cpu: 10m cpu: 50m
memory: 128Mi memory: 128Mi
nodeSelector: {} nodeSelector: {}

View File

@@ -25,9 +25,9 @@ spec:
securityContext: securityContext:
{{- toYaml .Values.securityContext | nindent 12 }} {{- toYaml .Values.securityContext | nindent 12 }}
{{- if .Values.global.testingEnabled }} {{- if .Values.global.testingEnabled }}
image: {{ .Values.global.repository.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }}-{{.Values.global.testingTimestamp}} image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}-{{.Values.global.testingTimestamp}}
{{- else }} {{- else }}
image: {{ .Values.global.repository.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }} image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
{{- end }} {{- end }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }} imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
env: env:

View File

@@ -1,9 +1,7 @@
{{- if .Values.ingress.enabled -}} {{- if .Values.ingress.enabled -}}
{{- $fullName := include "common.fullname" . -}} {{- $fullName := include "common.fullname" . -}}
{{- $svcPort := .Values.service.port -}} {{- $svcPort := .Values.service.port -}}
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }} {{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1
{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
apiVersion: networking.k8s.io/v1beta1 apiVersion: networking.k8s.io/v1beta1
{{- else -}} {{- else -}}
apiVersion: extensions/v1beta1 apiVersion: extensions/v1beta1
@@ -38,35 +36,15 @@ spec:
paths: paths:
{{- if $.Values.ingress.lb_https_redirect }} {{- if $.Values.ingress.lb_https_redirect }}
- path: /* - path: /*
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
pathType: ImplementationSpecific
{{- end }}
backend: backend:
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
service:
name: ssl-redirect
port:
name: use-annotation
{{- else -}}
serviceName: ssl-redirect serviceName: ssl-redirect
servicePort: use-annotation servicePort: use-annotation
{{- end }}
{{- end }} {{- end }}
{{- range .paths }} {{- range .paths }}
- path: {{ . }} - path: {{ . }}
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
pathType: ImplementationSpecific
{{- end }}
backend: backend:
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
service:
name: {{ $fullName }}
port:
number: {{ $svcPort }}
{{- else -}}
serviceName: {{ $fullName }} serviceName: {{ $fullName }}
servicePort: {{ $svcPort }} servicePort: {{ $svcPort }}
{{- end }}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- end }} {{- end }}

View File

@@ -11,7 +11,7 @@ metadata:
spec: spec:
containers: containers:
- name: wget - name: wget
image: {{ .Values.testConnectionImage.registry }}/{{ .Values.testConnectionImage.repository }}:{{ .Values.testConnectionImage.tag }} image: busybox
command: ['wget'] command: ['wget']
args: ['{{ include "common.fullname" . }}:{{ .Values.service.port }}'] args: ['{{ include "common.fullname" . }}:{{ .Values.service.port }}']
restartPolicy: Never restartPolicy: Never

View File

@@ -9,16 +9,11 @@
replicaCount: 1 replicaCount: 1
image: image:
name: wlan-cloud-ui name: wlan-cloud-ui
tag: 1.3.0-SNAPSHOT tag: latest
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
testConnectionImage:
registry: tip-docker-cache-repo.jfrog.io
repository: library/alpine
tag: 3.13
nameOverride: "" nameOverride: ""
fullnameOverride: "" fullnameOverride: ""
@@ -59,23 +54,23 @@ ingress:
annotations: {} annotations: {}
# kubernetes.io/ingress.class: nginx # kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true" # kubernetes.io/tls-acme: "true"
hosts: [] hosts:
# - host: wlan-ui.local - host: wlan-ui.zone3.lab.connectus.ai
# paths: [ paths: [
# / /
# ] ]
tls: [] tls: []
# - secretName: chart-example-tls # - secretName: chart-example-tls
# hosts: # hosts:
# - wlan-ui.local # - chart-example.local
resources: resources:
limits: limits:
cpu: 500m cpu: 500m
memory: 128Mi memory: 128Mi
requests: requests:
cpu: 10m cpu: 50m
memory: 5Mi memory: 128Mi
nodeSelector: {} nodeSelector: {}

View File

@@ -0,0 +1,2 @@
Contains certs needed for this service to start.
Please refer to page: https://telecominfraproject.atlassian.net/wiki/spaces/WIFI/pages/262176803/Pre-requisites+before+deploying+Tip-Wlan+solution

View File

@@ -46,6 +46,7 @@
</triggeringPolicy> </triggeringPolicy>
</appender> </appender>
<!-- <!--
details: http://logback.qos.ch/manual/configuration.html#auto_configuration details: http://logback.qos.ch/manual/configuration.html#auto_configuration
@@ -70,5 +71,5 @@
<appender-ref ref="stdout"/> <appender-ref ref="stdout"/>
<appender-ref ref="logfile"/> <appender-ref ref="logfile"/>
</root> </root>
</configuration> </configuration>

View File

@@ -4,4 +4,4 @@ metadata:
name: {{ include "common.fullname" . }}-log-config name: {{ include "common.fullname" . }}-log-config
namespace: {{ include "common.namespace" . }} namespace: {{ include "common.namespace" . }}
data: data:
{{ (.Files.Glob "resources/config/logback.xml").AsConfig | indent 2 }} {{ tpl (.Files.Glob "resources/config/logback.xml").AsConfig . | indent 2 }}

View File

@@ -19,126 +19,121 @@ spec:
{{- include "common.selectorLabels" . | nindent 8 }} {{- include "common.selectorLabels" . | nindent 8 }}
spec: spec:
imagePullSecrets: imagePullSecrets:
- name: "{{ include "common.namespace" . }}-docker-registry-key" - name: "{{ include "common.namespace" . }}-docker-registry-key"
serviceAccountName: {{ include "common.serviceAccountName" . }} serviceAccountName: {{ include "common.serviceAccountName" . }}
securityContext: securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }} {{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.integratedWithPersistence.enabled }} {{- if .Values.integratedWithPersistence.enabled }}
initContainers: initContainers:
- name: wait-for-services - name: {{ include "common.name" . }}-readiness
image: {{ .Values.waitForServicesImage.registry }}/{{ .Values.waitForServicesImage.repository }}:{{ .Values.waitForServicesImage.tag }} image: busybox:1.28
args: imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
- "-service={{ .Release.Name }}-postgresql" command: ['sh', '-c', "until nslookup {{ $pg }}.{{ $ns }}.svc.cluster.local; do echo waiting for POSTGRES; sleep 2; done"]
- -check_interval=5 - name: {{ include "common.name" . }}-create-db-schema
- name: {{ include "common.name" . }}-create-db-schema env:
env: - name: POSTGRESQL_PORT_NUMBER
- name: POSTGRESQL_PORT_NUMBER value: "5432"
value: "5432" - name: POSTGRES_PASSWORD
- name: POSTGRES_PASSWORD valueFrom:
valueFrom: secretKeyRef:
secretKeyRef: name: {{ include "common.fullname" . }}-creds
name: {{ include "common.fullname" . }}-creds key: postgresql-password
key: postgresql-password - name: SCHEMA_REPO_USER
- name: SCHEMA_REPO_USER valueFrom:
valueFrom: secretKeyRef:
secretKeyRef: name: {{ include "common.fullname" . }}-creds
name: {{ include "common.fullname" . }}-creds key: schema-repo-user
key: schema-repo-user - name: SCHEMA_REPO_PASSWORD
- name: SCHEMA_REPO_PASSWORD valueFrom:
valueFrom: secretKeyRef:
secretKeyRef: name: {{ include "common.fullname" . }}-creds
name: {{ include "common.fullname" . }}-creds key: schema-repo-password
key: schema-repo-password image: postgres:latest
image: {{ .Values.createDbSchemaImage.registry }}/{{ .Values.createDbSchemaImage.repository }}:{{ .Values.createDbSchemaImage.tag }} imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
args: command:
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }} - sh
command: - -c
- sh - |
- -c apt update
- | apt -y install curl
apt update echo "***** Fetching cloud-sdk-schema-postgresql.sql from JFrog *****"
apt -y install curl curl -u$SCHEMA_REPO_USER:$SCHEMA_REPO_PASSWORD -O "https://tip-tip-wlan-cloud-docker-repo.jfrog.io/artifactory/tip-wlan-cloud-schemas/0.0.1-SNAPSHOT/sql/cloud-sdk-schema-postgresql.sql"
echo "***** Fetching cloud-sdk-schema-postgresql.sql from JFrog *****" echo "***** Now executing cloud-sdk-schema-postgresql.sql and creating/updating schema on Postgres instance *****"
curl -u$SCHEMA_REPO_USER:$SCHEMA_REPO_PASSWORD -O "https://tip-tip-wlan-cloud-docker-repo.jfrog.io/artifactory/tip-wlan-cloud-schemas/0.0.1-SNAPSHOT/sql/cloud-sdk-schema-postgresql.sql" PGPASSWORD=$POSTGRES_PASSWORD psql -h {{- include "postgresql.service" . -}} -U postgres -f cloud-sdk-schema-postgresql.sql
echo "***** Now executing cloud-sdk-schema-postgresql.sql and creating/updating schema on Postgres instance *****" exit
PGPASSWORD=$POSTGRES_PASSWORD psql -h {{- include "postgresql.service" . -}} -U postgres -f cloud-sdk-schema-postgresql.sql ports:
exit - containerPort: 5432
resources: name: tcp-postgresql
requests: protocol: TCP
cpu: 50m resources:
memory: 256Mi requests:
terminationMessagePath: /dev/termination-log cpu: 50m
terminationMessagePolicy: File memory: 256Mi
volumeMounts: terminationMessagePath: /dev/termination-log
- mountPath: /dev/shm terminationMessagePolicy: File
name: dshm volumeMounts:
- mountPath: /bitnami/postgresql - mountPath: /dev/shm
name: data name: dshm
- mountPath: /bitnami/postgresql
name: data
{{- end }} {{- end }}
containers: containers:
- name: {{ .Chart.Name }} - name: {{ .Chart.Name }}
securityContext: securityContext:
{{- toYaml .Values.securityContext | nindent 12 }} {{- toYaml .Values.securityContext | nindent 12 }}
{{- if .Values.global.testingEnabled }} {{- if .Values.global.testingEnabled }}
image: {{ .Values.global.repository.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }}-{{.Values.global.testingTimestamp}} image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}-{{.Values.global.testingTimestamp}}
{{- else }} {{- else }}
image: {{ .Values.global.repository.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }} image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
{{- end }} {{- end }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }} imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
env: env:
- name: BACKEND_SERVER - name: BACKEND_SERVER
value: {{ .Release.Name }}-{{ .Chart.Name }} value: {{ .Release.Name }}-{{ .Chart.Name }}
{{- if .Values.probes.enabled }} {{- if .Values.probes.enabled }}
livenessProbe: livenessProbe:
httpGet: httpGet:
path: /ping path: /ping
port: {{ .Values.service.port1 }} port: {{ .Values.service.port1 }}
scheme: {{ .Values.probes.livenessProbe.scheme }} scheme: {{ .Values.probes.livenessProbe.scheme }}
initialDelaySeconds: {{ .Values.probes.livenessProbe.initialDelaySeconds }} initialDelaySeconds: {{ .Values.probes.livenessProbe.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.livenessProbe.timeoutSeconds }} timeoutSeconds: {{ .Values.probes.livenessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.probes.livenessProbe.failureThreshold }} failureThreshold: {{ .Values.probes.livenessProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.livenessProbe.periodSeconds }} periodSeconds: {{ .Values.probes.livenessProbe.periodSeconds }}
successThreshold: {{ .Values.probes.livenessProbe.successThreshold }} successThreshold: {{ .Values.probes.livenessProbe.successThreshold }}
readinessProbe: readinessProbe:
httpGet: httpGet:
path: /ping path: /ping
port: {{ .Values.service.port1 }} port: {{ .Values.service.port1 }}
scheme: {{ .Values.probes.readinessProbe.scheme }} scheme: {{ .Values.probes.readinessProbe.scheme }}
initialDelaySeconds: {{ .Values.probes.readinessProbe.initialDelaySeconds }} initialDelaySeconds: {{ .Values.probes.readinessProbe.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.readinessProbe.timeoutSeconds }} timeoutSeconds: {{ .Values.probes.readinessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.probes.readinessProbe.failureThreshold }} failureThreshold: {{ .Values.probes.readinessProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.readinessProbe.periodSeconds }} periodSeconds: {{ .Values.probes.readinessProbe.periodSeconds }}
successThreshold: {{ .Values.probes.readinessProbe.successThreshold }} successThreshold: {{ .Values.probes.readinessProbe.successThreshold }}
startupProbe: {{- end }}
httpGet: volumeMounts:
path: /ping - mountPath: /opt/tip-wlan/certs/client_keystore.jks
port: {{ .Values.service.port1 }} name: certificates
scheme: {{ .Values.probes.readinessProbe.scheme }} subPath: client_keystore.jks
failureThreshold: {{ .Values.probes.startupProbe.failureThreshold }} - mountPath: /opt/tip-wlan/certs/truststore.jks
periodSeconds: {{ .Values.probes.startupProbe.periodSeconds}} name: certificates
{{- end }} subPath: truststore.jks
volumeMounts: - mountPath: /opt/tip-wlan/certs/server.pkcs12
- mountPath: /opt/tip-wlan/certs/client_keystore.jks name: certificates
name: certificates subPath: server.pkcs12
subPath: client_keystore.jks - mountPath: /app/intcloudcomp/logback.xml
- mountPath: /opt/tip-wlan/certs/truststore.jks name: logback-config
name: certificates subPath: logback.xml
subPath: truststore.jks ports:
- mountPath: /opt/tip-wlan/certs/server.pkcs12 - name: {{ .Values.service.name1 }}
name: certificates containerPort: {{ .Values.service.port1 }}
subPath: server.pkcs12 protocol: TCP
- mountPath: /app/intcloudcomp/logback.xml - name: {{ .Values.service.name2 }}
name: logback-config containerPort: {{ .Values.service.port2 }}
subPath: logback.xml protocol: TCP
ports: resources:
- name: {{ .Values.service.name1 }} {{- toYaml .Values.resources | nindent 12 }}
containerPort: {{ .Values.service.port1 }}
protocol: TCP
- name: {{ .Values.service.name2 }}
containerPort: {{ .Values.service.port2 }}
protocol: TCP
resources:
{{- toYaml .Values.resources | nindent 12 }}
{{- with .Values.nodeSelector }} {{- with .Values.nodeSelector }}
nodeSelector: nodeSelector:
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}
@@ -155,7 +150,7 @@ spec:
volumes: volumes:
- name: certificates - name: certificates
secret: secret:
secretName: tip-common-postgres-client-certs secretName: {{ include "common.fullname" . }}-certs
- name: logback-config - name: logback-config
configMap: configMap:
name: {{ include "common.fullname" . }}-log-config name: {{ include "common.fullname" . }}-log-config

View File

@@ -1,5 +1,4 @@
{{- if .Values.global.integratedDeployment }} {{- if .Values.global.integratedDeployment }}
---
apiVersion: v1 apiVersion: v1
kind: Secret kind: Secret
metadata: metadata:
@@ -8,8 +7,9 @@ metadata:
type: Opaque type: Opaque
data: data:
{{ tpl (.Files.Glob "resources/config/certs/*").AsSecrets . | indent 2 }} {{ tpl (.Files.Glob "resources/config/certs/*").AsSecrets . | indent 2 }}
{{- end}}
--- ---
{{- if .Values.global.integratedDeployment }}
apiVersion: v1 apiVersion: v1
kind: Secret kind: Secret
metadata: metadata:
@@ -22,7 +22,9 @@ metadata:
heritage: {{ .Release.Service | quote }} heritage: {{ .Release.Service | quote }}
type: Opaque type: Opaque
data: data:
postgresql-password: {{ .Values.global.postgres.password | b64enc | quote }} {{- if .Values.creds.enabled }}
schema-repo-user: {{ .Values.global.schema.username | b64enc | quote }} postgresql-password: {{ .Values.creds.postgres.password | b64enc | quote }}
schema-repo-password: {{ .Values.global.schema.password | b64enc | quote }} schema-repo-user: {{ .Values.creds.schema_repo.username | b64enc | quote }}
schema-repo-password: {{ .Values.creds.schema_repo.password | b64enc | quote }}
{{- end }}
{{- end}} {{- end}}

View File

@@ -11,7 +11,7 @@ metadata:
spec: spec:
containers: containers:
- name: wget - name: wget
image: {{ .Values.testConnectionImage.registry }}/{{ .Values.testConnectionImage.repository }}:{{ .Values.testConnectionImage.tag }} image: busybox
command: ['wget'] command: ['wget']
args: ['{{ include "common.fullname" . }}:{{ .Values.service.port1 }}'] args: ['{{ include "common.fullname" . }}:{{ .Values.service.port1 }}']
restartPolicy: Never restartPolicy: Never

View File

@@ -11,22 +11,7 @@ replicaCount: 1
image: image:
name: wlan-integrated-cloud-component-service name: wlan-integrated-cloud-component-service
tag: 1.3.0-SNAPSHOT tag: 0.0.1-SNAPSHOT
waitForServicesImage:
registry: tip-docker-cache-repo.jfrog.io
repository: opsfleet/depends-on
tag: v1.0.0
testConnectionImage:
registry: tip-docker-cache-repo.jfrog.io
repository: library/alpine
tag: 3.13
createDbSchemaImage:
registry: tip-docker-cache-repo.jfrog.io
repository: library/postgres
tag: 13.2-alpine
nameOverride: "" nameOverride: ""
fullnameOverride: "" fullnameOverride: ""
@@ -61,9 +46,6 @@ probes:
successThreshold: 1 successThreshold: 1
failureThreshold: 3 failureThreshold: 3
scheme: HTTPS scheme: HTTPS
startupProbe:
periodSeconds: 30
failureThreshold: 500
securityContext: {} securityContext: {}
# capabilities: # capabilities:
@@ -76,6 +58,14 @@ securityContext: {}
# Enable/Disable Helm tests # Enable/Disable Helm tests
testsEnabled: false testsEnabled: false
creds:
enabled: true
postgres:
password: DUMMY_POSTGRES_PASSWORD
schema_repo:
username: DUMMY_SCHEMA_REPO_USERNAME
password: DUMMY_SCHEMA_REPO_PASSWORD
service: service:
type: NodePort type: NodePort
port1: 9091 port1: 9091
@@ -85,7 +75,7 @@ service:
name2: secondary-port name2: secondary-port
nodePort2: 52 nodePort2: 52
postgresql: postgresql:
url: postgresql-headless url: postgresql-headless
integratedWithPersistence: integratedWithPersistence:
@@ -96,19 +86,19 @@ ingress:
annotations: {} annotations: {}
# kubernetes.io/ingress.class: nginx # kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true" # kubernetes.io/tls-acme: "true"
hosts: [] hosts:
# - host: wlan-integrated-cloud-component-service.local - host: example.com
# paths: [ paths: [
# /portal /portal
# ] ]
tls: [] tls:
# - secretName: portal-secret - secretName: portal-secret
# hosts: hosts:
# - wlan-integrated-cloud-component-service.local - example.com
# Transport-Server-passthrough properties # Transport-Server-passthrough properties
tsp: tsp:
host: wlan-portal-service.local host: wlan-portal-service.zone3.lab.connectus.ai
resources: {} resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious # We usually recommend not to specify default resources and to leave this as a conscious
@@ -126,4 +116,4 @@ nodeSelector: {}
tolerations: [] tolerations: []
affinity: {} affinity: {}

View File

@@ -0,0 +1,2 @@
Contains certs needed for this service to start.
Please refer to page: https://telecominfraproject.atlassian.net/wiki/spaces/WIFI/pages/262176803/Pre-requisites+before+deploying+Tip-Wlan+solution

View File

@@ -46,6 +46,7 @@
</triggeringPolicy> </triggeringPolicy>
</appender> </appender>
<!-- <!--
details: http://logback.qos.ch/manual/configuration.html#auto_configuration details: http://logback.qos.ch/manual/configuration.html#auto_configuration
@@ -70,5 +71,5 @@
<appender-ref ref="stdout"/> <appender-ref ref="stdout"/>
<appender-ref ref="logfile"/> <appender-ref ref="logfile"/>
</root> </root>
</configuration> </configuration>

View File

@@ -4,5 +4,4 @@ metadata:
name: {{ include "common.fullname" . }}-config name: {{ include "common.fullname" . }}-config
namespace: {{ include "common.namespace" . }} namespace: {{ include "common.namespace" . }}
data: data:
{{ (.Files.Glob "resources/config/logback.xml").AsConfig | indent 2 }} {{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}

View File

@@ -22,10 +22,9 @@ spec:
securityContext: securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }} {{- toYaml .Values.podSecurityContext | nindent 8 }}
initContainers: initContainers:
{{- include "jmxPrometheus.initContainer" . | nindent 8 }}
- name: {{ include "common.name" . }}-readiness-opensync-gw - name: {{ include "common.name" . }}-readiness-opensync-gw
image: {{ .Values.opensyncGwReadinessImage.registry }}/{{ .Values.opensyncGwReadinessImage.repository }}:{{ .Values.opensyncGwReadinessImage.tag }} image: alpine
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }} imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
command: command:
- sh - sh
- -c - -c
@@ -48,17 +47,17 @@ spec:
else else
echo ${url} service failed to respond after 50 secs echo ${url} service failed to respond after 50 secs
exit 1 exit 1
fi fi
containers: containers:
- name: {{ .Chart.Name }} - name: {{ .Chart.Name }}
securityContext: securityContext:
{{- toYaml .Values.securityContext | nindent 12 }} {{- toYaml .Values.securityContext | nindent 12 }}
{{- if .Values.global.testingEnabled }} {{- if .Values.global.testingEnabled }}
image: {{ .Values.global.repository.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }}-{{.Values.global.testingTimestamp}} image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}-{{.Values.global.testingTimestamp}}
{{- else }} {{- else }}
image: {{ .Values.global.repository.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }} image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
{{- end }} {{- end }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }} imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
env: env:
{{- include "common.env" . | nindent 12 }} {{- include "common.env" . | nindent 12 }}
- name: PF_GATEWAY_RELEASE_URL - name: PF_GATEWAY_RELEASE_URL
@@ -76,15 +75,13 @@ spec:
value: "{{ include "apDebugPortsStart" . }}" value: "{{ include "apDebugPortsStart" . }}"
- name: EXT_PORT_RANGE_END - name: EXT_PORT_RANGE_END
value: "{{ sub (include "apDebugPortsEnd" . | atoi) 1 }}" value: "{{ sub (include "apDebugPortsEnd" . | atoi) 1 }}"
- name: JVM_MEM_OPTIONS
value: "{{ include "jmxPrometheus.jvmOpts" . }}"
{{- if .Values.probes.enabled }} {{- if .Values.probes.enabled }}
livenessProbe: livenessProbe:
httpGet: httpGet:
path: /ping path: /ping
port: {{ .Values.service.port2 }} port: {{ .Values.service.port2 }}
scheme: {{ .Values.probes.livenessProbe.scheme }} scheme: {{ .Values.probes.livenessProbe.scheme }}
initialDelaySeconds: {{ .Values.probes.livenessProbe.initialDelaySeconds }} initialDelaySeconds: {{ .Values.probes.livenessProbe.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.livenessProbe.timeoutSeconds }} timeoutSeconds: {{ .Values.probes.livenessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.probes.livenessProbe.failureThreshold }} failureThreshold: {{ .Values.probes.livenessProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.livenessProbe.periodSeconds }} periodSeconds: {{ .Values.probes.livenessProbe.periodSeconds }}
@@ -99,13 +96,6 @@ spec:
failureThreshold: {{ .Values.probes.readinessProbe.failureThreshold }} failureThreshold: {{ .Values.probes.readinessProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.readinessProbe.periodSeconds }} periodSeconds: {{ .Values.probes.readinessProbe.periodSeconds }}
successThreshold: {{ .Values.probes.readinessProbe.successThreshold }} successThreshold: {{ .Values.probes.readinessProbe.successThreshold }}
startupProbe:
httpGet:
path: /ping
port: {{ .Values.service.port2 }}
scheme: {{ .Values.probes.readinessProbe.scheme }}
failureThreshold: {{ .Values.probes.startupProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.startupProbe.periodSeconds}}
{{- end }} {{- end }}
volumeMounts: volumeMounts:
- mountPath: /opt/tip-wlan/certs/client_keystore.jks - mountPath: /opt/tip-wlan/certs/client_keystore.jks
@@ -120,8 +110,6 @@ spec:
- mountPath: /app/port-forwarding-gateway/logback.xml - mountPath: /app/port-forwarding-gateway/logback.xml
name: configuration name: configuration
subPath: logback.xml subPath: logback.xml
{{- include "jmxPrometheus.configVolumeMount" . | nindent 10 }}
{{- include "jmxPrometheus.tmpVolumeMount" . | nindent 10 }}
ports: ports:
- name: {{ .Values.service.name1 }} - name: {{ .Values.service.name1 }}
@@ -136,7 +124,6 @@ spec:
protocol: TCP protocol: TCP
{{- end }} {{- end }}
{{- include "container.dev.apDebugPorts" . | nindent 10 }} {{- include "container.dev.apDebugPorts" . | nindent 10 }}
{{- include "jmxPrometheus.port" . | nindent 12 }}
resources: resources:
{{- toYaml .Values.resources | nindent 12 }} {{- toYaml .Values.resources | nindent 12 }}
{{- with .Values.nodeSelector }} {{- with .Values.nodeSelector }}
@@ -154,11 +141,9 @@ spec:
volumes: volumes:
- name: certificates - name: certificates
secret: secret:
secretName: tip-common-kafka-client-certs secretName: {{ include "common.fullname" . }}-certs
defaultMode: 0400 defaultMode: 0400
- name: configuration - name: configuration
configMap: configMap:
name: {{ include "common.fullname" . }}-config name: {{ include "common.fullname" . }}-config
defaultMode: 0755 defaultMode: 0755
{{- include "jmxPrometheus.configVolume" . | nindent 6 }}
{{- include "jmxPrometheus.tmpVolume" . | nindent 6 }}

View File

@@ -1 +0,0 @@
{{ include "jmxPrometheus.podMonitor" . }}

View File

@@ -1,5 +1,14 @@
apiVersion: v1 apiVersion: v1
kind: Secret kind: Secret
metadata:
name: {{ include "common.fullname" . }}-certs
namespace: {{ include "common.namespace" . }}
type: Opaque
data:
{{ tpl (.Files.Glob "resources/config/certs/*").AsSecrets . | indent 2 }}
---
apiVersion: v1
kind: Secret
metadata: metadata:
name: {{ include "common.fullname" . }}-creds name: {{ include "common.fullname" . }}-creds
namespace: {{ include "common.namespace" . }} namespace: {{ include "common.namespace" . }}
@@ -10,4 +19,6 @@ metadata:
heritage: {{ .Release.Service | quote }} heritage: {{ .Release.Service | quote }}
type: Opaque type: Opaque
data: data:
websocketSessionTokenEncKey: {{ .Values.creds.websocketSessionTokenEncKey | b64enc | quote }} {{- if .Values.creds.enabled }}
websocketSessionTokenEncKey: {{ .Values.creds.websocketSessionTokenEncKey | b64enc | quote }}
{{- end }}

View File

@@ -30,7 +30,7 @@ spec:
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }} {{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefixExt | default .Values.nodePortPrefixExt }}{{ .Values.service.nodePort3 }} nodePort: {{ .Values.global.nodePortPrefixExt | default .Values.nodePortPrefixExt }}{{ .Values.service.nodePort3 }}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- include "service.dev.apDebugPorts" . | nindent 2 }} {{- include "service.dev.apDebugPorts" . | nindent 2 }}
selector: selector:
{{- include "common.selectorLabels" . | nindent 4 }} {{- include "common.selectorLabels" . | nindent 4 }}

View File

@@ -11,7 +11,7 @@ metadata:
spec: spec:
containers: containers:
- name: wget - name: wget
image: {{ .Values.testConnectionImage.registry }}/{{ .Values.testConnectionImage.repository }}:{{ .Values.testConnectionImage.tag }} image: busybox
command: ['wget'] command: ['wget']
args: ['{{ include "common.fullname" . }}:{{ .Values.service.port1 }}'] args: ['{{ include "common.fullname" . }}:{{ .Values.service.port1 }}']
restartPolicy: Never restartPolicy: Never

View File

@@ -11,17 +11,7 @@ replicaCount: 1
image: image:
name: wlan-port-forwarding-gateway-service name: wlan-port-forwarding-gateway-service
tag: 1.3.0-SNAPSHOT tag: 0.0.1-SNAPSHOT
opensyncGwReadinessImage:
registry: tip-docker-cache-repo.jfrog.io
repository: library/alpine
tag: 3.13
testConnectionImage:
registry: tip-docker-cache-repo.jfrog.io
repository: library/alpine
tag: 3.13
nameOverride: "" nameOverride: ""
fullnameOverride: "" fullnameOverride: ""
@@ -60,9 +50,6 @@ probes:
successThreshold: 1 successThreshold: 1
failureThreshold: 3 failureThreshold: 3
scheme: HTTPS scheme: HTTPS
startupProbe:
periodSeconds: 30
failureThreshold: 500
securityContext: securityContext:
privileged: true privileged: true
@@ -77,7 +64,7 @@ securityContext:
testsEnabled: false testsEnabled: false
# Enable/Disable Remote debugging # Enable/Disable Remote debugging
debug: debug:
enabled: false enabled: false
service: service:
@@ -97,11 +84,11 @@ service:
# e.g. nodePortPrefixExt = 304, accessPointDebugPortRange.start = 10, accessPointDebugPortRange.length = 2, resulting ports = 30410, 30411 # e.g. nodePortPrefixExt = 304, accessPointDebugPortRange.start = 10, accessPointDebugPortRange.length = 2, resulting ports = 30410, 30411
# These ports are the ports that Java would choose as Local ports whenever it opens up # These ports are the ports that Java would choose as Local ports whenever it opens up
# a developer session for debug. # a developer session for debug.
# These ports are therefore assigned as container ports (in the deployment.yaml), so we # These ports are therefore assigned as container ports (in the deployment.yaml), so we
# can reach them from inside the cluster. # can reach them from inside the cluster.
# Also, we open equivalent NodePorts on the Kubernetes cluster (see service.yaml), so a developer # Also, we open equivalent NodePorts on the Kubernetes cluster (see service.yaml), so a developer
# can connect to it to debug an AP. # can connect to it to debug an AP.
# NOTE: Another way to reach these container ports without opening NodePorts was to use # NOTE: Another way to reach these container ports without opening NodePorts was to use
# kubectl port forwarding. However, we dont want the developer to install kubectl. # kubectl port forwarding. However, we dont want the developer to install kubectl.
accessPointDebugPortRange: accessPointDebugPortRange:
@@ -109,6 +96,7 @@ accessPointDebugPortRange:
length: 26 length: 26
creds: creds:
enabled: true
websocketSessionTokenEncKey: DUMMY_ENC_KEY websocketSessionTokenEncKey: DUMMY_ENC_KEY
opensyncgw: opensyncgw:
@@ -123,9 +111,9 @@ ingress:
hosts: hosts:
- host: example.com - host: example.com
paths: [ paths: [
/portal /portal
] ]
tls: tls:
- secretName: portal-secret - secretName: portal-secret
hosts: hosts:
- example.com - example.com
@@ -135,7 +123,7 @@ resources:
cpu: 500m cpu: 500m
memory: 350Mi memory: 350Mi
requests: requests:
cpu: 10m cpu: 50m
memory: 280Mi memory: 280Mi
nodeSelector: {} nodeSelector: {}
@@ -162,3 +150,4 @@ env:
service: wlan-port-forwarding-gateway-service service: wlan-port-forwarding-gateway-service
port: 7070 port: 7070

View File

@@ -0,0 +1,2 @@
Contains certs needed for this service to start.
Please refer to page: https://telecominfraproject.atlassian.net/wiki/spaces/WIFI/pages/262176803/Pre-requisites+before+deploying+Tip-Wlan+solution

View File

@@ -7,7 +7,7 @@
<!-- For professional support please see --> <!-- For professional support please see -->
<!-- http://www.qos.ch/shop/products/professionalSupport --> <!-- http://www.qos.ch/shop/products/professionalSupport -->
<!-- --> <!-- -->
<configuration scan="true" scanPeriod="30 seconds"> <configuration>
<conversionRule conversionWord="filteredStack" <conversionRule conversionWord="filteredStack"
converterClass="com.telecominfraproject.wlan.server.exceptions.logback.ExceptionCompressingConverter" /> converterClass="com.telecominfraproject.wlan.server.exceptions.logback.ExceptionCompressingConverter" />
@@ -46,6 +46,7 @@
</triggeringPolicy> </triggeringPolicy>
</appender> </appender>
<!-- <!--
details: http://logback.qos.ch/manual/configuration.html#auto_configuration details: http://logback.qos.ch/manual/configuration.html#auto_configuration
@@ -70,5 +71,5 @@
<appender-ref ref="stdout"/> <appender-ref ref="stdout"/>
<appender-ref ref="logfile"/> <appender-ref ref="logfile"/>
</root> </root>
</configuration> </configuration>

View File

@@ -1,14 +0,0 @@
truststorePass={{ .Values.global.certificatePasswords.sslTruststore }}
truststoreFile=file:///opt/tip-wlan/certs/truststore.jks
truststoreType=JKS
truststoreProvider=SUN
keyAlias=1
keystorePass={{ .Values.global.certificatePasswords.sslKeystore }}
keystoreFile=file:///opt/tip-wlan/certs/server.pkcs12
keystoreType=pkcs12
keystoreProvider=SunJSSE
sslProtocol=TLS
sslEnabledProtocols=TLSv1.2,TLSv1.1,TLSv1
sslCiphers=TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA

View File

@@ -4,4 +4,4 @@ metadata:
name: {{ include "common.fullname" . }}-log-config name: {{ include "common.fullname" . }}-log-config
namespace: {{ include "common.namespace" . }} namespace: {{ include "common.namespace" . }}
data: data:
{{ (.Files.Glob "resources/config/logback.xml").AsConfig | indent 2 }} {{ tpl (.Files.Glob "resources/config/logback.xml").AsConfig . | indent 2 }}

View File

@@ -1,9 +1,7 @@
{{- if .Values.ingress.enabled -}} {{- if .Values.ingress.enabled -}}
{{- $fullName := include "common.fullname" . -}} {{- $fullName := include "common.fullname" . -}}
{{- $svcPort := .Values.service.port1 -}} {{- $svcPort := .Values.service.port1 -}}
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }} {{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1
{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
apiVersion: networking.k8s.io/v1beta1 apiVersion: networking.k8s.io/v1beta1
{{- else -}} {{- else -}}
apiVersion: extensions/v1beta1 apiVersion: extensions/v1beta1
@@ -36,35 +34,15 @@ spec:
paths: paths:
{{- if $.Values.ingress.lb_https_redirect }} {{- if $.Values.ingress.lb_https_redirect }}
- path: /* - path: /*
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
pathType: ImplementationSpecific
{{- end }}
backend: backend:
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
service:
name: ssl-redirect
port:
name: use-annotation
{{- else -}}
serviceName: ssl-redirect serviceName: ssl-redirect
servicePort: use-annotation servicePort: use-annotation
{{- end }}
{{- end }} {{- end }}
{{- range .paths }} {{- range .paths }}
- path: {{ . }} - path: {{ . }}
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
pathType: ImplementationSpecific
{{- end }}
backend: backend:
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
service:
name: {{ $fullName }}
port:
number: {{ $svcPort }}
{{- else -}}
serviceName: {{ $fullName }} serviceName: {{ $fullName }}
servicePort: {{ $svcPort }} servicePort: {{ $svcPort }}
{{- end -}}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- end }} {{- end }}

View File

@@ -1 +0,0 @@
{{ include "jmxPrometheus.podMonitor" . }}

View File

@@ -1,10 +1,8 @@
{{- if not .Values.tlsv13.enabled }}
apiVersion: v1 apiVersion: v1
kind: Secret kind: Secret
metadata: metadata:
name: {{ include "common.fullname" . }}-ssl-config name: {{ include "common.fullname" . }}-certs
namespace: {{ include "common.namespace" . }} namespace: {{ include "common.namespace" . }}
type: Opaque type: Opaque
data: data:
ssl.properties: {{ tpl ( .Files.Get "resources/config/ssl.properties" ) . | b64enc }} {{ tpl (.Files.Glob "resources/config/certs/*").AsSecrets . | indent 2 }}
{{- end }}

View File

@@ -7,7 +7,6 @@ metadata:
labels: labels:
{{- include "common.labels" . | nindent 4 }} {{- include "common.labels" . | nindent 4 }}
spec: spec:
podManagementPolicy: Parallel
serviceName: {{ include "common.fullname" . }} serviceName: {{ include "common.fullname" . }}
replicas: {{ .Values.replicaCount }} replicas: {{ .Values.replicaCount }}
selector: selector:
@@ -45,18 +44,16 @@ spec:
serviceAccountName: {{ include "common.serviceAccountName" . }} serviceAccountName: {{ include "common.serviceAccountName" . }}
securityContext: securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }} {{- toYaml .Values.podSecurityContext | nindent 8 }}
initContainers:
{{- include "jmxPrometheus.initContainer" . | nindent 6 }}
containers: containers:
- name: {{ .Chart.Name }} - name: {{ .Chart.Name }}
securityContext: securityContext:
{{- toYaml .Values.securityContext | nindent 12 }} {{- toYaml .Values.securityContext | nindent 12 }}
{{- if .Values.global.testingEnabled }} {{- if .Values.global.testingEnabled }}
image: {{ .Values.global.repository.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }}-{{.Values.global.testingTimestamp}} image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}-{{.Values.global.testingTimestamp}}
{{- else }} {{- else }}
image: {{ .Values.global.repository.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }} image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
{{- end }} {{- end }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }} imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
env: env:
{{- include "common.env" . | nindent 12 }} {{- include "common.env" . | nindent 12 }}
- name: FILE_STORE_DIRECTORY_INTERNAL - name: FILE_STORE_DIRECTORY_INTERNAL
@@ -74,7 +71,7 @@ spec:
- name: tip_wlan_maxHttpThreads - name: tip_wlan_maxHttpThreads
value: "{{ .Values.scalability.tip_wlan_maxHttpThreads }}" value: "{{ .Values.scalability.tip_wlan_maxHttpThreads }}"
- name: JVM_MEM_OPTIONS - name: JVM_MEM_OPTIONS
value: "{{ .Values.scalability.JVM_MEM_OPTIONS }} {{ include "jmxPrometheus.jvmOpts" . }}" value: "{{ .Values.scalability.JVM_MEM_OPTIONS }}"
{{- if .Values.probes.enabled }} {{- if .Values.probes.enabled }}
livenessProbe: livenessProbe:
httpGet: httpGet:
@@ -96,13 +93,6 @@ spec:
failureThreshold: {{ .Values.probes.readinessProbe.failureThreshold }} failureThreshold: {{ .Values.probes.readinessProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.readinessProbe.periodSeconds }} periodSeconds: {{ .Values.probes.readinessProbe.periodSeconds }}
successThreshold: {{ .Values.probes.readinessProbe.successThreshold }} successThreshold: {{ .Values.probes.readinessProbe.successThreshold }}
startupProbe:
httpGet:
path: /ping
port: {{ .Values.service.port1 }}
scheme: {{ .Values.probes.readinessProbe.scheme }}
failureThreshold: {{ .Values.probes.startupProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.startupProbe.periodSeconds}}
{{- end }} {{- end }}
volumeMounts: volumeMounts:
- mountPath: /opt/tip-wlan/certs/client_keystore.jks - mountPath: /opt/tip-wlan/certs/client_keystore.jks
@@ -114,16 +104,11 @@ spec:
- mountPath: /opt/tip-wlan/certs/server.pkcs12 - mountPath: /opt/tip-wlan/certs/server.pkcs12
name: certificates name: certificates
subPath: server.pkcs12 subPath: server.pkcs12
- mountPath: /app/portal/log - mountPath: /app/portal/logback.xml
name: logback-config name: logback-config
{{- if not .Values.tlsv13.enabled }} subPath: logback.xml
- mountPath: /app/portal/certs
name: ssl-config
{{- end }}
- mountPath: {{ $file_store_path }} - mountPath: {{ $file_store_path }}
name: file-store-data name: file-store-data
{{- include "jmxPrometheus.configVolumeMount" . | nindent 10 }}
{{- include "jmxPrometheus.tmpVolumeMount" . | nindent 10 }}
ports: ports:
- name: {{ .Values.service.name1 }} - name: {{ .Values.service.name1 }}
containerPort: {{ .Values.service.port1 }} containerPort: {{ .Values.service.port1 }}
@@ -136,7 +121,6 @@ spec:
containerPort: {{ .Values.service.port3 }} containerPort: {{ .Values.service.port3 }}
protocol: TCP protocol: TCP
{{- end }} {{- end }}
{{- include "jmxPrometheus.port" . | nindent 12 }}
resources: resources:
{{- toYaml .Values.resources | nindent 12 }} {{- toYaml .Values.resources | nindent 12 }}
{{- with .Values.nodeSelector }} {{- with .Values.nodeSelector }}
@@ -155,21 +139,14 @@ spec:
volumes: volumes:
- name: certificates - name: certificates
secret: secret:
secretName: tip-common-postgres-client-certs secretName: {{ include "common.fullname" . }}-certs
- name: logback-config - name: logback-config
configMap: configMap:
name: {{ include "common.fullname" . }}-log-config name: {{ include "common.fullname" . }}-log-config
{{- if not .Values.tlsv13.enabled }}
- name: ssl-config
secret:
secretName: {{ include "common.fullname" . }}-ssl-config
{{- end }}
{{- if not .Values.persistence.enabled }} {{- if not .Values.persistence.enabled }}
- name: file-store-data - name: file-store-data
emptyDir: {} emptyDir: {}
{{- end }} {{- end }}
{{- include "jmxPrometheus.configVolume" . | nindent 6 }}
{{- include "jmxPrometheus.tmpVolume" . | nindent 6 }}
{{- if .Values.persistence.enabled }} {{- if .Values.persistence.enabled }}
volumeClaimTemplates: volumeClaimTemplates:
- metadata: - metadata:

View File

@@ -11,7 +11,8 @@ metadata:
spec: spec:
containers: containers:
- name: wget - name: wget
image: {{ .Values.testConnectionImage.registry }}/{{ .Values.testConnectionImage.repository }}:{{ .Values.testConnectionImage.tag }} image: busybox
command: ['wget']
args: ['{{ include "common.fullname" . }}:{{ .Values.service.port1 }}'] args: ['{{ include "common.fullname" . }}:{{ .Values.service.port1 }}']
restartPolicy: Never restartPolicy: Never
{{- end }} {{- end }}

View File

@@ -9,14 +9,11 @@
replicaCount: 1 replicaCount: 1
image: image:
name: wlan-portal-service name: wlan-portal-service
tag: 1.3.0-SNAPSHOT tag: 0.0.1-SNAPSHOT
testConnectionImage:
registry: tip-docker-cache-repo.jfrog.io
repository: library/alpine
tag: 3.13
nameOverride: "" nameOverride: ""
fullnameOverride: "" fullnameOverride: ""
@@ -51,9 +48,6 @@ probes:
successThreshold: 1 successThreshold: 1
failureThreshold: 3 failureThreshold: 3
scheme: HTTPS scheme: HTTPS
startupProbe:
periodSeconds: 30
failureThreshold: 500
securityContext: {} securityContext: {}
# capabilities: # capabilities:
@@ -103,15 +97,15 @@ ingress:
annotations: {} annotations: {}
# kubernetes.io/ingress.class: nginx # kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true" # kubernetes.io/tls-acme: "true"
hosts: [] hosts:
# - host: wlan-portal-service.local - host: wlan-portal-service.zone3.lab.connectus.ai
# paths: [ paths: [
# /portal /portal
# ] ]
tls: [] tls:
# - secretName: portal-secret - secretName: portal-secret
# hosts: hosts:
# - wlan-portal-service.local - wlan-portal-service.zone3.lab.connectus.ai
resources: resources:
limits: limits:
@@ -141,7 +135,7 @@ affinity: {}
# Transport-Server-passthrough properties # Transport-Server-passthrough properties
tsp: tsp:
host: wlan-portal-service.local host: wlan-portal-service.zone3.lab.connectus.ai
env: env:
protocol: https protocol: https
@@ -158,6 +152,3 @@ env:
# on the PV # on the PV
filestore: filestore:
internal: "/tmp/filestore" internal: "/tmp/filestore"
tlsv13:
enabled: true

View File

@@ -0,0 +1,2 @@
Contains certs needed for this service to start.
Please refer to page: https://telecominfraproject.atlassian.net/wiki/spaces/WIFI/pages/262176803/Pre-requisites+before+deploying+Tip-Wlan+solution

View File

@@ -46,6 +46,7 @@
</triggeringPolicy> </triggeringPolicy>
</appender> </appender>
<!-- <!--
details: http://logback.qos.ch/manual/configuration.html#auto_configuration details: http://logback.qos.ch/manual/configuration.html#auto_configuration
@@ -70,5 +71,5 @@
<appender-ref ref="stdout"/> <appender-ref ref="stdout"/>
<appender-ref ref="logfile"/> <appender-ref ref="logfile"/>
</root> </root>
</configuration> </configuration>

View File

@@ -4,11 +4,11 @@ metadata:
name: {{ include "common.fullname" . }}-log-config name: {{ include "common.fullname" . }}-log-config
namespace: {{ include "common.namespace" . }} namespace: {{ include "common.namespace" . }}
data: data:
{{ (.Files.Glob "resources/config/logback.xml").AsConfig | indent 2 }} {{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
datasource.properties: |- datasource.properties: |-
singleDataSource.url=jdbc:postgresql://{{- include "postgresql.service" . -}}:5432/prov_db singleDataSource.url=jdbc:postgresql://{{- include "postgresql.service" . -}}:5432/prov_db
singleDataSource.username={{ .Values.global.postgres.singleDataSource.username }} singleDataSource.username={{ .Values.creds.postgres.singleDataSourceUsername }}
singleDataSource.password={{ .Values.global.postgres.singleDataSource.password }} singleDataSource.password={{ .Values.creds.postgres.singleDataSourcePassword }}
singleDataSource.driverClass=org.postgresql.Driver singleDataSource.driverClass=org.postgresql.Driver
singleDataSource.ssl=true singleDataSource.ssl=true
singleDataSource.sslmode=verify-ca singleDataSource.sslmode=verify-ca
@@ -16,4 +16,4 @@ data:
singleDataSource.sslfactory=org.postgresql.ssl.LibPQFactory singleDataSource.sslfactory=org.postgresql.ssl.LibPQFactory
singleDataSource.sslkey=/opt/tip-wlan/certs/postgresclient.p12 singleDataSource.sslkey=/opt/tip-wlan/certs/postgresclient.p12
singleDataSource.sslrootcert=/opt/tip-wlan/certs/cacert.pem singleDataSource.sslrootcert=/opt/tip-wlan/certs/cacert.pem
singleDataSource.sslkeypassword={{ .Values.global.certificatePasswords.sslKey }} singleDataSource.sslkeypassword={{ .Values.creds.postgres.singleDataSourceSslKeyPassword }}

View File

@@ -23,9 +23,8 @@ spec:
securityContext: securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }} {{- toYaml .Values.podSecurityContext | nindent 8 }}
initContainers: initContainers:
{{- include "jmxPrometheus.initContainer" . | nindent 8 }}
- name: wait-for-services - name: wait-for-services
image: {{ .Values.waitForServicesImage.registry }}/{{ .Values.waitForServicesImage.repository }}:{{ .Values.waitForServicesImage.tag }} image: opsfleet/depends-on:latest
args: args:
- "-service={{ .Release.Name }}-postgresql" - "-service={{ .Release.Name }}-postgresql"
- -check_interval=5 - -check_interval=5
@@ -53,8 +52,8 @@ spec:
secretKeyRef: secretKeyRef:
name: {{ include "common.fullname" . }}-creds name: {{ include "common.fullname" . }}-creds
key: schema-repo-password key: schema-repo-password
image: {{ .Values.postgresql.registry }}/{{ .Values.postgresql.repository }}:{{ .Values.postgresql.tag }} image: {{ .Values.postgresql.image }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }} imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
command: command:
- sh - sh
- -c - -c
@@ -62,8 +61,8 @@ spec:
apt update apt update
apt -y install curl apt -y install curl
echo "***** Fetching latest cloud-sdk-schema-postgresql for DB and Tables sql from JFrog *****" echo "***** Fetching latest cloud-sdk-schema-postgresql for DB and Tables sql from JFrog *****"
curl --insecure -u$SCHEMA_REPO_USER:$SCHEMA_REPO_PASSWORD -O "https://tip-tip-wlan-cloud-docker-repo.jfrog.io/artifactory/tip-wlan-cloud-schemas/1.3.0-SNAPSHOT/sql/cloud-sdk-schema-postgresql-db-user.sql" curl --insecure -u$SCHEMA_REPO_USER:$SCHEMA_REPO_PASSWORD -O "https://tip-tip-wlan-cloud-docker-repo.jfrog.io/artifactory/tip-wlan-cloud-schemas/0.0.1-SNAPSHOT/sql/cloud-sdk-schema-postgresql-db-user.sql"
curl --insecure -u$SCHEMA_REPO_USER:$SCHEMA_REPO_PASSWORD -O "https://tip-tip-wlan-cloud-docker-repo.jfrog.io/artifactory/tip-wlan-cloud-schemas/1.3.0-SNAPSHOT/sql/cloud-sdk-schema-postgresql-tables.sql" curl --insecure -u$SCHEMA_REPO_USER:$SCHEMA_REPO_PASSWORD -O "https://tip-tip-wlan-cloud-docker-repo.jfrog.io/artifactory/tip-wlan-cloud-schemas/0.0.1-SNAPSHOT/sql/cloud-sdk-schema-postgresql-tables.sql"
echo "***** Now executing cloud-sdk-schema-postgresql-db-user.sql on host {{ $pg }} and creating db prov_db and user tip_user using User Postgres. This uses full client-cert authentication *****" echo "***** Now executing cloud-sdk-schema-postgresql-db-user.sql on host {{ $pg }} and creating db prov_db and user tip_user using User Postgres. This uses full client-cert authentication *****"
### Observed that PSQL was unable to resolve the Postgres-service host because the postgres service wasnt ### Observed that PSQL was unable to resolve the Postgres-service host because the postgres service wasnt
### really ready when running Postgres in Master-Slave config... hence the below retry-logic ### really ready when running Postgres in Master-Slave config... hence the below retry-logic
@@ -120,11 +119,11 @@ spec:
securityContext: securityContext:
{{- toYaml .Values.securityContext | nindent 12 }} {{- toYaml .Values.securityContext | nindent 12 }}
{{- if .Values.global.testingEnabled }} {{- if .Values.global.testingEnabled }}
image: {{ .Values.global.repository.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }}-{{.Values.global.testingTimestamp}} image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}-{{.Values.global.testingTimestamp}}
{{- else }} {{- else }}
image: {{ .Values.global.repository.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }} image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
{{- end }} {{- end }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }} imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
env: env:
{{- include "common.env" . | nindent 12 }} {{- include "common.env" . | nindent 12 }}
- name: tip_wlan_AsyncExecutor_CorePoolSize - name: tip_wlan_AsyncExecutor_CorePoolSize
@@ -140,7 +139,7 @@ spec:
- name: tip_wlan_maxHttpThreads - name: tip_wlan_maxHttpThreads
value: "{{ .Values.scalability.tip_wlan_maxHttpThreads }}" value: "{{ .Values.scalability.tip_wlan_maxHttpThreads }}"
- name: JVM_MEM_OPTIONS - name: JVM_MEM_OPTIONS
value: "{{ .Values.scalability.JVM_MEM_OPTIONS }} {{ include "jmxPrometheus.jvmOpts" . }}" value: "{{ .Values.scalability.JVM_MEM_OPTIONS }}"
- name: singleDataSource_maxTotalConnections - name: singleDataSource_maxTotalConnections
value: "{{ .Values.scalability.singleDataSource_maxTotalConnections }}" value: "{{ .Values.scalability.singleDataSource_maxTotalConnections }}"
- name: singleDataSource_maxIdleConnections - name: singleDataSource_maxIdleConnections
@@ -170,13 +169,6 @@ spec:
failureThreshold: {{ .Values.probes.readinessProbe.failureThreshold }} failureThreshold: {{ .Values.probes.readinessProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.readinessProbe.periodSeconds }} periodSeconds: {{ .Values.probes.readinessProbe.periodSeconds }}
successThreshold: {{ .Values.probes.readinessProbe.successThreshold }} successThreshold: {{ .Values.probes.readinessProbe.successThreshold }}
startupProbe:
httpGet:
path: /ping
port: {{ .Values.service.port2 }}
scheme: {{ .Values.probes.readinessProbe.scheme }}
failureThreshold: {{ .Values.probes.startupProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.startupProbe.periodSeconds}}
{{- end }} {{- end }}
volumeMounts: volumeMounts:
- mountPath: /opt/tip-wlan/certs/client_keystore.jks - mountPath: /opt/tip-wlan/certs/client_keystore.jks
@@ -203,8 +195,6 @@ spec:
- mountPath: /app/prov/datasource.properties - mountPath: /app/prov/datasource.properties
name: logback-config name: logback-config
subPath: datasource.properties subPath: datasource.properties
{{- include "jmxPrometheus.configVolumeMount" . | nindent 10 }}
{{- include "jmxPrometheus.tmpVolumeMount" . | nindent 10 }}
ports: ports:
- name: {{ .Values.service.name1 }} - name: {{ .Values.service.name1 }}
containerPort: {{ .Values.service.port1 }} containerPort: {{ .Values.service.port1 }}
@@ -217,7 +207,6 @@ spec:
containerPort: {{ .Values.service.port3 }} containerPort: {{ .Values.service.port3 }}
protocol: TCP protocol: TCP
{{- end }} {{- end }}
{{- include "jmxPrometheus.port" . | nindent 12 }}
resources: resources:
{{- toYaml .Values.resources | nindent 12 }} {{- toYaml .Values.resources | nindent 12 }}
{{- with .Values.nodeSelector }} {{- with .Values.nodeSelector }}
@@ -235,7 +224,7 @@ spec:
volumes: volumes:
- name: certificates - name: certificates
secret: secret:
secretName: tip-common-postgres-client-certs secretName: {{ include "common.fullname" . }}-certs
defaultMode: 0400 defaultMode: 0400
- name: logback-config - name: logback-config
configMap: configMap:
@@ -244,5 +233,3 @@ spec:
emptyDir: {} emptyDir: {}
- name: dshm - name: dshm
emptyDir: {} emptyDir: {}
{{- include "jmxPrometheus.configVolume" . | nindent 6 }}
{{- include "jmxPrometheus.tmpVolume" . | nindent 6 }}

View File

@@ -1 +0,0 @@
{{ include "jmxPrometheus.podMonitor" . }}

View File

@@ -1,5 +1,14 @@
apiVersion: v1 apiVersion: v1
kind: Secret kind: Secret
metadata:
name: {{ include "common.fullname" . }}-certs
namespace: {{ include "common.namespace" . }}
type: Opaque
data:
{{ tpl (.Files.Glob "resources/config/certs/*").AsSecrets . | indent 2 }}
---
apiVersion: v1
kind: Secret
metadata: metadata:
name: {{ include "common.fullname" . }}-creds name: {{ include "common.fullname" . }}-creds
namespace: {{ include "common.namespace" . }} namespace: {{ include "common.namespace" . }}
@@ -10,7 +19,9 @@ metadata:
heritage: {{ .Release.Service | quote }} heritage: {{ .Release.Service | quote }}
type: Opaque type: Opaque
data: data:
postgresql-password: {{ .Values.global.postgres.password | b64enc | quote }} {{- if .Values.creds.enabled }}
tipuser-password: {{ .Values.global.tip.password | b64enc | quote }} postgresql-password: {{ .Values.creds.db.postgresUser.password | b64enc | quote }}
schema-repo-user: {{ .Values.global.schema.username | b64enc | quote }} tipuser-password: {{ .Values.creds.db.tipUser.password | b64enc | quote }}
schema-repo-password: {{ .Values.global.schema.password | b64enc | quote }} schema-repo-user: {{ .Values.creds.schema_repo.username | b64enc | quote }}
schema-repo-password: {{ .Values.creds.schema_repo.password | b64enc | quote }}
{{- end }}

View File

@@ -30,6 +30,6 @@ spec:
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }} {{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefix }}{{ .Values.service.nodePort3 }} nodePort: {{ .Values.global.nodePortPrefix }}{{ .Values.service.nodePort3 }}
{{- end }} {{- end }}
{{- end }} {{- end }}
selector: selector:
{{- include "common.selectorLabels" . | nindent 4 }} {{- include "common.selectorLabels" . | nindent 4 }}

View File

@@ -11,7 +11,7 @@ metadata:
spec: spec:
containers: containers:
- name: wget - name: wget
image: {{ .Values.testConnectionImage.registry }}/{{ .Values.testConnectionImage.repository }}:{{ .Values.testConnectionImage.tag }} image: busybox
command: ['wget'] command: ['wget']
args: ['{{ include "common.fullname" . }}:{{ .Values.service.port1 }}'] args: ['{{ include "common.fullname" . }}:{{ .Values.service.port1 }}']
restartPolicy: Never restartPolicy: Never

View File

@@ -11,17 +11,7 @@ replicaCount: 1
image: image:
name: wlan-prov-service name: wlan-prov-service
tag: 1.3.0-SNAPSHOT tag: 0.0.1-SNAPSHOT
waitForServicesImage:
registry: tip-docker-cache-repo.jfrog.io
repository: opsfleet/depends-on
tag: v1.0.0
testConnectionImage:
registry: tip-docker-cache-repo.jfrog.io
repository: library/alpine
tag: 3.13
nameOverride: "" nameOverride: ""
fullnameOverride: "" fullnameOverride: ""
@@ -56,9 +46,6 @@ probes:
successThreshold: 1 successThreshold: 1
failureThreshold: 3 failureThreshold: 3
scheme: HTTPS scheme: HTTPS
startupProbe:
periodSeconds: 30
failureThreshold: 500
securityContext: {} securityContext: {}
# capabilities: # capabilities:
@@ -71,6 +58,22 @@ securityContext: {}
# Enable/Disable Helm tests # Enable/Disable Helm tests
testsEnabled: false testsEnabled: false
creds:
enabled: true
db:
postgresUser:
password: DUMMY_POSTGRES_PASSWORD
tipUser:
password: DUMMY_TIPUSER_PASSWORD
schema_repo:
username: DUMMY_SCHEMA_REPO_USERNAME
password: DUMMY_SCHEMA_REPO_PASSWORD
postgres:
singleDataSourceUsername: DUMMY_POSTGRES_USER
singleDataSourcePassword: DUMMY_POSTGRES_PASSWORD
singleDataSourceSslKeyPassword: DUMMY_SSL_PASSWORD
# Enable/Disable Remote debugging # Enable/Disable Remote debugging
debug: debug:
enabled: false enabled: false
@@ -125,10 +128,10 @@ ingress:
resources: resources:
limits: limits:
cpu: 500m cpu: 500m
memory: 600Mi memory: 320Mi
requests: requests:
cpu: 10m cpu: 50m
memory: 600Mi memory: 300Mi
nodeSelector: {} nodeSelector: {}
@@ -138,9 +141,7 @@ affinity: {}
postgresql: postgresql:
url: postgresql url: postgresql
registry: tip-docker-cache-repo.jfrog.io image: postgres:latest
repository: library/postgres
tag: 11
env: env:
protocol: https protocol: https

View File

@@ -0,0 +1,2 @@
Contains certs needed for this service to start.
Please refer to page: https://telecominfraproject.atlassian.net/wiki/spaces/WIFI/pages/262176803/Pre-requisites+before+deploying+Tip-Wlan+solution

View File

@@ -46,6 +46,7 @@
</triggeringPolicy> </triggeringPolicy>
</appender> </appender>
<!-- <!--
details: http://logback.qos.ch/manual/configuration.html#auto_configuration details: http://logback.qos.ch/manual/configuration.html#auto_configuration
@@ -66,6 +67,7 @@
<logger name="com.telecominfraproject.wlan" level="DEBUG"/> <logger name="com.telecominfraproject.wlan" level="DEBUG"/>
<logger name="com.telecominfraproject.wlan.core.server.webconfig.WebGenericConverter" level="OFF"/> <logger name="com.telecominfraproject.wlan.core.server.webconfig.WebGenericConverter" level="OFF"/>
<logger name="com.telecominfraproject.wlan.streams.provisioning.EquipmentConfigPushTrigger" level="TRACE"/> <logger name="com.telecominfraproject.wlan.streams.provisioning.EquipmentConfigPushTrigger" level="TRACE"/>
<logger name="com.telecominfraproject.wlan.streams.kafka.KafkaStreamsConfig" level="TRACE"/> <logger name="com.telecominfraproject.wlan.streams.kafka.KafkaStreamsConfig" level="TRACE"/>
<logger name="com.telecominfraproject.wlan.stream.StreamMessageDispatcher" level="TRACE"/> <logger name="com.telecominfraproject.wlan.stream.StreamMessageDispatcher" level="TRACE"/>
@@ -74,5 +76,5 @@
<appender-ref ref="logfile"/> <appender-ref ref="logfile"/>
<appender-ref ref="stdout"/> <appender-ref ref="stdout"/>
</root> </root>
</configuration> </configuration>

View File

@@ -4,4 +4,4 @@ metadata:
name: {{ include "common.fullname" . }}-log-config name: {{ include "common.fullname" . }}-log-config
namespace: {{ include "common.namespace" . }} namespace: {{ include "common.namespace" . }}
data: data:
{{ (.Files.Glob "resources/config/logback.xml").AsConfig | indent 2 }} {{ tpl (.Files.Glob "resources/config/logback.xml").AsConfig . | indent 2 }}

View File

@@ -23,9 +23,8 @@ spec:
securityContext: securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }} {{- toYaml .Values.podSecurityContext | nindent 8 }}
initContainers: initContainers:
{{- include "jmxPrometheus.initContainer" . | nindent 8 }}
- name: wait-for-services - name: wait-for-services
image: {{ .Values.waitForServicesImage.registry }}/{{ .Values.waitForServicesImage.repository }}:{{ .Values.waitForServicesImage.tag }} image: opsfleet/depends-on:latest
args: args:
- "-service={{ .Release.Name }}-kafka-headless" - "-service={{ .Release.Name }}-kafka-headless"
- -check_interval=5 - -check_interval=5
@@ -34,11 +33,11 @@ spec:
securityContext: securityContext:
{{- toYaml .Values.securityContext | nindent 12 }} {{- toYaml .Values.securityContext | nindent 12 }}
{{- if .Values.global.testingEnabled }} {{- if .Values.global.testingEnabled }}
image: {{ .Values.global.repository.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }}-{{.Values.global.testingTimestamp}} image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}-{{.Values.global.testingTimestamp}}
{{- else }} {{- else }}
image: {{ .Values.global.repository.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }} image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
{{- end }} {{- end }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }} imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
env: env:
{{- include "common.env" . | nindent 12 }} {{- include "common.env" . | nindent 12 }}
- name: tip.wlan.kafka.bootstrapServers - name: tip.wlan.kafka.bootstrapServers
@@ -83,7 +82,7 @@ spec:
- name: tip_wlan_maxHttpThreads - name: tip_wlan_maxHttpThreads
value: "{{ .Values.scalability.tip_wlan_maxHttpThreads }}" value: "{{ .Values.scalability.tip_wlan_maxHttpThreads }}"
- name: JVM_MEM_OPTIONS - name: JVM_MEM_OPTIONS
value: "{{ .Values.scalability.JVM_MEM_OPTIONS }} {{ include "jmxPrometheus.jvmOpts" . }}" value: "{{ .Values.scalability.JVM_MEM_OPTIONS }}"
{{- if .Values.probes.enabled }} {{- if .Values.probes.enabled }}
livenessProbe: livenessProbe:
@@ -106,13 +105,6 @@ spec:
failureThreshold: {{ .Values.probes.readinessProbe.failureThreshold }} failureThreshold: {{ .Values.probes.readinessProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.readinessProbe.periodSeconds }} periodSeconds: {{ .Values.probes.readinessProbe.periodSeconds }}
successThreshold: {{ .Values.probes.readinessProbe.successThreshold }} successThreshold: {{ .Values.probes.readinessProbe.successThreshold }}
startupProbe:
httpGet:
path: /ping
port: {{ .Values.service.port2 }}
scheme: {{ .Values.probes.readinessProbe.scheme }}
failureThreshold: {{ .Values.probes.startupProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.startupProbe.periodSeconds}}
{{- end }} {{- end }}
volumeMounts: volumeMounts:
- mountPath: /opt/tip-wlan/certs/client_keystore.jks - mountPath: /opt/tip-wlan/certs/client_keystore.jks
@@ -130,8 +122,6 @@ spec:
- mountPath: /app/spc/logback.xml - mountPath: /app/spc/logback.xml
name: logback-config name: logback-config
subPath: logback.xml subPath: logback.xml
{{- include "jmxPrometheus.configVolumeMount" . | nindent 10 }}
{{- include "jmxPrometheus.tmpVolumeMount" . | nindent 10 }}
ports: ports:
- name: {{ .Values.service.name1 }} - name: {{ .Values.service.name1 }}
containerPort: {{ .Values.service.port1 }} containerPort: {{ .Values.service.port1 }}
@@ -144,7 +134,6 @@ spec:
containerPort: {{ .Values.service.port3 }} containerPort: {{ .Values.service.port3 }}
protocol: TCP protocol: TCP
{{- end }} {{- end }}
{{- include "jmxPrometheus.port" . | nindent 12 }}
resources: resources:
{{- toYaml .Values.resources | nindent 12 }} {{- toYaml .Values.resources | nindent 12 }}
{{- with .Values.nodeSelector }} {{- with .Values.nodeSelector }}
@@ -163,9 +152,7 @@ spec:
volumes: volumes:
- name: certificates - name: certificates
secret: secret:
secretName: tip-common-kafka-client-certs secretName: {{ include "common.fullname" . }}-certs
- name: logback-config - name: logback-config
configMap: configMap:
name: {{ include "common.fullname" . }}-log-config name: {{ include "common.fullname" . }}-log-config
{{- include "jmxPrometheus.configVolume" . | nindent 6 }}
{{- include "jmxPrometheus.tmpVolume" . | nindent 6 }}

View File

@@ -1 +0,0 @@
{{ include "jmxPrometheus.podMonitor" . }}

View File

@@ -1,5 +1,14 @@
apiVersion: v1 apiVersion: v1
kind: Secret kind: Secret
metadata:
name: {{ include "common.fullname" . }}-certs
namespace: {{ include "common.namespace" . }}
type: Opaque
data:
{{ tpl (.Files.Glob "resources/config/certs/*").AsSecrets . | indent 2 }}
---
apiVersion: v1
kind: Secret
metadata: metadata:
name: {{ include "common.fullname" . }}-creds name: {{ include "common.fullname" . }}-creds
namespace: {{ include "common.namespace" . }} namespace: {{ include "common.namespace" . }}
@@ -10,6 +19,8 @@ metadata:
heritage: {{ .Release.Service | quote }} heritage: {{ .Release.Service | quote }}
type: Opaque type: Opaque
data: data:
sslKeyPassword: {{ .Values.global.certificatePasswords.sslKey | b64enc | quote }} {{- if .Values.creds.enabled }}
sslKeystorePassword: {{ .Values.global.certificatePasswords.sslKeystore | b64enc | quote }} sslKeyPassword: {{ .Values.creds.sslKeyPassword | b64enc | quote }}
sslTruststorePassword: {{ .Values.global.certificatePasswords.sslTruststore | b64enc | quote }} sslKeystorePassword: {{ .Values.creds.sslKeystorePassword | b64enc | quote }}
sslTruststorePassword: {{ .Values.creds.sslTruststorePassword | b64enc | quote }}
{{- end }}

View File

@@ -30,6 +30,6 @@ spec:
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }} {{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefix }}{{ .Values.service.nodePort3 }} nodePort: {{ .Values.global.nodePortPrefix }}{{ .Values.service.nodePort3 }}
{{- end }} {{- end }}
{{- end }} {{- end }}
selector: selector:
{{- include "common.selectorLabels" . | nindent 4 }} {{- include "common.selectorLabels" . | nindent 4 }}

View File

@@ -11,7 +11,7 @@ metadata:
spec: spec:
containers: containers:
- name: wget - name: wget
image: {{ .Values.testConnectionImage.registry }}/{{ .Values.testConnectionImage.repository }}:{{ .Values.testConnectionImage.tag }} image: busybox
command: ['wget'] command: ['wget']
args: ['{{ include "common.fullname" . }}:{{ .Values.service.port1 }}'] args: ['{{ include "common.fullname" . }}:{{ .Values.service.port1 }}']
restartPolicy: Never restartPolicy: Never

View File

@@ -11,17 +11,7 @@ replicaCount: 1
image: image:
name: wlan-spc-service name: wlan-spc-service
tag: 1.3.0-SNAPSHOT tag: 0.0.1-SNAPSHOT
waitForServicesImage:
registry: tip-docker-cache-repo.jfrog.io
repository: opsfleet/depends-on
tag: v1.0.0
testConnectionImage:
registry: tip-docker-cache-repo.jfrog.io
repository: library/alpine
tag: 3.13
nameOverride: "" nameOverride: ""
fullnameOverride: "" fullnameOverride: ""
@@ -56,9 +46,6 @@ probes:
successThreshold: 1 successThreshold: 1
failureThreshold: 3 failureThreshold: 3
scheme: HTTPS scheme: HTTPS
startupProbe:
periodSeconds: 30
failureThreshold: 500
securityContext: {} securityContext: {}
# capabilities: # capabilities:
@@ -117,10 +104,10 @@ ingress:
resources: resources:
limits: limits:
cpu: 500m cpu: 500m
memory: 400Mi memory: 370Mi
requests: requests:
cpu: 10m cpu: 50m
memory: 400Mi memory: 350Mi
nodeSelector: {} nodeSelector: {}
@@ -128,6 +115,12 @@ tolerations: []
affinity: {} affinity: {}
creds:
enabled: true
sslKeyPassword: DUMMY_PASSWORD
sslKeystorePassword: DUMMY_PASSWORD
sslTruststorePassword: DUMMY_PASSWORD
kafka: kafka:
url: kafka-headless url: kafka-headless

View File

@@ -19,11 +19,12 @@
[authentication] [authentication]
;; If Cassandra has auth enabled, fill out these options ;; If Cassandra has auth enabled, fill out these options
username = cassandra username = cassandra
password = cassandra password = cassandra
; keyspace = ks1 ; keyspace = ks1
[ui] [ui]
;; Whether or not to display query results with colors ;; Whether or not to display query results with colors
color = on color = on
@@ -84,16 +85,19 @@ ssl = true
; request_timeout = 10 ; request_timeout = 10
[csv] [csv]
;; The size limit for parsed fields ;; The size limit for parsed fields
; field_size_limit = 131072 ; field_size_limit = 131072
[tracing] [tracing]
;; The max number of seconds to wait for a trace to complete ;; The max number of seconds to wait for a trace to complete
; max_trace_wait = 10.0 ; max_trace_wait = 10.0
[ssl] [ssl]
certfile = /opt/tip-wlan/certs/cacert.pem certfile = /opt/tip-wlan/certs/cacert.pem
@@ -107,12 +111,14 @@ userkey = /opt/tip-wlan/certs/cassandraserverkey_dec.pem
usercert = /opt/tip-wlan/certs/cassandraservercert.pem usercert = /opt/tip-wlan/certs/cassandraservercert.pem
;; Optional section, overrides default certfile in [ssl] section, if present ;; Optional section, overrides default certfile in [ssl] section, if present
; [certfiles] ; [certfiles]
; 192.168.1.3 = ~/keys/cassandra01.cert ; 192.168.1.3 = ~/keys/cassandra01.cert
; 192.168.1.4 = ~/keys/cassandra02.cert ; 192.168.1.4 = ~/keys/cassandra02.cert
;; Options that are common to both COPY TO and COPY FROM ;; Options that are common to both COPY TO and COPY FROM
; [copy] ; [copy]
@@ -151,6 +157,7 @@ usercert = /opt/tip-wlan/certs/cassandraservercert.pem
; ratefile = ; ratefile =
;; Options specific to COPY TO ;; Options specific to COPY TO
; [copy-to] ; [copy-to]
@@ -177,6 +184,7 @@ usercert = /opt/tip-wlan/certs/cassandraservercert.pem
; encoding = utf8 ; encoding = utf8
;; Options specific to COPY FROM ;; Options specific to COPY FROM
; [copy-from] ; [copy-from]
@@ -211,6 +219,7 @@ usercert = /opt/tip-wlan/certs/cassandraservercert.pem
; chunksize = 1000 ; chunksize = 1000
;; The options for COPY can also be specified per-table. The following ;; The options for COPY can also be specified per-table. The following
;; three sections demonstrate this. ;; three sections demonstrate this.

View File

@@ -0,0 +1,2 @@
Contains certs needed for this service to start.
Please refer to page: https://telecominfraproject.atlassian.net/wiki/spaces/WIFI/pages/262176803/Pre-requisites+before+deploying+Tip-Wlan+solution

View File

@@ -46,6 +46,7 @@
</triggeringPolicy> </triggeringPolicy>
</appender> </appender>
<!-- <!--
details: http://logback.qos.ch/manual/configuration.html#auto_configuration details: http://logback.qos.ch/manual/configuration.html#auto_configuration
@@ -70,5 +71,5 @@
<appender-ref ref="stdout"/> <appender-ref ref="stdout"/>
<appender-ref ref="logfile"/> <appender-ref ref="logfile"/>
</root> </root>
</configuration> </configuration>

View File

@@ -4,30 +4,28 @@ metadata:
name: {{ include "common.fullname" . }}-ssc-config name: {{ include "common.fullname" . }}-ssc-config
namespace: {{ include "common.namespace" . }} namespace: {{ include "common.namespace" . }}
data: data:
{{ (.Files.Glob "resources/config/logback.xml").AsConfig | indent 2 }} {{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
cassandra-application.conf: >- cassandra-application.conf: >-
datastax-java-driver { datastax-java-driver {
basic { basic {
contact-points = [ "{{ include "cassandra.service" . }}:9042" ] contact-points = [ "{{ include "cassandra.service" . }}:9042" ]
load-balancing-policy.local-datacenter = datacenter1 load-balancing-policy.local-datacenter = datacenter1
session-keyspace = tip_wlan_keyspace session-keyspace = tip_wlan_keyspace
request.consistency = LOCAL_QUORUM
} }
advanced.resolve-contact-points = false
advanced.ssl-engine-factory { advanced.ssl-engine-factory {
class = DefaultSslEngineFactory class = DefaultSslEngineFactory
hostname-validation = false hostname-validation = false
truststore-path = /opt/tip-wlan/certs/truststore.jks truststore-path = /opt/tip-wlan/certs/truststore.jks
truststore-password = {{ .Values.global.certificatePasswords.sslTruststore }} truststore-password = {{ .Values.creds.sslTruststorePassword }}
keystore-path = /opt/tip-wlan/certs/cassandra_server_keystore.jks keystore-path = /opt/tip-wlan/certs/cassandra_server_keystore.jks
keystore-password = {{ .Values.global.certificatePasswords.sslKeystore }} keystore-password = {{ .Values.creds.sslKeystorePassword }}
} }
advanced.auth-provider { advanced.auth-provider {
class = PlainTextAuthProvider class = PlainTextAuthProvider
username = {{ .Values.global.cassandra.username }} username = {{ .Values.creds.cassandra.tip_user }}
password = {{ .Values.global.cassandra.password }} password = {{ .Values.creds.cassandra.tip_password }}
} }
} }

View File

@@ -24,9 +24,8 @@ spec:
securityContext: securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }} {{- toYaml .Values.podSecurityContext | nindent 8 }}
initContainers: initContainers:
{{- include "jmxPrometheus.initContainer" . | nindent 8 }}
- name: wait-for-services - name: wait-for-services
image: {{ .Values.waitForServicesImage.registry }}/{{ .Values.waitForServicesImage.repository }}:{{ .Values.waitForServicesImage.tag }} image: opsfleet/depends-on:latest
args: args:
- "-service={{ .Release.Name }}-kafka-headless" - "-service={{ .Release.Name }}-kafka-headless"
- "-service={{ .Release.Name }}-cassandra" - "-service={{ .Release.Name }}-cassandra"
@@ -45,8 +44,8 @@ spec:
secretKeyRef: secretKeyRef:
name: {{ include "common.fullname" . }}-creds name: {{ include "common.fullname" . }}-creds
key: schema-repo-password key: schema-repo-password
image: {{ .Values.cassandra.registry }}/{{ .Values.cassandra.repository }}:{{ .Values.cassandra.tag }} image: {{ .Values.cassandra.image }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }} imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
command: command:
- sh - sh
- -c - -c
@@ -54,7 +53,7 @@ spec:
apt update apt update
apt -y install curl apt -y install curl
echo "***** Fetching cloud-sdk-schema-cassandra.cql from JFrog *****" echo "***** Fetching cloud-sdk-schema-cassandra.cql from JFrog *****"
curl --insecure -u$SCHEMA_REPO_USER:$SCHEMA_REPO_PASSWORD -O "https://tip-tip-wlan-cloud-docker-repo.jfrog.io/artifactory/tip-wlan-cloud-schemas/1.3.0-SNAPSHOT/cql/cloud-sdk-schema-cassandra.cql" curl --insecure -u$SCHEMA_REPO_USER:$SCHEMA_REPO_PASSWORD -O "https://tip-tip-wlan-cloud-docker-repo.jfrog.io/artifactory/tip-wlan-cloud-schemas/0.0.1-SNAPSHOT/cql/cloud-sdk-schema-cassandra.cql"
echo "***** Now executing cloud-sdk-schema-cassandra.cql and creating/updating schema on Cassandra instance *****" echo "***** Now executing cloud-sdk-schema-cassandra.cql and creating/updating schema on Cassandra instance *****"
counter=0 counter=0
status=1 status=1
@@ -114,11 +113,11 @@ spec:
securityContext: securityContext:
{{- toYaml .Values.securityContext | nindent 12 }} {{- toYaml .Values.securityContext | nindent 12 }}
{{- if .Values.global.testingEnabled }} {{- if .Values.global.testingEnabled }}
image: {{ .Values.global.repository.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }}-{{.Values.global.testingTimestamp}} image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}-{{.Values.global.testingTimestamp}}
{{- else }} {{- else }}
image: {{ .Values.global.repository.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }} image: {{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
{{- end }} {{- end }}
imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }} imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }}
env: env:
{{- include "common.env" . | nindent 12 }} {{- include "common.env" . | nindent 12 }}
- name: tip.wlan.kafka.bootstrapServers - name: tip.wlan.kafka.bootstrapServers
@@ -175,7 +174,7 @@ spec:
- name: tip_wlan_maxHttpThreads - name: tip_wlan_maxHttpThreads
value: "{{ .Values.scalability.tip_wlan_maxHttpThreads }}" value: "{{ .Values.scalability.tip_wlan_maxHttpThreads }}"
- name: JVM_MEM_OPTIONS - name: JVM_MEM_OPTIONS
value: "{{ .Values.scalability.JVM_MEM_OPTIONS }} {{ include "jmxPrometheus.jvmOpts" . }}" value: "{{ .Values.scalability.JVM_MEM_OPTIONS }}"
{{- if .Values.probes.enabled }} {{- if .Values.probes.enabled }}
livenessProbe: livenessProbe:
@@ -198,13 +197,6 @@ spec:
failureThreshold: {{ .Values.probes.readinessProbe.failureThreshold }} failureThreshold: {{ .Values.probes.readinessProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.readinessProbe.periodSeconds }} periodSeconds: {{ .Values.probes.readinessProbe.periodSeconds }}
successThreshold: {{ .Values.probes.readinessProbe.successThreshold }} successThreshold: {{ .Values.probes.readinessProbe.successThreshold }}
startupProbe:
httpGet:
path: /ping
port: {{ .Values.service.port2 }}
scheme: {{ .Values.probes.readinessProbe.scheme }}
failureThreshold: {{ .Values.probes.startupProbe.failureThreshold }}
periodSeconds: {{ .Values.probes.startupProbe.periodSeconds}}
{{- end }} {{- end }}
volumeMounts: volumeMounts:
- mountPath: /opt/tip-wlan/certs/client_keystore.jks - mountPath: /opt/tip-wlan/certs/client_keystore.jks
@@ -228,8 +220,6 @@ spec:
- mountPath: /app/ssc/cassandra-application.conf - mountPath: /app/ssc/cassandra-application.conf
name: ssc-configurations name: ssc-configurations
subPath: cassandra-application.conf subPath: cassandra-application.conf
{{- include "jmxPrometheus.configVolumeMount" . | nindent 10 }}
{{- include "jmxPrometheus.tmpVolumeMount" . | nindent 10 }}
ports: ports:
- name: {{ .Values.service.name1 }} - name: {{ .Values.service.name1 }}
containerPort: {{ .Values.service.port1 }} containerPort: {{ .Values.service.port1 }}
@@ -242,7 +232,6 @@ spec:
containerPort: {{ .Values.service.port3 }} containerPort: {{ .Values.service.port3 }}
protocol: TCP protocol: TCP
{{- end }} {{- end }}
{{- include "jmxPrometheus.port" . | nindent 12 }}
resources: resources:
{{- toYaml .Values.resources | nindent 12 }} {{- toYaml .Values.resources | nindent 12 }}
{{- with .Values.nodeSelector }} {{- with .Values.nodeSelector }}
@@ -261,9 +250,7 @@ spec:
volumes: volumes:
- name: certificates - name: certificates
secret: secret:
secretName: tip-common-cassandra-client-certs secretName: {{ include "common.fullname" . }}-certs
- name: ssc-configurations - name: ssc-configurations
configMap: configMap:
name: {{ include "common.fullname" . }}-ssc-config name: {{ include "common.fullname" . }}-ssc-config
{{- include "jmxPrometheus.configVolume" . | nindent 6 }}
{{- include "jmxPrometheus.tmpVolume" . | nindent 6 }}

View File

@@ -1 +0,0 @@
{{ include "jmxPrometheus.podMonitor" . }}

View File

@@ -1,5 +1,14 @@
apiVersion: v1 apiVersion: v1
kind: Secret kind: Secret
metadata:
name: {{ include "common.fullname" . }}-certs
namespace: {{ include "common.namespace" . }}
type: Opaque
data:
{{ tpl (.Files.Glob "resources/config/certs/*").AsSecrets . | indent 2 }}
---
apiVersion: v1
kind: Secret
metadata: metadata:
name: {{ include "common.fullname" . }}-creds name: {{ include "common.fullname" . }}-creds
namespace: {{ include "common.namespace" . }} namespace: {{ include "common.namespace" . }}
@@ -10,10 +19,12 @@ metadata:
heritage: {{ .Release.Service | quote }} heritage: {{ .Release.Service | quote }}
type: Opaque type: Opaque
data: data:
sslKeyPassword: {{ .Values.global.certificatePasswords.sslKey | b64enc | quote }} {{- if .Values.creds.enabled }}
sslKeystorePassword: {{ .Values.global.certificatePasswords.sslKeystore | b64enc | quote }} sslKeyPassword: {{ .Values.creds.sslKeyPassword | b64enc | quote }}
sslTruststorePassword: {{ .Values.global.certificatePasswords.sslTruststore | b64enc | quote }} sslKeystorePassword: {{ .Values.creds.sslKeystorePassword | b64enc | quote }}
cassandra_tip_user: {{ .Values.global.cassandra.username | b64enc | quote }} sslTruststorePassword: {{ .Values.creds.sslTruststorePassword | b64enc | quote }}
cassandra_tip_password: {{ .Values.global.cassandra.password | b64enc | quote }} cassandra_tip_password: {{ .Values.creds.cassandra.tip_password | b64enc | quote }}
schema-repo-user: {{ .Values.global.schema.username | b64enc | quote }} cassandra_tip_user: {{ .Values.creds.cassandra.tip_user | b64enc | quote }}
schema-repo-password: {{ .Values.global.schema.password | b64enc | quote }} schema-repo-user: {{ .Values.creds.schema_repo.username | b64enc | quote }}
schema-repo-password: {{ .Values.creds.schema_repo.password | b64enc | quote }}
{{- end }}

View File

@@ -30,6 +30,6 @@ spec:
{{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }} {{- if and .Values.service.nodePortStatic (eq .Values.service.type "NodePort") }}
nodePort: {{ .Values.global.nodePortPrefix }}{{ .Values.service.nodePort3 }} nodePort: {{ .Values.global.nodePortPrefix }}{{ .Values.service.nodePort3 }}
{{- end }} {{- end }}
{{- end }} {{- end }}
selector: selector:
{{- include "common.selectorLabels" . | nindent 4 }} {{- include "common.selectorLabels" . | nindent 4 }}

Some files were not shown because too many files have changed in this diff Show More