Controller Changes for Kubernetes Orchestration

Controller Container Source Code Changes

Few changes were necessary in the Kubernetes POD implementation of the Controller source code vs the Linked Docker Controller source in the previous folder.  Differences are annotated below:

The Kubernetes POD Controller source (announce_prefix3-js)  references all HTTP POSTS back to the Model/Flask app with the following url references. The place holder “HOST-REF” will be replaced by the Node’s real host name during run time once the Container is created. 

$http({
                method: 'POST',
                url: 'http://HOST-REF:30000/repush',

Apache Virtual Host Files:

The Apache virtual host files must be configured so as to reflect that port 8081 is watched for HTTP activity: 

<VirtualHost *:8081>
	# The ServerName directive sets the request scheme, hostname and port that
	# the server uses to identify itself. This is used when creating
	# redirection URLs. In the context of virtual hosts, the ServerName
	# specifies what hostname must appear in the request's Host: header to
	# match this virtual host. For the default virtual host (this file) this
	# value is not decisive as it is used as a last resort host regardless.
	# However, you must set it for any further virtual host explicitly.
	#ServerName www.example.com

	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/html

	# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
	# error, crit, alert, emerg.
	# It is also possible to configure the loglevel for particular
	# modules, e.g.
	#LogLevel info ssl:warn

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

	# For most configuration files from conf-available/, which are
	# enabled or disabled at a global level, it is possible to
	# include a line for only one particular virtual host. For example the
	# following line enables the CGI configuration for this host only
	# after it has been globally disabled with "a2disconf".
	#Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

ports.conf

# If you just change the port or add more ports here, you will likely also

# have to change the VirtualHost statement in

# /etc/apache2/sites-enabled/000-default.conf

Listen 8081

<IfModule ssl_module>
	Listen 443
</IfModule>

<IfModule mod_gnutls.c>
	Listen 443
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Dockerfile Changes

The following changes to made to the Controller Dockerfile as implemented in the Kubernetes POD container:

Implement the Apache2 listening port changes

#change aoache2 listening port

COPY ports.conf /etc/apache2/ports.conf

COPY 000-default.conf /etc/apache2/sites-enabled/000-default.conf

COPY 000-default.conf /etc/apache2/sites-available/000-default.conf

expose the container’s unique port on the Node’s localhost

EXPOSE 8081