firmitas: update deployment with label selector
add configuration for myconfig.py and certlist.yml add Secret to hold configuration add task to deploy secret Signed-off-by: David Kirwan <davidkirwanirl@gmail.com>
This commit is contained in:
parent
95ff81ef4f
commit
fcf29b3567
7 changed files with 1423 additions and 1 deletions
|
@ -4,8 +4,10 @@ firmitas_application_name: "{{ firmitas_namespace }}"
|
||||||
firmitas_pagure_secret_volume_name: "firmitas-pagure-volume"
|
firmitas_pagure_secret_volume_name: "firmitas-pagure-volume"
|
||||||
firmitas_pagure_secret_name: "firmitas-pagure-secret"
|
firmitas_pagure_secret_name: "firmitas-pagure-secret"
|
||||||
firmitas_stg_pagure_apikey: "OVERRIDEME" # in the ansible-private repo
|
firmitas_stg_pagure_apikey: "OVERRIDEME" # in the ansible-private repo
|
||||||
|
firmitas_stg_pagure_username: "OVERRIDEME" # in the ansible-private repo
|
||||||
firmitas_stg_pagure_host: "OVERRIDEME" # in the ansible-private repo
|
firmitas_stg_pagure_host: "OVERRIDEME" # in the ansible-private repo
|
||||||
firmitas_pagure_apikey: "OVERRIDEME" # in the ansible-private repo
|
firmitas_pagure_apikey: "OVERRIDEME" # in the ansible-private repo
|
||||||
|
firmitas_pagure_username: "OVERRIDEME" # in the ansible-private repo
|
||||||
firmitas_pagure_host: "OVERRIDEME" # in the ansible-private repo
|
firmitas_pagure_host: "OVERRIDEME" # in the ansible-private repo
|
||||||
firmitas_certs_location: "https://infrastructure.fedoraproject.org/infra/rabbitmq-certs/"
|
firmitas_certs_location: "https://infrastructure.fedoraproject.org/infra/rabbitmq-certs/"
|
||||||
firmitas_requester: "t0xic0der"
|
firmitas_requester: "t0xic0der"
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
---
|
||||||
|
# generate the templates for project to be created
|
||||||
|
- name: Create the myconfig.py configuration
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: myconfig.py.j2
|
||||||
|
dest: /ocp4/openshift-apps/firmitas/myconfig.py
|
||||||
|
mode: 0600
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
tags:
|
||||||
|
- firmitas-configuration-secret
|
||||||
|
|
||||||
|
# generate the templates for project to be created
|
||||||
|
- name: Create the myconfig.py configuration
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: certlist.yml.j2
|
||||||
|
dest: /ocp4/openshift-apps/firmitas/certlist.yml
|
||||||
|
mode: 0600
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
tags:
|
||||||
|
- firmitas-configuration-secret
|
||||||
|
|
||||||
|
# Create the Secret from this file
|
||||||
|
# generate the templates for project to be created
|
||||||
|
- name: copy the templates to the host
|
||||||
|
template:
|
||||||
|
src: "secret-configuration.yml"
|
||||||
|
dest: "/root/ocp4/openshift-apps/firmitas/secret-configuration.yml"
|
||||||
|
mode: 0600
|
||||||
|
vars:
|
||||||
|
firmitas_myconfig_py_file:
|
||||||
|
"{{ lookup('file',
|
||||||
|
'/ocp4/openshift-apps/firmitas/myconfig.py')
|
||||||
|
}}"
|
||||||
|
firmitas_certlist_yml_file:
|
||||||
|
"{{ lookup('file',
|
||||||
|
'/ocp4/openshift-apps/firmitas/certlist.yml')
|
||||||
|
}}"
|
||||||
|
|
||||||
|
|
||||||
|
# apply the openshift resources
|
||||||
|
- name: oc apply resources
|
||||||
|
command: "/root/bin/oc apply -f /root/ocp4/openshift-apps/firmitas/secret-myconfig-py.yml"
|
||||||
|
tags:
|
||||||
|
- firmitas-configuration-secret
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
- include_tasks: create-namespace.yml
|
- include_tasks: create-namespace.yml
|
||||||
- include_tasks: create-pagure-apikey-secret.yml
|
- include_tasks: create-pagure-apikey-secret.yml
|
||||||
|
- include_tasks: create-firmitas-configuration-secret.yml
|
||||||
- include_tasks: create-persistent-volume-claim.yml
|
- include_tasks: create-persistent-volume-claim.yml
|
||||||
- include_tasks: create-imagestream.yml
|
- include_tasks: create-imagestream.yml
|
||||||
- include_tasks: create-buildconfig.yml
|
- include_tasks: create-buildconfig.yml
|
||||||
|
|
1265
roles/openshift-apps/firmitas/templates/certlist.yml.j2
Normal file
1265
roles/openshift-apps/firmitas/templates/certlist.yml.j2
Normal file
File diff suppressed because it is too large
Load diff
|
@ -11,6 +11,8 @@ spec:
|
||||||
app: "{{firmitas_application_name}}"
|
app: "{{firmitas_application_name}}"
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: "{{ firmitas_application_name }}"
|
||||||
spec:
|
spec:
|
||||||
securityContext:
|
securityContext:
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
@ -23,7 +25,7 @@ spec:
|
||||||
# type: RuntimeDefault
|
# type: RuntimeDefault
|
||||||
containers:
|
containers:
|
||||||
- image: "{{ firmitas_image }}"
|
- image: "{{ firmitas_image }}"
|
||||||
name: firmitas
|
name: "{{ firmitas_application_name }}"
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities:
|
capabilities:
|
||||||
|
|
96
roles/openshift-apps/firmitas/templates/myconfig.py.j2
Normal file
96
roles/openshift-apps/firmitas/templates/myconfig.py.j2
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
"""
|
||||||
|
Firmitas
|
||||||
|
Copyright (C) 2023-2024 Akashdeep Dhar
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify it under
|
||||||
|
the terms of the GNU General Public License as published by the Free Software
|
||||||
|
Foundation, either version 3 of the License, or (at your option) any later
|
||||||
|
version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along with
|
||||||
|
this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Any Red Hat trademarks that are incorporated in the source code or
|
||||||
|
documentation are not subject to the GNU General Public License and may only
|
||||||
|
be used or replicated with the express permission of Red Hat, Inc.
|
||||||
|
"""
|
||||||
|
|
||||||
|
"""
|
||||||
|
Variables related to notifications
|
||||||
|
"""
|
||||||
|
|
||||||
|
# The limit for how long a single request must be attempted for
|
||||||
|
rqsttime = 30
|
||||||
|
|
||||||
|
# The source code forge on which the issue tickets need to be created
|
||||||
|
gitforge = "pagure"
|
||||||
|
|
||||||
|
# The location of the ticketing repository
|
||||||
|
repoloca = ""
|
||||||
|
|
||||||
|
# The name of the ticketing repository with namespace
|
||||||
|
reponame = ""
|
||||||
|
|
||||||
|
# The username to masquerade as in order to create notification tickets
|
||||||
|
username = "{{ (env == 'staging')|ternary(firmitas_stg_pagure_user, firmitas_pagure_user) }}"
|
||||||
|
|
||||||
|
# The API key for the source code forge pertaining to the user
|
||||||
|
password = "{{ (env == 'staging')|ternary(firmitas_stg_pagure_apikey, firmitas_pagure_apikey) }}"
|
||||||
|
|
||||||
|
# Number of days from validity expiry to make the notification for
|
||||||
|
daysqant = 30
|
||||||
|
|
||||||
|
# List of labels to tag the notification tickets with
|
||||||
|
tagslist = ["firmitas", "automate", "notifier"]
|
||||||
|
|
||||||
|
# Maximum number of retries to opening the notification ticket
|
||||||
|
maxretry = 5
|
||||||
|
|
||||||
|
"""
|
||||||
|
Variables related to probing
|
||||||
|
"""
|
||||||
|
|
||||||
|
# The location of the X.509 standard TLS certificates
|
||||||
|
certloca = "/var/tmp/firmitas/certhere" # noqa : S108
|
||||||
|
|
||||||
|
# The location of the service hostnames and maintainers map
|
||||||
|
hostloca = "/var/tmp/firmitas/certlist.yml" # noqa: S108
|
||||||
|
|
||||||
|
"""
|
||||||
|
Variables related to logging
|
||||||
|
"""
|
||||||
|
|
||||||
|
# The default configuration for service logging
|
||||||
|
logrconf = {
|
||||||
|
"version": 1,
|
||||||
|
"disable_existing_loggers": False,
|
||||||
|
"formatters": {
|
||||||
|
"standard": {
|
||||||
|
"format": "[FMTS] %(asctime)s [%(levelname)s] %(message)s",
|
||||||
|
"datefmt": "[%Y-%m-%d %I:%M:%S %z]",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"handlers": {
|
||||||
|
"console": {
|
||||||
|
"level": "DEBUG",
|
||||||
|
"formatter": "standard",
|
||||||
|
"class": "logging.StreamHandler",
|
||||||
|
"stream": "ext://sys.stdout",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"level": "DEBUG",
|
||||||
|
"handlers": ["console"],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
"""
|
||||||
|
Variables used for computing
|
||||||
|
"""
|
||||||
|
|
||||||
|
certdict = {}
|
|
@ -0,0 +1,10 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: "{{ firmitas_application_name }}-configuration-secret"
|
||||||
|
namespace: "{{ firmitas_namespace }}"
|
||||||
|
data:
|
||||||
|
myconfig.py:
|
||||||
|
"{{ firmitas_myconfig_py_file | b64encode }}"
|
||||||
|
certlist.yml:
|
||||||
|
"{{ firmitas_certlist_yml_file | b64encode }}"
|
Loading…
Add table
Add a link
Reference in a new issue