Added armada manifest and required build files
This commit builds the armada manifest and packages the base helm charts and sysinv integration code into the final rpm. The output rpm, stx-ptp-notification-helm*.rpm can be deployed on a running system. Removes unused files in ptp-notification-helm. All required charts are now located under stx-ptp-notification-helm. Story: 2008529 Task: 41724 Signed-off-by: Cole Walker <cole.walker@windriver.com> Change-Id: I49e970b7d21e4078aea3d185fbe98910f3d59ce6
This commit is contained in:
parent
545e6b6bb0
commit
eea4578dd1
@ -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…
Reference in New Issue
Block a user