I’m not sure yet but this post might be the last one for now – unless I come up with something really cool to do in K3s.
Anyway, one of the things people do in a professional environment is to run OpenShift on “Big Iron”, as in IBM Power, or even IBM Z series.
Of course I can’t do that here – have you ever seen the price tags on those things, not to mention the electricity bill for the system and AC?
So … lets just take that thought, and turn it completely upside down, shall we? If we can’t run our containers on an IBM mainframe, how about we run the Mainframe in a container?
Enter hercules, and tk4.
Hercules is an open source emulator for IBM /370, IBM /390 and IBM Z, and tk4, the “Turn Key System version 4” is a ready-to-use package of the MVS operating system, which is also Open Source, Version 3.8j. Also entering: “rattydave”. “rattydave” is the username on github and dockerhub of a pretty awesome guy who provides ready to use container images of vintage computing systems running on emulators. If it’s old and cool, and an emulator exists, chances are he made a container image for it. Keeping it short: he has a readily usable image of TK4 running in hercules, available here.
If you just want to use it in “local” docker, all you need to do is run it, and expose port 3270, and you’re set.
In my K3s environment there’s a bit more work involved, though:
- reconfigure traefik to add port 3270/TCP to service and ports:
Change the deployment file that I’m using for my traefik deployment so that port 3270 for telnet3270 is exposed as possible entry points (Lines 16-18, and 71-72 here), then apply it with kubectl
- Create a deployment file. There isn’t even that much to talk about in it, except for the fact that there are two ports in the service definition, and two traefik routers – a regular http router for the management console on port 8038, and a tcp router for port 3270 for telnet into the “mainframe”.
- After you apply the deployment you should be able to access your new “mainframe” with any 3270 telnet client.
Have a lot of fun!