From 570dc8fde9cee3d82db39fb09a79e560550329c0 Mon Sep 17 00:00:00 2001 From: Tristan Cacqueray Date: Sep 21 2020 21:00:59 +0000 Subject: [PATCH 1/2] oc-deploy: use mini dhall package to improve performance This change also reformat the code using the latest pretty printer. --- diff --git a/oc-deploy.dhall b/oc-deploy.dhall index 9f9ccb7..8e7aee8 100644 --- a/oc-deploy.dhall +++ b/oc-deploy.dhall @@ -1,8 +1,8 @@ -- examples/deploymentSimple.dhall -let openshift = https://raw.githubusercontent.com/TristanCacqueray/dhall-openshift/master/package.dhall sha256:5d6efe2ed15b3e4e263bafce9752c45c671a42bbefd4d483e87d40d41d089640 - -let ocp = https://raw.githubusercontent.com/TristanCacqueray/dhall-openshift/master/typesUnion.dhall sha256:35cd4481c88a3a6b25078afcb807cd4264cf0889982c15046a5bbb8d86c047d4 +let openshift = + ~/src/github.com/TristanCacqueray/dhall-openshift/mini-package.dhall + ? https://raw.githubusercontent.com/TristanCacqueray/dhall-openshift/c2ae2e5b0421c81b804cf0d6093a1b1e1a115f8c/mini-package.dhall sha256:7325790b3874ed8dc0459965a880f583c6b37a8871882590f5d6e4b5187f9a82 let deployment = openshift.Deployment::{ @@ -13,7 +13,10 @@ let deployment = } , replicas = Some 1 , template = openshift.PodTemplateSpec::{ - , metadata = openshift.ObjectMeta::{ name = Some "fm-gateway", labels = Some (toMap { app = "fm-gateway"}) } + , metadata = openshift.ObjectMeta::{ + , name = Some "fm-gateway" + , labels = Some (toMap { app = "fm-gateway" }) + } , spec = Some openshift.PodSpec::{ , volumes = Some [ openshift.Volume::{ @@ -47,111 +50,130 @@ let service = , metadata = openshift.ObjectMeta::{ name = Some "fm-gateway-service" } , spec = Some openshift.ServiceSpec::{ , selector = Some (toMap { app = "fm-gateway" }) - , ports = Some [ openshift.ServicePort::{ - , targetPort = Some (openshift.IntOrString.Int 8080) - , port = 80 - }] + , ports = Some + [ openshift.ServicePort::{ + , targetPort = Some (openshift.IntOrString.Int 8080) + , port = 80 + } + ] } } -let route = openshift.Route::{ - , metadata = openshift.ObjectMeta::{ name = Some "fm-gateway" } - , spec = openshift.RouteSpec::{ - , host = "fm-gateway-rhos-org.apps.ocp.prod.psi.redhat.com" - , path = Some "/" - , port = Some openshift.RoutePort::{ targetPort = openshift.IntOrString.Int 8080} - , tls = Some openshift.TLSConfig::{ insecureEdgeTerminationPolicy = Some "Redirect", termination = "edge"} - , to = openshift.RouteTargetReference::{ - , kind = "Service" - , name = "fm-gateway-service" - , weight = 100 +let route = + openshift.Route::{ + , metadata = openshift.ObjectMeta::{ name = Some "fm-gateway" } + , spec = openshift.RouteSpec::{ + , host = "fm-gateway-rhos-org.apps.ocp.prod.psi.redhat.com" + , path = Some "/" + , port = Some openshift.RoutePort::{ + , targetPort = openshift.IntOrString.Int 8080 + } + , tls = Some openshift.TLSConfig::{ + , insecureEdgeTerminationPolicy = Some "Redirect" + , termination = "edge" + } + , to = openshift.RouteTargetReference::{ + , kind = "Service" + , name = "fm-gateway-service" + , weight = 100 + } } } - } -let toml = '' - amqp_url = "amqps://fedora:@rabbitmq.fedoraproject.org/%2Fpublic_pubsub" +let toml = + '' + amqp_url = "amqps://fedora:@rabbitmq.fedoraproject.org/%2Fpublic_pubsub" - [tls] - ca_cert = "/etc/fedora-messaging/cacert.pem" + [tls] - keyfile = "/etc/fedora-messaging/fedora-key.pem" + ca_cert = "/etc/fedora-messaging/cacert.pem" - certfile = "/etc/fedora-messaging/fedora-cert.pem" + keyfile = "/etc/fedora-messaging/fedora-key.pem" + certfile = "/etc/fedora-messaging/fedora-cert.pem" - [client_properties] - app = "Fedora Messaging Zuul" + [client_properties] + app = "Fedora Messaging Zuul" - [exchanges."amq.topic"] - type = "topic" + [exchanges."amq.topic"] - durable = true + type = "topic" - auto_delete = false + durable = true - arguments = {} + auto_delete = false + arguments = {} - [qos] - prefetch_size = 0 + [qos] - prefetch_count = 25 + prefetch_size = 0 + prefetch_count = 25 - [log_config] - version = 1 + [log_config] - disable_existing_loggers = true + version = 1 + disable_existing_loggers = true - [log_config.formatters.simple] - format = "[%(levelname)-7s %(name)s] - %(message)s" + [log_config.formatters.simple] + format = "[%(levelname)-7s %(name)s] - %(message)s" - [log_config.handlers.console] - class = "logging.StreamHandler" + [log_config.handlers.console] - formatter = "simple" + class = "logging.StreamHandler" - stream = "ext://sys.stdout" + formatter = "simple" + stream = "ext://sys.stdout" - [log_config.root] - level = "DEBUG" + [log_config.root] - handlers = ["console"] + level = "DEBUG" + handlers = ["console"] - [consumer_config] - # If true the payload will by written in a file but not send to webhook server url + [consumer_config] - send_to_file = false + # If true the payload will by written in a file but not send to webhook server url - verify_ssl = true + send_to_file = false - topic_prefixes_dest = [ - "org.fedoraproject.prod.pagure,https://softwarefactory-project.io/zuul/api/connection/src.fedoraproject.org/payload" - ] + verify_ssl = true - exclude_projects = [] + topic_prefixes_dest = [ + "org.fedoraproject.prod.pagure,https://softwarefactory-project.io/zuul/api/connection/src.fedoraproject.org/payload" + ] - stats_server_port = 8080 -'' + exclude_projects = [] -let config = openshift.ConfigMap::{ - , metadata = openshift.ObjectMeta::{ name = Some "config-toml" } - , data = Some [{mapKey = "config.toml", mapValue = toml}] -} + stats_server_port = 8080 + '' -in { apiVersion = "v1", kind = "List", items = [ocp.Route route, ocp.Service service, ocp.Deployment deployment, ocp.ConfigMap config] } +let config = + openshift.ConfigMap::{ + , metadata = openshift.ObjectMeta::{ name = Some "config-toml" } + , data = Some [ { mapKey = "config.toml", mapValue = toml } ] + } + +in { apiVersion = "v1" + , kind = "List" + , items = + [ openshift.Resource.Route route + , openshift.Resource.Service service + , openshift.Resource.Deployment deployment + , openshift.Resource.ConfigMap config + ] + } From 6f3ccd0158303a21048078e5f4d44ad54cf695ea Mon Sep 17 00:00:00 2001 From: Tristan Cacqueray Date: Sep 21 2020 21:53:26 +0000 Subject: [PATCH 2/2] oc-deploy: use the shake-factory function Depends-On: https://softwarefactory-project.io/r/19596 --- diff --git a/oc-deploy.dhall b/oc-deploy.dhall index 8e7aee8..c71e45d 100644 --- a/oc-deploy.dhall +++ b/oc-deploy.dhall @@ -1,84 +1,7 @@ -- examples/deploymentSimple.dhall -let openshift = - ~/src/github.com/TristanCacqueray/dhall-openshift/mini-package.dhall - ? https://raw.githubusercontent.com/TristanCacqueray/dhall-openshift/c2ae2e5b0421c81b804cf0d6093a1b1e1a115f8c/mini-package.dhall sha256:7325790b3874ed8dc0459965a880f583c6b37a8871882590f5d6e4b5187f9a82 - -let deployment = - openshift.Deployment::{ - , metadata = openshift.ObjectMeta::{ name = Some "fm-gateway" } - , spec = Some openshift.DeploymentSpec::{ - , selector = openshift.LabelSelector::{ - , matchLabels = Some (toMap { app = "fm-gateway" }) - } - , replicas = Some 1 - , template = openshift.PodTemplateSpec::{ - , metadata = openshift.ObjectMeta::{ - , name = Some "fm-gateway" - , labels = Some (toMap { app = "fm-gateway" }) - } - , spec = Some openshift.PodSpec::{ - , volumes = Some - [ openshift.Volume::{ - , name = "fm-gateway-config" - , configMap = Some openshift.ConfigMapVolumeSource::{ - , name = Some "config-toml" - } - } - ] - , containers = - [ openshift.Container::{ - , name = "fm-gateway" - , image = Some "quay.io/software-factory/fm-gateway:latest" - , ports = Some - [ openshift.ContainerPort::{ containerPort = 8080 } ] - , volumeMounts = Some - [ openshift.VolumeMount::{ - , name = "fm-gateway-config" - , mountPath = "/data/" - } - ] - } - ] - } - } - } - } - -let service = - openshift.Service::{ - , metadata = openshift.ObjectMeta::{ name = Some "fm-gateway-service" } - , spec = Some openshift.ServiceSpec::{ - , selector = Some (toMap { app = "fm-gateway" }) - , ports = Some - [ openshift.ServicePort::{ - , targetPort = Some (openshift.IntOrString.Int 8080) - , port = 80 - } - ] - } - } - -let route = - openshift.Route::{ - , metadata = openshift.ObjectMeta::{ name = Some "fm-gateway" } - , spec = openshift.RouteSpec::{ - , host = "fm-gateway-rhos-org.apps.ocp.prod.psi.redhat.com" - , path = Some "/" - , port = Some openshift.RoutePort::{ - , targetPort = openshift.IntOrString.Int 8080 - } - , tls = Some openshift.TLSConfig::{ - , insecureEdgeTerminationPolicy = Some "Redirect" - , termination = "edge" - } - , to = openshift.RouteTargetReference::{ - , kind = "Service" - , name = "fm-gateway-service" - , weight = 100 - } - } - } +let ShakeFactory = + ~/src/softwarefactory-project.io/software-factory/shake-factory/package.dhall let toml = '' @@ -162,18 +85,12 @@ let toml = stats_server_port = 8080 '' -let config = - openshift.ConfigMap::{ - , metadata = openshift.ObjectMeta::{ name = Some "config-toml" } - , data = Some [ { mapKey = "config.toml", mapValue = toml } ] - } - -in { apiVersion = "v1" - , kind = "List" - , items = - [ openshift.Resource.Route route - , openshift.Resource.Service service - , openshift.Resource.Deployment deployment - , openshift.Resource.ConfigMap config - ] - } +in ShakeFactory.OpenShift.Simple + "fm-gateway" + "quay.io/software-factory/fm-gateway:latest" + 8080 + "fm-gateway-rhos-org.apps.ocp.prod.psi.redhat.com" + ( ShakeFactory.OpenShift.Config + "config-toml" + [ { mapKey = "config.toml", mapValue = toml } ] + ) diff --git a/oc-deploy.yaml b/oc-deploy.yaml index ae31ad8..160bf66 100644 --- a/oc-deploy.yaml +++ b/oc-deploy.yaml @@ -55,85 +55,85 @@ items: name: fm-gateway-config - apiVersion: v1 data: - config.toml: |2 - amqp_url = "amqps://fedora:@rabbitmq.fedoraproject.org/%2Fpublic_pubsub" + config.toml: | + amqp_url = "amqps://fedora:@rabbitmq.fedoraproject.org/%2Fpublic_pubsub" - [tls] + [tls] - ca_cert = "/etc/fedora-messaging/cacert.pem" + ca_cert = "/etc/fedora-messaging/cacert.pem" - keyfile = "/etc/fedora-messaging/fedora-key.pem" + keyfile = "/etc/fedora-messaging/fedora-key.pem" - certfile = "/etc/fedora-messaging/fedora-cert.pem" + certfile = "/etc/fedora-messaging/fedora-cert.pem" - [client_properties] + [client_properties] - app = "Fedora Messaging Zuul" + app = "Fedora Messaging Zuul" - [exchanges."amq.topic"] + [exchanges."amq.topic"] - type = "topic" + type = "topic" - durable = true + durable = true - auto_delete = false + auto_delete = false - arguments = {} + arguments = {} - [qos] + [qos] - prefetch_size = 0 + prefetch_size = 0 - prefetch_count = 25 + prefetch_count = 25 - [log_config] + [log_config] - version = 1 + version = 1 - disable_existing_loggers = true + disable_existing_loggers = true - [log_config.formatters.simple] + [log_config.formatters.simple] - format = "[%(levelname)-7s %(name)s] - %(message)s" + format = "[%(levelname)-7s %(name)s] - %(message)s" - [log_config.handlers.console] + [log_config.handlers.console] - class = "logging.StreamHandler" + class = "logging.StreamHandler" - formatter = "simple" + formatter = "simple" - stream = "ext://sys.stdout" + stream = "ext://sys.stdout" - [log_config.root] + [log_config.root] - level = "DEBUG" + level = "DEBUG" - handlers = ["console"] + handlers = ["console"] - [consumer_config] + [consumer_config] - # If true the payload will by written in a file but not send to webhook server url + # If true the payload will by written in a file but not send to webhook server url - send_to_file = false + send_to_file = false - verify_ssl = true + verify_ssl = true - topic_prefixes_dest = [ - "org.fedoraproject.prod.pagure,https://softwarefactory-project.io/zuul/api/connection/src.fedoraproject.org/payload" - ] + topic_prefixes_dest = [ + "org.fedoraproject.prod.pagure,https://softwarefactory-project.io/zuul/api/connection/src.fedoraproject.org/payload" + ] - exclude_projects = [] + exclude_projects = [] - stats_server_port = 8080 + stats_server_port = 8080 kind: ConfigMap metadata: name: config-toml