fix: Persist slurm-web-agent
This commit is contained in:
@@ -0,0 +1,546 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
policy.ini: |
|
||||||
|
# Slurm-web default vendor RBAC policy. DO NOT MODIFY THIS FILE! Create a file
|
||||||
|
# /etc/slurm-web/policy.conf with your custom rules and Slurm-web will ignore
|
||||||
|
# this file. Your modifications in this file will be overwritten and lost on
|
||||||
|
# software upgrade.
|
||||||
|
|
||||||
|
[roles]
|
||||||
|
# Enable anonymous role with basic views
|
||||||
|
anonymous
|
||||||
|
# All authenticated users have the user role
|
||||||
|
user=ALL
|
||||||
|
|
||||||
|
[anonymous]
|
||||||
|
actions=view-stats,view-jobs,view-nodes
|
||||||
|
|
||||||
|
[user]
|
||||||
|
actions=view-stats,view-jobs,view-nodes,view-partitions,view-qos,view-accounts,view-reservations,cache-view
|
||||||
|
agent.ini: |
|
||||||
|
[service]
|
||||||
|
cluster=ekman
|
||||||
|
|
||||||
|
[slurmrestd]
|
||||||
|
uri=unix:/run/slurmrestd/hipster.socket
|
||||||
|
auth=local
|
||||||
|
|
||||||
|
[policy]
|
||||||
|
definition=data/conf/policy.yml
|
||||||
|
vendor_roles=data/conf/policy.ini
|
||||||
|
|
||||||
|
[racksdb]
|
||||||
|
enabled=no
|
||||||
|
|
||||||
|
[jwt]
|
||||||
|
key=data/secrets/jwt.key
|
||||||
|
policy.yml: |
|
||||||
|
actions:
|
||||||
|
view-stats: |
|
||||||
|
View general cluster statistics in home dashboard and clusters list.
|
||||||
|
view-jobs: |
|
||||||
|
Get _Jobs_ entry in main menu and permission to view all users jobs in
|
||||||
|
queue and all jobs details.
|
||||||
|
view-nodes: |
|
||||||
|
Get _Resources_ entry in main menu and permission to view the list of
|
||||||
|
compute nodes in cluster with their status in Slurm.
|
||||||
|
view-partitions: |
|
||||||
|
Permission to filter jobs and nodes by partition.
|
||||||
|
view-qos: |
|
||||||
|
Get _QOS_ entry in main menu and permission to view the list of defined QOS.
|
||||||
|
view-accounts: |
|
||||||
|
Permission to filter jobs by account.
|
||||||
|
view-reservations: |
|
||||||
|
Get _Reservations_ entry in main menu and permission to view the list of
|
||||||
|
defined reservations.
|
||||||
|
cache-view: |
|
||||||
|
Access to cache information and metrics in settings panel.
|
||||||
|
agent.yml: |
|
||||||
|
# This file contains the configuration settings definition for Slurm-web agent
|
||||||
|
# in RFL ConfigurationLoader format.
|
||||||
|
service:
|
||||||
|
cluster:
|
||||||
|
type: str
|
||||||
|
required: true
|
||||||
|
doc: Name of cluster served by agent
|
||||||
|
ex: atlas
|
||||||
|
interface:
|
||||||
|
type: str
|
||||||
|
default: localhost
|
||||||
|
doc: Interface address to bind for incoming connections
|
||||||
|
port:
|
||||||
|
type: int
|
||||||
|
default: 5012
|
||||||
|
doc: TCP port to listen for incoming connections
|
||||||
|
cors:
|
||||||
|
type: bool
|
||||||
|
default: false
|
||||||
|
doc: When true, Cross-Origin Resource Sharing (CORS) headers are enabled.
|
||||||
|
debug:
|
||||||
|
type: bool
|
||||||
|
default: false
|
||||||
|
doc: Enable debug mode
|
||||||
|
log_flags:
|
||||||
|
type: list
|
||||||
|
content: str
|
||||||
|
default:
|
||||||
|
- ALL
|
||||||
|
choices:
|
||||||
|
- slurmweb
|
||||||
|
- rfl
|
||||||
|
- werkzeug
|
||||||
|
- urllib3
|
||||||
|
- racksdb
|
||||||
|
- ALL
|
||||||
|
doc: List of log flags to enable. Special value `ALL` enables all log flags.
|
||||||
|
debug_flags:
|
||||||
|
type: list
|
||||||
|
content: str
|
||||||
|
default:
|
||||||
|
- slurmweb
|
||||||
|
choices:
|
||||||
|
- slurmweb
|
||||||
|
- rfl
|
||||||
|
- werkzeug
|
||||||
|
- urllib3
|
||||||
|
- racksdb
|
||||||
|
- ALL
|
||||||
|
doc: |
|
||||||
|
List of debug flags to enable. Special value `ALL` enables all debug
|
||||||
|
flags.
|
||||||
|
|
||||||
|
slurmrestd:
|
||||||
|
uri:
|
||||||
|
type: uri
|
||||||
|
default: unix:///run/slurmrestd/slurmrestd.socket
|
||||||
|
doc: |
|
||||||
|
URI to slurmrestd HTTP server. It can either be in the form
|
||||||
|
http://host:port for TCP/IP server or unix:///path/to/slurmrestd.socket
|
||||||
|
for Unix socket.
|
||||||
|
socket:
|
||||||
|
type: path
|
||||||
|
deprecated:
|
||||||
|
section: slurmrestd
|
||||||
|
parameter: uri
|
||||||
|
doc: Path to slurmrestd Unix socket.
|
||||||
|
auth:
|
||||||
|
type: str
|
||||||
|
choices:
|
||||||
|
- local
|
||||||
|
- jwt
|
||||||
|
default: jwt
|
||||||
|
doc: |
|
||||||
|
Authentication method with slurmrestd.
|
||||||
|
|
||||||
|
The `jwt` authentication method is supported by both TCP/IP and Unix
|
||||||
|
sockets URIs.
|
||||||
|
|
||||||
|
Note that `local` authentication method is only supported with Unix socket
|
||||||
|
URI and Slurm <= 24.11. With this method, Slurm-web agent must run with
|
||||||
|
the _slurm_ system user as well as `slurmrestd` service. Running
|
||||||
|
`slurmrestd` as _slurm_ system user is not possible with Slurm >= 25.05.
|
||||||
|
jwt_mode:
|
||||||
|
type: str
|
||||||
|
default: auto
|
||||||
|
choices:
|
||||||
|
- auto
|
||||||
|
- static
|
||||||
|
doc: |
|
||||||
|
Slurmrestd JWT authentication mode, either _auto_ or _static_.
|
||||||
|
|
||||||
|
In _auto_ mode, Slurm-web agent generates tokens with the signature key
|
||||||
|
specified in `jwt_key`. The tokens have a limited lifespan as defined with
|
||||||
|
`jwt_lifespan`. Tokens are automatically renewed upon expiration. This is
|
||||||
|
the recommended mode.
|
||||||
|
|
||||||
|
In _static_ mode, Slurm-web simply use the token provided with
|
||||||
|
`jwt_token`.
|
||||||
|
|
||||||
|
This parameter is used only when `auth` is _jwt_.
|
||||||
|
jwt_user:
|
||||||
|
type: str
|
||||||
|
default: slurm
|
||||||
|
doc: |
|
||||||
|
The user name used in HTTP headers with JWT authentication.
|
||||||
|
|
||||||
|
This parameter is used only when `auth` is _jwt_.
|
||||||
|
jwt_lifespan:
|
||||||
|
type: int
|
||||||
|
default: 3600
|
||||||
|
doc: |
|
||||||
|
Lifespan of JWT tokens generated by Slurm-web in seconds. The default
|
||||||
|
value is 1 hour.
|
||||||
|
|
||||||
|
This parameter is used only when `auth` is _jwt_ and `jwt_mode` is _auto_.
|
||||||
|
jwt_key:
|
||||||
|
type: path
|
||||||
|
default: /var/lib/slurm-web/slurmrestd.key
|
||||||
|
doc: |
|
||||||
|
Path to private key shared with Slurm for JWT signature. The key is used
|
||||||
|
by Slurm-web to generate its token for authentication on slurmrestd in
|
||||||
|
_auto_ mode. It must be the same key as used in Slurm `AuthAltParameters`
|
||||||
|
so that Slurm services can validate JWT generated by Slurm-web.
|
||||||
|
|
||||||
|
This parameter is used only when `auth` is _jwt_ and `jwt_mode` is
|
||||||
|
_auto_.
|
||||||
|
jwt_token:
|
||||||
|
type: password
|
||||||
|
doc: |
|
||||||
|
The static JSON Web Token (JWT) used in HTTP headers with JWT
|
||||||
|
authentication, typically generated with `scontrol token`. While this is
|
||||||
|
generally not a good practice, it is recommended to generate tokens with
|
||||||
|
infinite lifespan to avoid failures due to expired token.
|
||||||
|
|
||||||
|
This parameter is used only when `auth` is _jwt_ and `jwt_mode` is
|
||||||
|
_static_.
|
||||||
|
version:
|
||||||
|
type: str
|
||||||
|
default: '0.0.41'
|
||||||
|
doc: |
|
||||||
|
Slurm REST API version.
|
||||||
|
|
||||||
|
CAUTION: You SHOULD NOT change this parameter unless you really know what
|
||||||
|
you are doing. This parameter is more intented for Slurm-web developers
|
||||||
|
rather than end users. Slurm-web is officially tested and validated with
|
||||||
|
the default value only.
|
||||||
|
|
||||||
|
filters:
|
||||||
|
jobs:
|
||||||
|
type: list
|
||||||
|
content: str
|
||||||
|
default:
|
||||||
|
- account
|
||||||
|
- cpus
|
||||||
|
- gres_detail
|
||||||
|
- job_id
|
||||||
|
- job_state
|
||||||
|
- node_count
|
||||||
|
- nodes
|
||||||
|
- partition
|
||||||
|
- priority
|
||||||
|
- qos
|
||||||
|
- sockets_per_node
|
||||||
|
- state_reason
|
||||||
|
- tasks
|
||||||
|
- tres_per_job
|
||||||
|
- tres_per_node
|
||||||
|
- tres_per_socket
|
||||||
|
- tres_per_task
|
||||||
|
- user_name
|
||||||
|
doc: |
|
||||||
|
List of jobs fields selected in slurmrestd API when retrieving a list of
|
||||||
|
jobs, all other fields arefiltered out.
|
||||||
|
acctjob:
|
||||||
|
type: list
|
||||||
|
content: str
|
||||||
|
default:
|
||||||
|
- association
|
||||||
|
- comment
|
||||||
|
- derived_exit_code
|
||||||
|
- exit_code
|
||||||
|
- group
|
||||||
|
- name
|
||||||
|
- nodes
|
||||||
|
- partition
|
||||||
|
- priority
|
||||||
|
- qos
|
||||||
|
- script
|
||||||
|
- state
|
||||||
|
- steps
|
||||||
|
- submit_line
|
||||||
|
- time
|
||||||
|
- tres
|
||||||
|
- used_gres
|
||||||
|
- user
|
||||||
|
- wckey
|
||||||
|
- working_directory
|
||||||
|
doc: |
|
||||||
|
List of slurmdbd job fields selected in slurmrestd API when retrieving a
|
||||||
|
unique job, all other fields are filtered out.
|
||||||
|
ctldjob:
|
||||||
|
type: list
|
||||||
|
content: str
|
||||||
|
default:
|
||||||
|
- accrue_time
|
||||||
|
- batch_flag
|
||||||
|
- command
|
||||||
|
- cpus
|
||||||
|
- current_working_directory
|
||||||
|
- exclusive
|
||||||
|
- gres_detail
|
||||||
|
- last_sched_evaluation
|
||||||
|
- node_count
|
||||||
|
- partition
|
||||||
|
- sockets_per_node
|
||||||
|
- standard_error
|
||||||
|
- standard_input
|
||||||
|
- standard_output
|
||||||
|
- tasks
|
||||||
|
- tres_per_job
|
||||||
|
- tres_per_node
|
||||||
|
- tres_per_socket
|
||||||
|
- tres_per_task
|
||||||
|
- tres_req_str
|
||||||
|
doc: |
|
||||||
|
List of slurmctld job fields selected in slurmrestd API when retrieving a
|
||||||
|
unique job, all other fields are filtered out.
|
||||||
|
nodes:
|
||||||
|
type: list
|
||||||
|
content: str
|
||||||
|
default:
|
||||||
|
- name
|
||||||
|
- cpus
|
||||||
|
- sockets
|
||||||
|
- cores
|
||||||
|
- gres
|
||||||
|
- gres_used
|
||||||
|
- real_memory
|
||||||
|
- state
|
||||||
|
- reason
|
||||||
|
- partitions
|
||||||
|
- alloc_cpus
|
||||||
|
- alloc_idle_cpus
|
||||||
|
doc: |
|
||||||
|
List of nodes fields selected in slurmrestd API, all other fields are
|
||||||
|
filtered out.
|
||||||
|
node:
|
||||||
|
type: list
|
||||||
|
content: str
|
||||||
|
default:
|
||||||
|
- name
|
||||||
|
- architecture
|
||||||
|
- operating_system
|
||||||
|
- boot_time
|
||||||
|
- last_busy
|
||||||
|
- cpus
|
||||||
|
- sockets
|
||||||
|
- cores
|
||||||
|
- threads
|
||||||
|
- real_memory
|
||||||
|
- gres
|
||||||
|
- gres_used
|
||||||
|
- state
|
||||||
|
- reason
|
||||||
|
- partitions
|
||||||
|
- alloc_cpus
|
||||||
|
- alloc_idle_cpus
|
||||||
|
- alloc_memory
|
||||||
|
doc: |
|
||||||
|
List of invidual node fields selected in slurmrestd API, all other fields
|
||||||
|
are filtered out.
|
||||||
|
partitions:
|
||||||
|
type: list
|
||||||
|
content: str
|
||||||
|
default:
|
||||||
|
- name
|
||||||
|
- node_sets
|
||||||
|
doc: |
|
||||||
|
List of partitions fields selected in slurmrestd API, all other fields are
|
||||||
|
filtered out.
|
||||||
|
qos:
|
||||||
|
type: list
|
||||||
|
content: str
|
||||||
|
default:
|
||||||
|
- name
|
||||||
|
- description
|
||||||
|
- priority
|
||||||
|
- flags
|
||||||
|
- limits
|
||||||
|
doc: |
|
||||||
|
List of qos fields selected in slurmrestd API, all other fields are
|
||||||
|
filtered out.
|
||||||
|
reservations:
|
||||||
|
type: list
|
||||||
|
content: str
|
||||||
|
default:
|
||||||
|
- name
|
||||||
|
- users
|
||||||
|
- accounts
|
||||||
|
- node_list
|
||||||
|
- node_count
|
||||||
|
- start_time
|
||||||
|
- end_time
|
||||||
|
- flags
|
||||||
|
doc: |
|
||||||
|
List of reservations fields selected in slurmrestd API, all other fields
|
||||||
|
are filtered out.
|
||||||
|
accounts:
|
||||||
|
type: list
|
||||||
|
content: str
|
||||||
|
default:
|
||||||
|
- name
|
||||||
|
doc: |
|
||||||
|
List of accounts fields selected in slurmrestd API, all other fields are
|
||||||
|
filtered out.
|
||||||
|
|
||||||
|
policy:
|
||||||
|
definition:
|
||||||
|
type: path
|
||||||
|
default: /usr/share/slurm-web/conf/policy.yml
|
||||||
|
doc: Path to RBAC policy definition file with available actions
|
||||||
|
vendor_roles:
|
||||||
|
type: path
|
||||||
|
default: /usr/share/slurm-web/conf/policy.ini
|
||||||
|
doc: |
|
||||||
|
Path to default vendor RBAC policy definition file with roles and
|
||||||
|
permitted actions
|
||||||
|
roles:
|
||||||
|
type: path
|
||||||
|
default: /etc/slurm-web/policy.ini
|
||||||
|
doc: |
|
||||||
|
Path to site RBAC policy definition file with roles and permitted actions
|
||||||
|
|
||||||
|
jwt:
|
||||||
|
key:
|
||||||
|
type: path
|
||||||
|
default: /var/lib/slurm-web/jwt.key
|
||||||
|
doc: Path to private key for Slurm-web internal JWT signature.
|
||||||
|
algorithm:
|
||||||
|
type: str
|
||||||
|
choices:
|
||||||
|
# Full list available in PyJWT documentation:
|
||||||
|
# https://pyjwt.readthedocs.io/en/latest/algorithms.html
|
||||||
|
- HS256
|
||||||
|
- HS384
|
||||||
|
- HS512
|
||||||
|
- ES256
|
||||||
|
- ES256K
|
||||||
|
- ES384
|
||||||
|
- ES512
|
||||||
|
- RS256
|
||||||
|
- RS384
|
||||||
|
- RS512
|
||||||
|
- PS256
|
||||||
|
- PS384
|
||||||
|
- PS512
|
||||||
|
- EdDSA
|
||||||
|
default: HS256
|
||||||
|
doc: Cryptographic algorithm used to sign JWT
|
||||||
|
audience:
|
||||||
|
type: str
|
||||||
|
default: slurm-web
|
||||||
|
doc: |
|
||||||
|
Audience defined in generated JWT and expected in JWT provided by clients
|
||||||
|
|
||||||
|
racksdb:
|
||||||
|
enabled:
|
||||||
|
type: bool
|
||||||
|
default: true
|
||||||
|
doc: |
|
||||||
|
Control if RacksDB integration feature for advanced visualization of
|
||||||
|
resources is enabled.
|
||||||
|
# The default values in this section must be synchronized with RacksDB library
|
||||||
|
# defaults.
|
||||||
|
db:
|
||||||
|
type: path
|
||||||
|
default: /var/lib/racksdb
|
||||||
|
doc: Path to RacksDB database
|
||||||
|
schema:
|
||||||
|
type: path
|
||||||
|
default: /usr/share/racksdb/schemas/racksdb.yml
|
||||||
|
doc: Path to RacksDB database schema
|
||||||
|
extensions:
|
||||||
|
type: path
|
||||||
|
default: /etc/racksdb/extensions.yml
|
||||||
|
doc: Path to site-specific RacksDB schema extensions
|
||||||
|
drawings_schema:
|
||||||
|
type: path
|
||||||
|
default: /usr/share/racksdb/schemas/drawings.yml
|
||||||
|
doc: Path to RacksDB database schema
|
||||||
|
infrastructure:
|
||||||
|
type: str
|
||||||
|
doc: |
|
||||||
|
Name of the infrastructure for the cluster in RacksDB. By default, the
|
||||||
|
cluster name is used.
|
||||||
|
ex: atlas
|
||||||
|
tags:
|
||||||
|
type: list
|
||||||
|
content: str
|
||||||
|
default:
|
||||||
|
- compute
|
||||||
|
doc: List of tags applied to compute nodes in RacksDB database
|
||||||
|
|
||||||
|
cache:
|
||||||
|
enabled:
|
||||||
|
type: bool
|
||||||
|
default: false
|
||||||
|
doc: Determine if caching is enabled
|
||||||
|
host:
|
||||||
|
type: str
|
||||||
|
default: localhost
|
||||||
|
doc: Hostname of Redis cache server
|
||||||
|
port:
|
||||||
|
type: int
|
||||||
|
default: 6379
|
||||||
|
doc: TCP port of Redis cache server
|
||||||
|
password:
|
||||||
|
type: password
|
||||||
|
doc: |
|
||||||
|
Password to connect to protected Redis server. When this parameter is
|
||||||
|
not defined, Redis server is accessed without password.
|
||||||
|
ex: SECR3T
|
||||||
|
version:
|
||||||
|
type: int
|
||||||
|
default: 1800
|
||||||
|
doc: Expiration delay in seconds for Slurm version in cache
|
||||||
|
jobs:
|
||||||
|
type: int
|
||||||
|
default: 30
|
||||||
|
doc: Expiration delay in seconds for jobs in cache
|
||||||
|
job:
|
||||||
|
type: int
|
||||||
|
default: 10
|
||||||
|
doc: Expiration delay in seconds for invidual jobs in cache
|
||||||
|
nodes:
|
||||||
|
type: int
|
||||||
|
default: 30
|
||||||
|
doc: Expiration delay in seconds for nodes in cache
|
||||||
|
node:
|
||||||
|
type: int
|
||||||
|
default: 10
|
||||||
|
doc: Expiration delay in seconds for node in cache
|
||||||
|
partitions:
|
||||||
|
type: int
|
||||||
|
default: 60
|
||||||
|
doc: Expiration delay in seconds for partitions in cache
|
||||||
|
qos:
|
||||||
|
type: int
|
||||||
|
default: 60
|
||||||
|
doc: Expiration delay in seconds for QOS in cache
|
||||||
|
reservations:
|
||||||
|
type: int
|
||||||
|
default: 60
|
||||||
|
doc: Expiration delay in seconds for reservations in cache
|
||||||
|
accounts:
|
||||||
|
type: int
|
||||||
|
default: 60
|
||||||
|
doc: Expiration delay in seconds for accounts in cache
|
||||||
|
|
||||||
|
metrics:
|
||||||
|
enabled:
|
||||||
|
type: bool
|
||||||
|
default: false
|
||||||
|
doc: |
|
||||||
|
Determine if metrics feature and integration with Prometheus (or
|
||||||
|
compatible) is enabled.
|
||||||
|
restrict:
|
||||||
|
type: list
|
||||||
|
content: network
|
||||||
|
default:
|
||||||
|
- 127.0.0.0/24
|
||||||
|
- ::1/128
|
||||||
|
doc: |
|
||||||
|
Restricted list of IP networks permitted to request metrics.
|
||||||
|
host:
|
||||||
|
type: uri
|
||||||
|
default: http://localhost:9090
|
||||||
|
doc: |
|
||||||
|
URL of Prometheus server (or compatible) to requests metrics with PromQL.
|
||||||
|
job:
|
||||||
|
type: str
|
||||||
|
default: slurm
|
||||||
|
doc: Name of Prometheus job which scrapes Slurm-web metrics.
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: config
|
||||||
|
namespace: slurm-web
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: slurm-web-agent
|
||||||
|
namespace: slurm-web
|
||||||
|
spec:
|
||||||
|
progressDeadlineSeconds: 600
|
||||||
|
replicas: 1
|
||||||
|
revisionHistoryLimit: 10
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/instance: slurm-web-agent
|
||||||
|
app.kubernetes.io/name: slurm-web-agent
|
||||||
|
strategy:
|
||||||
|
rollingUpdate:
|
||||||
|
maxSurge: 25%
|
||||||
|
maxUnavailable: 25%
|
||||||
|
type: RollingUpdate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: slurm-web-agent
|
||||||
|
app.kubernetes.io/name: slurm-web-agent
|
||||||
|
namespace: slurm-web
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- command:
|
||||||
|
- slurm-web-agent
|
||||||
|
- --conf-defs
|
||||||
|
- /data/conf/agent.yml
|
||||||
|
- --conf
|
||||||
|
- /data/conf/agent.ini
|
||||||
|
image: registry.gitlab.com/oceanbox/slurm-web/agent:d512c0c5-debug
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: slurm-web-agent
|
||||||
|
terminationMessagePath: /dev/termination-log
|
||||||
|
ports:
|
||||||
|
- containerPort: 5012
|
||||||
|
name: http
|
||||||
|
protocol: TCP
|
||||||
|
readinessProbe:
|
||||||
|
failureThreshold: 3
|
||||||
|
httpGet:
|
||||||
|
path: /info
|
||||||
|
port: http
|
||||||
|
scheme: HTTP
|
||||||
|
periodSeconds: 10
|
||||||
|
successThreshold: 1
|
||||||
|
timeoutSeconds: 1
|
||||||
|
terminationMessagePolicy: File
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data/conf
|
||||||
|
name: config
|
||||||
|
- mountPath: /data/secrets/key
|
||||||
|
subPath: key
|
||||||
|
name: jwt
|
||||||
|
dnsPolicy: ClusterFirst
|
||||||
|
serviceAccountName: slurm-web-agent
|
||||||
|
imagePullSecrets:
|
||||||
|
- name: gitlab-pull-secret
|
||||||
|
restartPolicy: Always
|
||||||
|
schedulerName: default-scheduler
|
||||||
|
terminationGracePeriodSeconds: 30
|
||||||
|
volumes:
|
||||||
|
- secret:
|
||||||
|
defaultMode: 420
|
||||||
|
secretName: jwt
|
||||||
|
name: jwt
|
||||||
|
- configMap:
|
||||||
|
defaultMode: 420
|
||||||
|
name: config
|
||||||
|
name: config
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt-production
|
||||||
|
nginx.ingress.kubernetes.io/backend-protocol: HTTP
|
||||||
|
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||||
|
oceanbox.io/expose: internal
|
||||||
|
name: slurm-web-agent
|
||||||
|
namespace: slurm-web
|
||||||
|
spec:
|
||||||
|
ingressClassName: nginx
|
||||||
|
rules:
|
||||||
|
- host: slurm-agent.ekman.oceanbox.io
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- backend:
|
||||||
|
service:
|
||||||
|
name: slurm-web-agent
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
path: /
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- slurm-agent.ekman.oceanbox.io
|
||||||
|
secretName: agent-tls
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
{{- if .Values.clusterConfig.argo.enabled }}
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: slurm-web-agent
|
||||||
|
namespace: argocd
|
||||||
|
annotations:
|
||||||
|
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: slurm-web
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
sources:
|
||||||
|
- repoURL: {{ .Values.clusterConfig.manifests }}
|
||||||
|
targetRevision: HEAD
|
||||||
|
path: helmfile.d
|
||||||
|
plugin:
|
||||||
|
name: helmfile-cmp
|
||||||
|
env:
|
||||||
|
- name: CLUSTER_NAME
|
||||||
|
value: {{ .Values.clusterConfig.cluster }}
|
||||||
|
- name: HELMFILE_ENVIRONMENT
|
||||||
|
value: default
|
||||||
|
- name: HELMFILE_FILE_PATH
|
||||||
|
value: slurm-web-agent.yaml.gotmpl
|
||||||
|
project: default
|
||||||
|
syncPolicy:
|
||||||
|
managedNamespaceMetadata:
|
||||||
|
labels:
|
||||||
|
component: sys
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
- ApplyOutOfSyncOnly=true
|
||||||
|
# - ServerSideApply=true
|
||||||
|
{{- if .Values.slurm_web_agent.autosync }}
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
# selfHeal: false
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: ServiceMonitor
|
||||||
|
metadata:
|
||||||
|
name: slurm-web-agent
|
||||||
|
namespace: slurm-web
|
||||||
|
spec:
|
||||||
|
endpoints:
|
||||||
|
- interval: 60s
|
||||||
|
port: metrics
|
||||||
|
scrapeTimeout: 30s
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/instance: slurm-web-agent
|
||||||
|
app.kubernetes.io/name: slurm-web-agent
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: slurm-web-agent
|
||||||
|
namespace: slurm-web
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: slurm-web-agent
|
||||||
|
namespace: slurm-web
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 5012
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: http
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/instance: slurm-web-agent
|
||||||
|
app.kubernetes.io/name: slurm-web-agent
|
||||||
|
sessionAffinity: None
|
||||||
|
type: ClusterIP
|
||||||
Reference in New Issue
Block a user