Merge pull request #1786 from jberry-suse/obs_operator-dist

dist/kubernetes: provide OBS Operator component (and related changes)
This commit is contained in:
Jimmy Berry 2018-11-26 16:29:29 -06:00 committed by GitHub
commit 590fd22198
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 128 additions and 4 deletions

View File

@ -21,6 +21,7 @@
<packages type="image">
<package name="openSUSE-release-tools-check-source"/>
<package name="openSUSE-release-tools-leaper"/>
<package name="openSUSE-release-tools-obs-operator"/>
<package name="openSUSE-release-tools-pkglistgen"/>
<package name="openSUSE-release-tools-repo-checker"/>
<package name="openSUSE-release-tools-staging-bot"/>

View File

@ -7,8 +7,9 @@ environments:
k8sVersion: v1.8.0
path: heroes
targets:
- check-source
- repo-checker
#- check-source
- obs-operator
#- repo-checker
kind: ksonnet.io/app
name: openSUSE-release-tools
version: 0.0.1

View File

@ -0,0 +1,14 @@
{
global: {
cpu: "100m",
memory: "128Mi",
image: null,
prefix: "obs-operator",
},
components: {
service: {
externalIPs: null,
externalPort: null,
},
},
}

View File

@ -0,0 +1,13 @@
local params = std.extVar("__ksonnet/params").components.service;
local service = import '../service.libsonnet';
[
service.parts.deployment.base(
params.prefix, "deployment",
params.cpu, params.memory, params.image,
"osrt-obs_operator --debug"),
service.parts.service.base(
params.prefix, "service", 8080, params.externalIPs, params.externalPort,
),
]

View File

@ -0,0 +1,84 @@
{
parts:: {
deployment:: {
base(prefix, name, cpu, memory, image, command):: {
apiVersion: "apps/v1",
kind: "Deployment",
metadata: {
name: prefix + "-" + name,
labels: {
app: prefix,
},
},
spec: {
replicas: 1,
selector: {
matchLabels: {
app: prefix,
},
},
template: {
metadata: {
labels: {
app: prefix,
},
},
spec: {
containers: [{
name: "service",
image: image,
args: [
"/bin/bash", "-c",
"cp /secret/.oscrc /root && osc staging --version && " + command
],
volumeMounts: [
{
name: "oscrc",
mountPath: "/secret",
readOnly: true,
},
],
resources: {
requests: {
cpu: cpu,
memory: memory,
}
}
}],
volumes: [
{
name: "oscrc",
secret: {
secretName: prefix + "-oscrc",
}
},
],
}
}
}
}
},
service:: {
base(prefix, name, internalPort, externalIPs, externalPort):: {
apiVersion: "v1",
kind: "Service",
metadata: {
name: prefix + "-" + name,
},
spec: {
type: "NodePort",
selector: {
app: prefix,
},
ports: [{
protocol: "TCP",
port: internalPort,
nodePort: externalPort,
}],
externalIPs: externalIPs,
}
}
},
}
}

View File

@ -1,4 +1,4 @@
local image = "registry.opensuse.org/home/jberry/container/container/osrt/worker-obs";
local image = "registry.opensuse.org/opensuse/tools/images/images/osrt/worker-obs";
local image_version = "latest";
local image_full = image + ':' + image_version;

View File

@ -2,6 +2,14 @@ local params = std.extVar("__ksonnet/params");
local globals = import "globals.libsonnet";
local envParams = params + {
components+: {
"obs-operator.service"+: {
externalIPs: [
"192.168.47.44",
"192.168.47.45",
"192.168.47.46",
],
externalPort: 31452,
},
"repo-checker.project_only"+: {
projects: [
"openSUSE:Factory",

View File

@ -27,6 +27,7 @@ License: GPL-2.0-or-later AND MIT
Group: Development/Tools/Other
Url: https://github.com/openSUSE/openSUSE-release-tools
Source: %{name}-%{version}.tar.xz
Source99: osrt-worker-obs.kiwi
BuildArch: noarch
# Requires sr#512849 which provides osc_plugin_dir.
BuildRequires: osc >= 0.159.0

View File

@ -1,4 +1,6 @@
#!/usr/bin/python3
#!/usr/bin/python3 -u
# Without the -u option for unbuffered output nothing shows up in journal or
# kubernetes logs.
import argparse
from http.cookies import SimpleCookie