Merge "Added armada manifest and required build files"
This commit is contained in:
commit
9a4908e565
@ -0,0 +1,10 @@
|
||||
If you would like to contribute to the development of OpenStack,
|
||||
you must follow the steps in this page:
|
||||
https://docs.openstack.org/infra/manual/developers.html
|
||||
Once those steps have been completed, changes to OpenStack
|
||||
should be submitted for review via the Gerrit tool, following
|
||||
the workflow documented at:
|
||||
https://docs.openstack.org/infra/manual/developers.html#development-workflow
|
||||
Pull requests submitted through GitHub will be ignored.
|
||||
Bugs should be filed in Launchpad:
|
||||
https://bugs.launchpad.net/starlingx
|
13
HACKING.rst
13
HACKING.rst
@ -0,0 +1,13 @@
|
||||
StarlingX PTP-Notification-Armada-App Style Commandments
|
||||
================================================================
|
||||
- Step 1: Read the OpenStack style commandments
|
||||
https://docs.openstack.org/hacking/latest/
|
||||
- Step 2: Read on
|
||||
PTP-Notification-Armada-App Specific Commandments
|
||||
---------------------------------------------------------
|
||||
None so far
|
||||
Running tests
|
||||
-------------
|
||||
The approach to running tests is to simply run the command ``tox``. This will
|
||||
create virtual environments, populate them with dependencies and run all of
|
||||
the tests that OpenStack CI systems run.
|
@ -0,0 +1 @@
|
||||
flock
|
@ -0,0 +1 @@
|
||||
stx-ptp-notification-helm
|
@ -0,0 +1,2 @@
|
||||
stx-ptp-notification-helm
|
||||
python-k8sapp-ptp-notification
|
@ -0,0 +1,2 @@
|
||||
stx-ptp-notification-helm
|
||||
python-k8sapp-ptp-notification
|
@ -0,0 +1 @@
|
||||
# Nothing
|
@ -0,0 +1,11 @@
|
||||
SRC_DIR="stx-ptp-notification-helm"
|
||||
|
||||
OPT_DEP_LIST="$STX_BASE/ptp-notification-armada-app/python-k8sapp-ptp-notification"
|
||||
|
||||
COPY_LIST_TO_TAR="\
|
||||
$STX_BASE/helm-charts/psp-rolebinding/psp-rolebinding/helm-charts \
|
||||
"
|
||||
# Keep the SRCREV in sync with python-k8sapp-ptp-notification so the app version is
|
||||
# the same as the plugin version
|
||||
TIS_BASE_SRCREV=c525a7fe479103bc316792c11b5289ebcca8a2a7
|
||||
TIS_PATCH_VER=GITREVCOUNT
|
@ -0,0 +1,87 @@
|
||||
# Application tunables (maps to metadata)
|
||||
%global app_name ptp-notification
|
||||
%global helm_repo stx-platform
|
||||
|
||||
%global armada_folder /usr/lib/armada
|
||||
|
||||
# Install location
|
||||
%global app_folder /usr/local/share/applications/helm
|
||||
|
||||
# Build variables
|
||||
%global helm_folder /usr/lib/helm
|
||||
|
||||
Summary: StarlingX PTP Notification Armada Helm Charts
|
||||
Name: stx-ptp-notification-helm
|
||||
Version: 1.0
|
||||
Release: %{tis_patch_ver}%{?_tis_dist}
|
||||
License: Apache-2.0
|
||||
Group: base
|
||||
Packager: Wind River <info@windriver.com>
|
||||
URL: unknown
|
||||
|
||||
Source0: %{name}-%{version}.tar.gz
|
||||
|
||||
BuildArch: noarch
|
||||
|
||||
BuildRequires: helm
|
||||
BuildRequires: chartmuseum
|
||||
BuildRequires: python-k8sapp-ptp-notification
|
||||
BuildRequires: python-k8sapp-ptp-notification-wheels
|
||||
|
||||
%description
|
||||
StarlingX PTP Notification Helm Charts
|
||||
|
||||
%prep
|
||||
%setup -n %{name}-%{version}
|
||||
|
||||
%build
|
||||
chartmuseum --debug --port=8879 --context-path='/charts' --storage="local" --storage-local-rootdir="." &
|
||||
sleep 2
|
||||
|
||||
helm repo add local http://localhost:8879/charts
|
||||
|
||||
cd helm-charts
|
||||
make ptp-notification
|
||||
make psp-rolebinding
|
||||
cd -
|
||||
|
||||
# Terminate helm server (the last backgrounded task)
|
||||
kill %1
|
||||
|
||||
# Create a chart tarball compliant with sysinv kube-app.py
|
||||
%define app_staging %{_builddir}/staging
|
||||
%define app_tarball %{app_name}-%{version}-%{tis_patch_ver}.tgz
|
||||
|
||||
# Setup staging
|
||||
mkdir -p %{app_staging}
|
||||
cp files/metadata.yaml %{app_staging}
|
||||
cp manifests/*.yaml %{app_staging}
|
||||
mkdir -p %{app_staging}/charts
|
||||
cp helm-charts/*.tgz %{app_staging}/charts
|
||||
#cp %{helm_folder}/*.tgz %{app_staging}/charts
|
||||
cd %{app_staging}
|
||||
|
||||
# Populate metadata
|
||||
sed -i 's/@APP_NAME@/%{app_name}/g' %{app_staging}/metadata.yaml
|
||||
sed -i 's/@APP_VERSION@/%{version}-%{tis_patch_ver}/g' %{app_staging}/metadata.yaml
|
||||
sed -i 's/@HELM_REPO@/%{helm_repo}/g' %{app_staging}/metadata.yaml
|
||||
|
||||
|
||||
# Copy the plugins: installed in the buildroot
|
||||
mkdir -p %{app_staging}/plugins
|
||||
cp /plugins/%{app_name}/*.whl %{app_staging}/plugins
|
||||
|
||||
# package it up
|
||||
find . -type f ! -name '*.md5' -print0 | xargs -0 md5sum > checksum.md5
|
||||
tar -zcf %{_builddir}/%{app_tarball} -C %{app_staging}/ .
|
||||
|
||||
# Cleanup staging
|
||||
rm -fr %{app_staging}
|
||||
|
||||
%install
|
||||
install -d -m 755 %{buildroot}/%{app_folder}
|
||||
install -p -D -m 755 %{_builddir}/%{app_tarball} %{buildroot}/%{app_folder}
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%{app_folder}/*
|
@ -0,0 +1,5 @@
|
||||
This directory contains all StarlingX charts that need to be built for this
|
||||
application. Some charts are common across applications. These common charts
|
||||
reside in the stx/helm-charts repository. To include these in this
|
||||
application update the build_srpm.data file and use the COPY_LIST_TO_TAR
|
||||
mechanism to populate these common charts.
|
@ -0,0 +1,8 @@
|
||||
#
|
||||
# Copyright (c) 2021 Wind River Systems, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
apiVersion: v1
|
||||
entries: {}
|
||||
generated: 2021-01-18T12:46:46.098162524-06:00
|
@ -0,0 +1,6 @@
|
||||
maintain_user_overrides: true
|
||||
|
||||
app_name: @APP_NAME@
|
||||
app_version: @APP_VERSION@
|
||||
helm_repo: @HELM_REPO@
|
||||
|
@ -0,0 +1,11 @@
|
||||
apiVersion: v1
|
||||
generated: 2021-01-18T12:46:46.098162524-06:00
|
||||
repositories:
|
||||
- caFile: ""
|
||||
cache: /builddir/.helm/repository/cache/local-index.yaml
|
||||
certFile: ""
|
||||
keyFile: ""
|
||||
name: local
|
||||
password: ""
|
||||
url: http://127.0.0.1:8879/charts
|
||||
username: ""
|
@ -0,0 +1,43 @@
|
||||
#
|
||||
# Copyright 2017 The Openstack-Helm Authors.
|
||||
#
|
||||
# Copyright (c) 2021 Wind River Systems, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# It's necessary to set this because some environments don't link sh -> bash.
|
||||
SHELL := /bin/bash
|
||||
TASK := build
|
||||
|
||||
EXCLUDES := helm-toolkit doc tests tools logs tmp
|
||||
CHARTS := helm-toolkit $(filter-out $(EXCLUDES), $(patsubst %/.,%,$(wildcard */.)))
|
||||
|
||||
.PHONY: $(EXCLUDES) $(CHARTS)
|
||||
|
||||
all: $(CHARTS)
|
||||
|
||||
$(CHARTS):
|
||||
@if [ -d $@ ]; then \
|
||||
echo; \
|
||||
echo "===== Processing [$@] chart ====="; \
|
||||
make $(TASK)-$@; \
|
||||
fi
|
||||
|
||||
init-%:
|
||||
if [ -f $*/Makefile ]; then make -C $*; fi
|
||||
if [ -f $*/requirements.yaml ]; then helm dep up $*; fi
|
||||
|
||||
lint-%: init-%
|
||||
if [ -d $* ]; then helm lint $*; fi
|
||||
|
||||
build-%:
|
||||
if [ -d $* ]; then helm package $*; fi
|
||||
|
||||
clean:
|
||||
@echo "Clean all build artifacts"
|
||||
rm -f */templates/_partials.tpl */templates/_globals.tpl
|
||||
rm -f *tgz */charts/*tgz */requirements.lock
|
||||
rm -rf */charts */tmpcharts
|
||||
|
||||
%:
|
||||
@:
|
@ -0,0 +1,10 @@
|
||||
#
|
||||
# Copyright (c) 2021 Wind River Systems, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
apiVersion: v1
|
||||
appVersion: "1.0"
|
||||
description: A Helm chart to deploy PTP Notification Service
|
||||
name: ptp-notification
|
||||
version: 0.1.0
|
@ -0,0 +1,174 @@
|
||||
#
|
||||
# Copyright (c) 2021 Wind River Systems, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
#!/bin/bash
|
||||
|
||||
# apt-get update -y
|
||||
# #sleep infinity
|
||||
|
||||
# apt-get install -y gcc
|
||||
# apt-get install -y python-dev
|
||||
# apt-get install -y python3-pip
|
||||
|
||||
# export https_proxy=http://128.224.230.5:9090
|
||||
|
||||
# pip3 install oslo-config
|
||||
# pip3 install oslo-messaging
|
||||
|
||||
cat <<EOF>/root/location-query-server.py
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: UTF-8 -*-
|
||||
|
||||
import os
|
||||
import json
|
||||
import time # 引入time模块
|
||||
import oslo_messaging
|
||||
from oslo_config import cfg
|
||||
|
||||
|
||||
THIS_NODE_NAME = os.environ.get("THIS_NODE_NAME",'controller-1')
|
||||
THIS_POD_IP = os.environ.get("THIS_POD_IP",'127.0.0.1')
|
||||
THIS_NAMESPACE = os.environ.get("THIS_NAMESPACE",'notification')
|
||||
|
||||
rabbituser = os.environ.get("REGISTRATION_USER",'admin')
|
||||
rabbitpasswd = os.environ.get("REGISTRATION_PASS",'admin')
|
||||
rabbitip = "registration.{0}.svc.cluster.local".format(THIS_NAMESPACE)
|
||||
rabbitport = os.environ.get("REGISTRATION_PORT",'5672')
|
||||
# 'rabbit://admin:admin@172.16.192.78:5672/'
|
||||
rabbitendpoint = "rabbit://{0}:{1}@{2}:{3}".format(
|
||||
rabbituser, rabbitpasswd, rabbitip, rabbitport)
|
||||
|
||||
class LocationInfoEndpoint(object):
|
||||
target = oslo_messaging.Target(namespace='notification', version='1.0')
|
||||
|
||||
def __init__(self, server):
|
||||
self.server = server
|
||||
|
||||
def QueryLocation(self, ctx, rpc_kwargs):
|
||||
print ("QueryLocation called %s" %rpc_kwargs)
|
||||
LocationInfo = {
|
||||
'NodeName': THIS_NODE_NAME,
|
||||
'PodIP': THIS_POD_IP,
|
||||
'ResourceTypes': ['PTP'],
|
||||
'Timestamp': time.time()
|
||||
}
|
||||
|
||||
return LocationInfo
|
||||
|
||||
oslo_messaging.set_transport_defaults('notification_exchange')
|
||||
transport = oslo_messaging.get_rpc_transport(cfg.CONF, url=rabbitendpoint)
|
||||
target = oslo_messaging.Target(topic='LocationQuery', server="LocationService-{0}".format(THIS_NODE_NAME))
|
||||
endpoints = [LocationInfoEndpoint(None)]
|
||||
server = oslo_messaging.get_rpc_server(transport, target, endpoints,
|
||||
executor=None)
|
||||
# oslo_messaging.server.ExecutorLoadFailure:
|
||||
# Failed to load executor "blocking": Executor should be None or 'eventlet' and 'threading'
|
||||
server.start()
|
||||
print("LocationService-{0} starts".format(THIS_NODE_NAME))
|
||||
server.wait()
|
||||
|
||||
EOF
|
||||
|
||||
|
||||
|
||||
cat <<EOF>/root/location-announce.py
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: UTF-8 -*-
|
||||
|
||||
import os
|
||||
import json
|
||||
import time # 引入time模块
|
||||
import oslo_messaging
|
||||
from oslo_config import cfg
|
||||
from webob.exc import HTTPException, HTTPNotFound, HTTPBadRequest, HTTPClientError, HTTPServerError
|
||||
|
||||
|
||||
THIS_NODE_NAME = os.environ.get("THIS_NODE_NAME",'controller-1')
|
||||
THIS_POD_IP = os.environ.get("THIS_POD_IP",'127.0.0.1')
|
||||
THIS_NAMESPACE = os.environ.get("THIS_NAMESPACE",'notification')
|
||||
|
||||
rabbituser = os.environ.get("REGISTRATION_USER",'admin')
|
||||
rabbitpasswd = os.environ.get("REGISTRATION_PASS",'admin')
|
||||
rabbitip = "registration.{0}.svc.cluster.local".format(THIS_NAMESPACE)
|
||||
rabbitport = os.environ.get("REGISTRATION_PORT",'5672')
|
||||
rabbitendpoint = "rabbit://{0}:{1}@{2}:{3}".format(
|
||||
rabbituser, rabbitpasswd, rabbitip, rabbitport)
|
||||
|
||||
oslo_messaging.set_transport_defaults('notification_exchange')
|
||||
transport = oslo_messaging.get_rpc_transport(cfg.CONF, url=rabbitendpoint)
|
||||
|
||||
location_topic='LocationListener-{0}'.format(THIS_NODE_NAME),
|
||||
target = oslo_messaging.Target(
|
||||
topic=location_topic,
|
||||
fanout=True,
|
||||
version='1.0', namespace='notification')
|
||||
|
||||
client = oslo_messaging.RPCClient(transport, target)
|
||||
LocationInfo = {
|
||||
'NodeName': THIS_NODE_NAME,
|
||||
'PodIP': THIS_POD_IP,
|
||||
'ResourceTypes': ['PTP'],
|
||||
'Timestamp': time.time()
|
||||
}
|
||||
|
||||
while True:
|
||||
try:
|
||||
client.cast({}, 'NotifyLocation', location_info=LocationInfo)
|
||||
print("Announce location info:{0}@Topic:{1}".format(LocationInfo, location_topic))
|
||||
except HTTPNotFound as ex:
|
||||
print("Failed to publish location due to not found: {0}".format(str(ex)))
|
||||
continue
|
||||
except Exception as ex:
|
||||
print("Failed to publish location due to: {0}".format(str(ex)))
|
||||
continue
|
||||
else:
|
||||
break
|
||||
|
||||
EOF
|
||||
|
||||
echo "done"
|
||||
|
||||
# python3 /root/location-query-server.py &
|
||||
|
||||
# python3 /root/location-announce.py
|
||||
|
||||
cat <<EOF>/root/notification_control.py
|
||||
import os
|
||||
import time
|
||||
import json
|
||||
from pecan import conf
|
||||
from locationservicesdk.services.daemon import DaemonControl
|
||||
|
||||
REGISTRATION_USER = os.environ.get("REGISTRATION_USER", "admin")
|
||||
REGISTRATION_PASS = os.environ.get("REGISTRATION_PASS", "admin")
|
||||
REGISTRATION_PORT = os.environ.get("REGISTRATION_PORT", "5672")
|
||||
REGISTRATION_HOST = os.environ.get("REGISTRATION_HOST",'registration.notification.svc.cluster.local')
|
||||
THIS_NODE_NAME = os.environ.get("THIS_NODE_NAME",'controller-0')
|
||||
THIS_POD_IP = os.environ.get("THIS_POD_IP",'127.0.0.1')
|
||||
|
||||
REGISTRATION_TRANSPORT_ENDPOINT = 'rabbit://{0}:{1}@{2}:{3}'.format(
|
||||
REGISTRATION_USER, REGISTRATION_PASS, REGISTRATION_HOST, REGISTRATION_PORT)
|
||||
|
||||
sqlalchemy_conf_json=json.dumps({})
|
||||
LocationInfo = {
|
||||
'NodeName': THIS_NODE_NAME,
|
||||
'PodIP': THIS_POD_IP,
|
||||
'ResourceTypes': ['PTP'],
|
||||
'Timestamp': time.time()
|
||||
}
|
||||
location_info_json = json.dumps(LocationInfo)
|
||||
notification_control = DaemonControl(
|
||||
sqlalchemy_conf_json, REGISTRATION_TRANSPORT_ENDPOINT, location_info_json)
|
||||
|
||||
|
||||
EOF
|
||||
|
||||
cp /root/notification_control.py /opt/locationservice/apiserver/repository
|
||||
|
||||
cd /opt/locationservice && pecan serve config.py &
|
||||
|
||||
|
||||
sleep infinity
|
@ -0,0 +1,98 @@
|
||||
#
|
||||
# Copyright (c) 2021 Wind River Systems, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
#!/bin/bash
|
||||
|
||||
# apt-get update -y
|
||||
# #sleep infinity
|
||||
|
||||
# apt-get install -y gcc
|
||||
# apt-get install -y python-dev
|
||||
# apt-get install -y python3-pip
|
||||
|
||||
# export https_proxy=http://128.224.230.5:9090
|
||||
|
||||
# pip3 install oslo-config
|
||||
# pip3 install oslo-messaging
|
||||
|
||||
cat <<EOF>/root/ptptracking-daemon.py
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: UTF-8 -*-
|
||||
import logging
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
from trackingfunctionsdk.common.helpers import log_helper
|
||||
log_helper.config_logger(LOG)
|
||||
|
||||
import os
|
||||
import json
|
||||
import time # 引入time模块
|
||||
import oslo_messaging
|
||||
from oslo_config import cfg
|
||||
|
||||
from trackingfunctionsdk.services.daemon import DaemonControl
|
||||
|
||||
THIS_NAMESPACE = os.environ.get("THIS_NAMESPACE",'notification')
|
||||
THIS_NODE_NAME = os.environ.get("THIS_NODE_NAME",'controller-1')
|
||||
THIS_POD_IP = os.environ.get("THIS_POD_IP",'127.0.0.1')
|
||||
REGISTRATION_USER = os.environ.get("REGISTRATION_USER", "admin")
|
||||
REGISTRATION_PASS = os.environ.get("REGISTRATION_PASS", "admin")
|
||||
REGISTRATION_PORT = os.environ.get("REGISTRATION_PORT", "5672")
|
||||
REGISTRATION_HOST = os.environ.get("REGISTRATION_HOST",'registration.notification.svc.cluster.local')
|
||||
|
||||
REGISTRATION_TRANSPORT_ENDPOINT = 'rabbit://{0}:{1}@{2}:{3}'.format(
|
||||
REGISTRATION_USER, REGISTRATION_PASS, REGISTRATION_HOST, REGISTRATION_PORT)
|
||||
|
||||
NOTIFICATION_BROKER_USER = os.environ.get("NOTIFICATIONSERVICE_USER", "admin")
|
||||
NOTIFICATION_BROKER_PASS = os.environ.get("NOTIFICATIONSERVICE_PASS", "admin")
|
||||
NOTIFICATION_BROKER_PORT = os.environ.get("NOTIFICATIONSERVICE_PORT", "5672")
|
||||
|
||||
NOTIFICATION_TRANSPORT_ENDPOINT = 'rabbit://{0}:{1}@{2}:{3}'.format(
|
||||
NOTIFICATION_BROKER_USER, NOTIFICATION_BROKER_PASS, THIS_POD_IP, NOTIFICATION_BROKER_PORT)
|
||||
|
||||
PTP_DEVICE_SIMULATED = os.environ.get("PTP_DEVICE_SIMULATED", False)
|
||||
|
||||
PTP_HOLDOVER_SECONDS = os.environ.get("PTP_HOLDOVER_SECONDS", 30)
|
||||
PTP_POLL_FREQ_SECONDS = os.environ.get("PTP_POLL_FREQ_SECONDS", 2)
|
||||
|
||||
context = {
|
||||
'THIS_NAMESPACE': THIS_NAMESPACE,
|
||||
'THIS_NODE_NAME': THIS_NODE_NAME,
|
||||
'THIS_POD_IP': THIS_POD_IP,
|
||||
'REGISTRATION_TRANSPORT_ENDPOINT': REGISTRATION_TRANSPORT_ENDPOINT,
|
||||
'NOTIFICATION_TRANSPORT_ENDPOINT': NOTIFICATION_TRANSPORT_ENDPOINT,
|
||||
# 'NOTIFICATION_BROKER_USER': NOTIFICATION_BROKER_USER,
|
||||
# 'NOTIFICATION_BROKER_PASS': NOTIFICATION_BROKER_PASS,
|
||||
# 'NOTIFICATION_BROKER_PORT': NOTIFICATION_BROKER_PORT
|
||||
'ptptracker_context': {
|
||||
'device_simulated': PTP_DEVICE_SIMULATED,
|
||||
'holdover_seconds': PTP_HOLDOVER_SECONDS,
|
||||
'poll_freq_seconds': PTP_POLL_FREQ_SECONDS
|
||||
}
|
||||
}
|
||||
|
||||
sqlalchemy_conf = {
|
||||
'url' : 'sqlite:///apiserver.db',
|
||||
'echo' : False,
|
||||
'echo_pool' : False,
|
||||
'pool_recycle' : 3600,
|
||||
'encoding' : 'utf-8'
|
||||
}
|
||||
sqlalchemy_conf_json = json.dumps(sqlalchemy_conf)
|
||||
default_daemoncontrol = DaemonControl(sqlalchemy_conf_json, json.dumps(context))
|
||||
|
||||
default_daemoncontrol.refresh()
|
||||
while True:
|
||||
pass
|
||||
|
||||
EOF
|
||||
|
||||
|
||||
|
||||
echo "done"
|
||||
|
||||
PYTHONPATH=/opt/ptptrackingfunction python3 /root/ptptracking-daemon.py &
|
||||
|
||||
sleep infinity
|
@ -0,0 +1,22 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
@ -0,0 +1,40 @@
|
||||
{{/*
|
||||
#
|
||||
# Copyright (c) 2021 Wind River Systems, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
*/}}
|
||||
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "notification.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "notification.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "notification.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
@ -0,0 +1,26 @@
|
||||
# Copyright © 2017 Amdocs, Bell Canada
|
||||
# Modifications Copyright © 2018 AT&T
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ .Chart.Name }}-scripts-configmap
|
||||
namespace: {{ .Values.global.namespace }}
|
||||
labels:
|
||||
release: {{ .Release.Name }}
|
||||
app: {{ include "notification.name" . }}
|
||||
chart: {{ .Chart.Name }}
|
||||
data:
|
||||
{{ tpl (.Files.Glob "resources/scripts/init/*").AsConfig . | indent 2 }}
|
@ -0,0 +1,181 @@
|
||||
#
|
||||
# Copyright (c) 2021 Wind River Systems, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: {{ include "notification.fullname" . }}
|
||||
namespace: {{ .Values.global.namespace }}
|
||||
labels:
|
||||
release: {{ .Release.Name }}
|
||||
app: {{ include "notification.name" . }}
|
||||
chart: {{ .Chart.Name }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: {{ include "notification.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
template:
|
||||
metadata:
|
||||
namespace: {{ .Values.global.namespace }}
|
||||
labels:
|
||||
app: {{ include "notification.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: {{ .Values.ptptracking.imagePullSecrets}}
|
||||
{{ if .Values.ptptracking.device.simulated }}
|
||||
{{ else }}
|
||||
{{- if .Values.notification.affinity }}
|
||||
affinity:
|
||||
{{ toYaml .Values.notification.affinity | indent 8 }}
|
||||
{{- end }}
|
||||
{{ end }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}-rabbitmq
|
||||
image: rabbitmq:3-management
|
||||
env:
|
||||
- name: THIS_NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
- name: THIS_POD_IP
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: status.podIP
|
||||
- name: THIS_NAMESPACE
|
||||
value: {{ .Values.global.namespace }}
|
||||
- name: RABBITMQ_DEFAULT_USER
|
||||
value: "admin"
|
||||
- name: RABBITMQ_DEFAULT_PASS
|
||||
value: "admin"
|
||||
- name: RABBITMQ_DEFAULT_PORT
|
||||
value: "5672"
|
||||
- name: {{ .Chart.Name }}-location
|
||||
image: "{{ .Values.location.image.repository }}:{{ .Values.location.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.location.image.pullPolicy }}
|
||||
tty: true
|
||||
stdin: true
|
||||
env:
|
||||
- name: THIS_NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
- name: THIS_POD_IP
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: status.podIP
|
||||
- name: THIS_NAMESPACE
|
||||
value: {{ .Values.global.namespace }}
|
||||
- name: REGISTRATION_HOST
|
||||
value: "{{ .Values.registration.endpoint.host }}"
|
||||
- name: REGISTRATION_USER
|
||||
value: "{{ .Values.registration.endpoint.user }}"
|
||||
- name: REGISTRATION_PASS
|
||||
value: "{{ .Values.registration.endpoint.pass }}"
|
||||
- name: REGISTRATION_PORT
|
||||
value: "{{ .Values.registration.endpoint.port }}"
|
||||
- name: NOTIFICATIONSERVICE_USER
|
||||
value: "{{ .Values.notification.endpoint.user }}"
|
||||
- name: NOTIFICATIONSERVICE_PASS
|
||||
value: "{{ .Values.notification.endpoint.pass }}"
|
||||
- name: NOTIFICATIONSERVICE_PORT
|
||||
value: "{{ .Values.notification.endpoint.port }}"
|
||||
|
||||
command: ["/bin/bash", "/mnt/locationservice_start.sh"]
|
||||
volumeMounts:
|
||||
- name: scripts
|
||||
mountPath: /mnt
|
||||
resources:
|
||||
limits:
|
||||
cpu: {{ .Values.resources.cpu }}
|
||||
memory: {{ .Values.resources.memory }}
|
||||
- name: {{ .Chart.Name }}-ptptracking
|
||||
image: "{{ .Values.ptptracking.image.repository }}:{{ .Values.ptptracking.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.ptptracking.image.pullPolicy }}
|
||||
tty: true
|
||||
stdin: true
|
||||
env:
|
||||
- name: THIS_NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
- name: THIS_POD_IP
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: status.podIP
|
||||
- name: THIS_NAMESPACE
|
||||
value: {{ .Values.global.namespace }}
|
||||
- name: PTP_DEVICE_SIMULATED
|
||||
value: "{{ .Values.ptptracking.device.simulated }}"
|
||||
- name: PTP_HOLDOVER_SECONDS
|
||||
value: "{{ .Values.ptptracking.device.holdover_seconds }}"
|
||||
- name: PTP_POLL_FREQ_SECONDS
|
||||
value: "{{ .Values.ptptracking.device.poll_freq_seconds }}"
|
||||
- name: NOTIFICATIONSERVICE_USER
|
||||
value: "admin"
|
||||
- name: NOTIFICATIONSERVICE_PASS
|
||||
value: "admin"
|
||||
- name: NOTIFICATIONSERVICE_PORT
|
||||
value: "5672"
|
||||
- name: REGISTRATION_USER
|
||||
value: "admin"
|
||||
- name: REGISTRATION_PASS
|
||||
value: "admin"
|
||||
- name: REGISTRATION_PORT
|
||||
value: "5672"
|
||||
- name: REGISTRATION_HOST
|
||||
value: "registration.{{.Values.global.namespace}}.svc.cluster.local"
|
||||
command: ["/bin/bash", "/mnt/ptptracking_start.sh"]
|
||||
securityContext:
|
||||
privileged: true
|
||||
capabilities:
|
||||
add:
|
||||
- CAP_SYS_ADMIN
|
||||
volumeMounts:
|
||||
- name: scripts
|
||||
mountPath: /mnt
|
||||
{{ if .Values.ptptracking.device.simulated }}
|
||||
{{ else }}
|
||||
- name: ptpdir
|
||||
mountPath: /var/run/
|
||||
readOnly: false
|
||||
- name: varrun
|
||||
mountPath: /var/run/ptp4l
|
||||
readOnly: false
|
||||
- name: pmc
|
||||
mountPath: /usr/sbin/pmc
|
||||
readOnly: false
|
||||
{{ end }}
|
||||
- name: conf
|
||||
mountPath: /ptp/
|
||||
readOnly: true
|
||||
resources:
|
||||
limits:
|
||||
cpu: {{ .Values.resources.cpu }}
|
||||
memory: {{ .Values.resources.memory }}
|
||||
volumes:
|
||||
- name: scripts
|
||||
configMap:
|
||||
name: {{ .Chart.Name }}-scripts-configmap
|
||||
- name: ptpdir
|
||||
hostPath:
|
||||
path: /var/run/
|
||||
type: Directory
|
||||
{{ if .Values.ptptracking.device.simulated }}
|
||||
{{ else }}
|
||||
- name: varrun
|
||||
hostPath:
|
||||
path: /var/run/ptp4l
|
||||
type: Socket
|
||||
{{ end }}
|
||||
- name: pmc
|
||||
hostPath:
|
||||
path: /usr/sbin/pmc
|
||||
- name: conf
|
||||
hostPath:
|
||||
path: /etc/
|
||||
type: Directory
|
@ -0,0 +1,40 @@
|
||||
#
|
||||
# Copyright (c) 2021 Wind River Systems, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: registration
|
||||
namespace: {{ .Values.global.namespace }}
|
||||
labels:
|
||||
app: rabbitmq
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: rabbitmq
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: rabbitmq
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: {{ .Values.registration.imagePullSecrets }}
|
||||
{{- if .Values.registration.affinity }}
|
||||
affinity:
|
||||
{{ toYaml .Values.registration.affinity | indent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: rabbitmq
|
||||
image: "{{ .Values.registration.image.repository }}:{{ .Values.registration.image.tag }}"
|
||||
env:
|
||||
- name: RABBITMQ_DEFAULT_USER
|
||||
value: "admin"
|
||||
- name: RABBITMQ_DEFAULT_PASS
|
||||
value: "admin"
|
||||
- name: RABBITMQ_DEFAULT_PORT
|
||||
value: "5672"
|
||||
---
|
@ -0,0 +1,19 @@
|
||||
#
|
||||
# Copyright (c) 2021 Wind River Systems, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: registration
|
||||
namespace: {{ .Values.global.namespace }}
|
||||
spec:
|
||||
#clusterIP: None
|
||||
ports:
|
||||
- name: rabbitmq
|
||||
port: 5672
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: rabbitmq
|
@ -0,0 +1,77 @@
|
||||
#
|
||||
# Copyright (c) 2021 Wind River Systems, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# Default values for notification services.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
|
||||
# global vars for parent and subcharts.
|
||||
# registration.endpoint.host: registration.{namespace}.svc.{cluster-domain}
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
|
||||
resources:
|
||||
cpu: 1
|
||||
memory: 2Gi
|
||||
|
||||
global:
|
||||
namespace: notification
|
||||
|
||||
registration:
|
||||
imagePullSecrets: default-registry-key
|
||||
image:
|
||||
repository: rabbitmq
|
||||
tag: 3-management
|
||||
pullPolicy: IfNotPresent
|
||||
endpoint:
|
||||
host: "registration.notification.svc.cluster.local"
|
||||
port: 5672
|
||||
user: admin
|
||||
pass: admin
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: ptp-registration
|
||||
operator: In
|
||||
values:
|
||||
- "true"
|
||||
|
||||
notification:
|
||||
endpoint:
|
||||
port: 5672
|
||||
user: admin
|
||||
pass: admin
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: ptp-notification
|
||||
operator: In
|
||||
values:
|
||||
- "true"
|
||||
|
||||
location:
|
||||
image:
|
||||
repository: locationservice
|
||||
tag: 1.0.1
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
ptptracking:
|
||||
imagePullSecrets: admin-registry-secret
|
||||
image:
|
||||
repository: ptptrackingfunction
|
||||
tag: 1.0.1
|
||||
pullPolicy: IfNotPresent
|
||||
device:
|
||||
simulated: false
|
||||
holdover_seconds: 30
|
||||
poll_freq_seconds: 2
|
@ -0,0 +1,80 @@
|
||||
---
|
||||
schema: armada/Chart/v1
|
||||
metadata:
|
||||
schema: metadata/Document/v1
|
||||
name: ptp-notification-psp-rolebinding
|
||||
data:
|
||||
chart_name: ptp-notification-psp-rolebinding
|
||||
release: ptp-notification-psp-rolebinding
|
||||
namespace: notification
|
||||
values:
|
||||
rolebindingNamespace: notification
|
||||
serviceAccount: notification
|
||||
source:
|
||||
location: http://172.17.0.1:8080/helm_charts/stx-platform/psp-rolebinding-0.1.0.tgz
|
||||
subpath: psp-rolebinding
|
||||
type: tar
|
||||
reference: master
|
||||
upgrade:
|
||||
no_hooks: false
|
||||
pre:
|
||||
delete:
|
||||
- labels:
|
||||
release_group: ptp-notification-psp-rolebinding
|
||||
type: job
|
||||
wait:
|
||||
labels:
|
||||
release_group: ptp-notification-psp-rolebinding
|
||||
resources: []
|
||||
timeout: 1800
|
||||
dependencies: []
|
||||
---
|
||||
schema: armada/Chart/v1
|
||||
metadata:
|
||||
schema: metadata/Document/v1
|
||||
name: ptp-notification
|
||||
data:
|
||||
chart_name: ptp-notification
|
||||
release: ptp-notification
|
||||
namespace: notification
|
||||
wait:
|
||||
timeout: 1800
|
||||
labels:
|
||||
app: ptp-notification
|
||||
install:
|
||||
no_hooks: false
|
||||
upgrade:
|
||||
no_hooks: false
|
||||
pre:
|
||||
delete:
|
||||
- type: job
|
||||
labels:
|
||||
app: ptp-notification
|
||||
values:
|
||||
replicaCount: 1
|
||||
source:
|
||||
type: tar
|
||||
location: http://172.17.0.1/helm_charts/stx-platform/ptp-notification-0.1.0.tgz
|
||||
subpath: ptp-notification
|
||||
reference: master
|
||||
dependencies: []
|
||||
---
|
||||
schema: armada/ChartGroup/v1
|
||||
metadata:
|
||||
schema: metadata/Document/v1
|
||||
name: ptp-notification
|
||||
data:
|
||||
description: "Deploy PTP Notification"
|
||||
sequenced: false
|
||||
chart_group:
|
||||
- ptp-notification
|
||||
- ptp-notification-psp-rolebinding
|
||||
---
|
||||
schema: armada/Manifest/v1
|
||||
metadata:
|
||||
schema: metadata/Document/v1
|
||||
name: ptp-notification-manifest
|
||||
data:
|
||||
release_prefix: ptp
|
||||
chart_groups:
|
||||
- ptp-notification
|
@ -0,0 +1,3 @@
|
||||
# hacking pulls in flake8
|
||||
hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
|
||||
bashate >= 0.2
|
Loading…
x
Reference in New Issue
Block a user