Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update README.md #55

Merged
merged 11 commits into from
Jan 24, 2025
36 changes: 27 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,38 @@
# Jenkins-k8s Operator
# Jenkins-agent Operator

A [Juju](https://juju.is/) [charm](https://juju.is/docs/olm/charmed-operators) deploying and managing [Jenkins](https://www.jenkins.io/) Agents on machines. It is configurable to integrate with a Jenkins charm deployed in another Juju model.
[![CharmHub Badge](https://charmhub.io/jenkins-agent/badge.svg)](https://charmhub.io/jenkins-agent)
[![Publish to edge](https://github.com/canonical/jenkins-agent-operator/actions/workflows/publish_charm.yaml/badge.svg)](https://github.com/canonical/jenkins-agent-operator/actions/workflows/publish_charm.yaml)
[![Promote charm](https://github.com/canonical/jenkins-agent-operator/actions/workflows/promote_charm.yaml/badge.svg)](https://github.com/canonical/jenkins-agent-operator/actions/workflows/promote_charm.yaml)

This charm simplifies initial deployment and "day N" operations of Jenkins Agent on VMs and bare metal.
A [Juju](https://juju.is/) [charm](https://juju.is/docs/olm/charmed-operators) deploying and managing Jenkins agents on machines. It is configurable to integrate with a Jenkins charm deployed in another Juju model.

This charm simplifies the deployment and operations of Jenkins Agent on VMs and bare metal.

As such, the charm makes it easy for those looking to take control of their own agents whilst keeping operations simple, and gives them the freedom to deploy on the platform of their choice.

For DevOps or SRE teams this charm will make operating Jenkins Agent simple and straightforward through Juju's clean interface. It will allow easy deployment into multiple environments for testing changes, and supports scaling out for enterprise deployments.

For information about how to deploy, integrate, and manage this charm, see the Official [jenkins-agent charm Documentation](https://charmhub.io/jenkins-agent/docs).

## Get started

To begin, refer to the [tutorial](https://charmhub.io/jenkins-agent/docs/tutorial-getting-started) for step-by-step instructions.

### Basic operations

#### Integrate with the Jenkins-k8S charm

See the [deploy and integrate machine agents](https://charmhub.io/jenkins-k8s/docs/tutorial-getting-started#deploy-and-integrate-machine-agents-optional) section in the jenkins-k8s-operator documentation.

## Learn more

- [Read more](https://charmhub.io/jenkins-agent/docs)
- [Troubleshooting](https://matrix.to/#/#charmhub-charmdev:ubuntu.com)

## Project and community
Thanhphan1147 marked this conversation as resolved.
Show resolved Hide resolved

The Jenkins-agent Operator is a member of the Ubuntu family. It's an open source project that warmly welcomes community projects, contributions, suggestions, fixes and constructive feedback.

- [Code of conduct](https://ubuntu.com/community/code-of-conduct)
- [Get support](https://discourse.charmhub.io/)
- [Join our online chat](https://app.element.io/#/room/#charmhub-charmdev:ubuntu.com)
- [Contribute](Contribute)

Thinking about using the Jenkins-k8s Operator for your next project? [Get in touch](https://app.element.io/#/room/#charmhub-charmdev:ubuntu.com)!
* [Issues](https://github.com/canonical/jenkins-agent-operator/issues) <!--Link to GitHub issues (if applicable)-->
* [Contributing](https://github.com/canonical/jenkins-agent-operator/blob/main/CONTRIBUTING.md) <!--Link to any contribution guides-->
* [Matrix](https://matrix.to/#/#charmhub-charmdev:ubuntu.com)
6 changes: 2 additions & 4 deletions tests/integration/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,11 +116,9 @@ async def jenkins_server_fixture(jenkins_server_model: Model) -> Application:
async def server_unit_ip_fixture(jenkins_server_model: Model, jenkins_server: Application):
"""Get Jenkins machine server charm unit IP."""
status: FullStatus = await jenkins_server_model.get_status([jenkins_server.name])
app_status = status.applications[jenkins_server.name]
assert app_status is not None, f"Application {jenkins_server.name} not found in status"
jenkins_application = typing.cast(Application, status.applications[jenkins_server.name])
try:
# mypy does not recognize that app_status is of type ApplicationStatus
unit_status: UnitStatus = next(iter(app_status.units.values())) # type: ignore
unit_status: UnitStatus = next(iter(jenkins_application.units.values()))
assert unit_status.address, "Invalid unit address"
return unit_status.address
except StopIteration as exc:
Expand Down
6 changes: 3 additions & 3 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ description = Check code against coding style standards
deps =
black
codespell
flake8<6.0.0
flake8
flake8-builtins
flake8-copyright<6.0.0
flake8-copyright
flake8-docstrings>=1.6.0
flake8-docstrings-complete>=1.0.3
flake8-test-docs>=1.0
Expand All @@ -47,7 +47,7 @@ deps =
pep8-naming
pydocstyle>=2.10
pylint
pyproject-flake8<6.0.0
pyproject-flake8
pytest
pytest-asyncio
pytest-operator
Expand Down
Loading