Portainer Script Added
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
load_dotenv()
|
||||
file_name=list()
|
||||
#listing all yml file in the path
|
||||
for x in os.listdir(os.getenv('FILE_PATH')):
|
||||
if x.endswith(".yml"):
|
||||
print(x)
|
||||
file_name.append(x)
|
||||
portainer_json_format='''
|
||||
{
|
||||
"version": "2",
|
||||
"templates": [
|
||||
{
|
||||
'''
|
||||
temp_expect_handle=0
|
||||
port=1024
|
||||
for i in file_name:
|
||||
temp_replace_title=''
|
||||
temp=''
|
||||
with open(os.getenv('FILE_PATH')+i,'r') as f:
|
||||
givenWord = 'image:'
|
||||
for textline in f:
|
||||
wordsList = textline.split()
|
||||
if givenWord in wordsList:
|
||||
temp_replace_title=temp
|
||||
temp=textline
|
||||
|
||||
title=temp_replace_title.replace(" ", "").replace('\n','').replace(':','')
|
||||
with open(os.getenv('FILE_PATH')+i,'r') as ff:
|
||||
kk=ff.read()
|
||||
portainer_json_format +=' "type": 1,'
|
||||
portainer_json_format +=f'"title" : "{title}",\n'
|
||||
portainer_json_format +=f'"name": "{title}.bit.lan",\n'
|
||||
portainer_json_format +='"platform": "linux",\n'
|
||||
portainer_json_format+= '"administrator_only": false,\n'
|
||||
|
||||
#finding image name
|
||||
start_value=kk.rfind("image:")
|
||||
end_value=kk.find('\n',start_value+6)
|
||||
image=kk[start_value+6:end_value].replace(" ", "").replace('\n','')
|
||||
portainer_json_format +=f'"image" : "{image}",\n'
|
||||
portainer_json_format +=f'"hostname": "{title}",\n"restart_policy": "always",\n'
|
||||
portainer_json_format +=f'"ports": ["{port}/tcp"],\n'
|
||||
port+=1
|
||||
#volumes allocating
|
||||
try:
|
||||
start_value=kk.index("volumes:")
|
||||
|
||||
start_value=kk.find("-",start_value)
|
||||
end_Value=kk.find(":",start_value+3)
|
||||
# print("image :",kk[start_value+3:end_Value].replace(" ", "").replace('\n',''))
|
||||
ports=kk[start_value+3:end_Value].replace(" ", "").replace('\n','')
|
||||
portainer_json_format +='''
|
||||
"volumes": [
|
||||
{
|
||||
"container": "/%s/data",
|
||||
"bind": "/srv/%s.bit.lan/docker/data",
|
||||
"readonly": false
|
||||
},
|
||||
|
||||
{
|
||||
"container": "/%s/config",
|
||||
"bind": "/srv/%s.bit.lan/docker/config",
|
||||
"readonly": false
|
||||
}
|
||||
,
|
||||
{
|
||||
"container": "/%s/log",
|
||||
"bind": "/srv/%s.bit.lan/docker/log",
|
||||
"readonly": false
|
||||
}
|
||||
],\n'''%(title,title,title,title,title,title)
|
||||
|
||||
except:
|
||||
temp_expect_handle=1
|
||||
portainer_json_format+= ''' "labels": [
|
||||
{ "name": "com.centurylinklabs.watchtower.enable", "value": "true" }
|
||||
]'''
|
||||
portainer_json_format+= '''
|
||||
},
|
||||
{
|
||||
'''
|
||||
portainer_json_format+= '''
|
||||
]
|
||||
}
|
||||
'''
|
||||
|
||||
portainer_json_format = f"{portainer_json_format}"
|
||||
with open("portainer_json_format.json",'w') as f:
|
||||
f.write(portainer_json_format)
|
||||
Reference in New Issue
Block a user